From bf46544ad290100d4fad7ab97a7323b947d26bee Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Thu, 29 Aug 2024 04:08:40 +0000 Subject: [PATCH 01/30] merge react-components into dashboard Signed-off-by: Teo Koon Peng --- .github/workflows/react-components.yml | 42 - packages/dashboard/.storybook/main.ts | 23 +- packages/dashboard/.storybook/preview.ts | 14 - .../.storybook/preview.tsx | 29 +- .../dashboard/examples/custom-theme/index.tsx | 5 +- packages/dashboard/examples/demo/index.tsx | 6 +- packages/dashboard/examples/shared/index.tsx | 6 +- packages/dashboard/package.json | 15 +- packages/dashboard/src/app.tsx | 5 +- .../admin/add-permission-dialog.tsx | 3 +- .../components/admin/create-role-dialog.tsx | 3 +- .../components/admin/create-user-dialog.tsx | 3 +- .../dashboard/src/components/admin/index.ts | 2 +- .../components/admin/manage-roles-dialog.tsx | 4 +- .../src/components/admin/permissions-card.tsx | 3 +- .../src/components/admin/role-list-card.tsx | 4 +- .../admin/{router.tsx => routes.tsx} | 0 .../src/components/admin/user-list-card.tsx | 4 +- .../components/admin/user-profile-page.tsx | 2 +- .../src/components/admin/user-profile.tsx | 2 +- .../src/components/alert-manager.tsx | 7 +- packages/dashboard/src/components/appbar.tsx | 3 +- .../beacons/beacon-table-datagrid.stories.tsx | 0 .../beacons/beacon-table-datagrid.test.tsx} | 1 + .../beacons/beacon-table-datagrid.tsx | 4 +- .../{ => beacons}/beacons-table.tsx | 4 +- .../dashboard/src/components/beacons/index.ts | 1 + .../components}/beacons/test-utils.spec.ts | 0 .../confirmation-dialog.stories.tsx | 0 .../components/confirmation-dialog.test.tsx} | 1 + .../src/components}/confirmation-dialog.tsx | 0 .../src/components/delivery-alert-store.tsx | 5 +- .../components}/doors/door-card.stories.tsx | 0 .../src/components}/doors/door-card.tsx | 0 .../src/components}/doors/door-controls.tsx | 0 .../components/{ => doors}/door-summary.tsx | 10 +- .../doors/door-table-datagrid.stories.tsx | 2 +- .../doors/door-table-datagrid.test.tsx} | 3 +- .../components}/doors/door-table-datagrid.tsx | 6 +- .../src/components}/doors/door-utils.ts | 0 .../components/{ => doors}/doors-table.tsx | 8 +- .../dashboard/src/components/doors/index.tsx | 3 + .../src/components/doors/test-utils.test.ts} | 0 .../src/components/form-inputs.test.tsx} | 1 + .../src/components}/form-inputs.tsx | 0 .../src/components}/icons/CloseFullscreen.tsx | 0 .../src/components}/icons/OpenInFull.tsx | 0 .../src/components}/icons/index.ts | 0 packages/dashboard/src/components/index.ts | 5 - .../dashboard/src/components/lifts/index.ts | 4 + .../components}/lifts/lift-card.stories.tsx | 0 .../src/components}/lifts/lift-card.tsx | 2 +- .../src/components}/lifts/lift-controls.tsx | 0 .../lifts/lift-request-dialog.test.tsx} | 1 + .../components}/lifts/lift-request-dialog.tsx | 0 .../components/{ => lifts}/lift-summary.tsx | 9 +- .../lifts/lift-table-datagrid.stories.tsx | 0 .../lifts/lift-table-datagrid.test.tsx} | 1 + .../components}/lifts/lift-table-datagrid.tsx | 4 +- .../src/components}/lifts/lift-utils.ts | 0 .../components/{ => lifts}/lifts-table.tsx | 8 +- .../src/components}/lifts/test-utils.spec.ts | 0 .../src/components}/loading.stories.tsx | 0 .../src/components/loading.test.tsx} | 1 + .../src/components}/loading.tsx | 0 .../src/components}/locale.tsx | 0 .../{three-fiber => map}/camera-control.tsx | 0 .../src/components}/map/circle-shape.tsx | 0 .../src/components}/map/cube-maker.tsx | 0 .../src/components}/map/door-three-maker.tsx | 0 .../{three-fiber => map}/door-three.tsx | 2 +- .../src/components}/map/image-maker.tsx | 0 .../src/components/{map.tsx => map/index.tsx} | 44 +- .../layer-control.test.tsx | 0 .../layers-controller.tsx | 1 - .../src/components}/map/lift-three-maker.tsx | 0 .../{three-fiber => map}/lift-three.tsx | 2 +- .../src/components}/map/robot-three-maker.tsx | 0 .../{three-fiber => map}/robot-three.tsx | 3 +- .../components}/map/shape-three-rendering.tsx | 0 .../src/components/map/test-utils.test.tsx} | 0 .../src/components}/map/text-maker.tsx | 0 .../src/components}/map/utils.ts | 2 +- .../src/components}/map/wall-maker.tsx | 0 .../lib => dashboard/src/components}/place.ts | 0 .../components/react-three-fiber-hack.d.ts | 19 +- .../src/components/rmf-dashboard.tsx | 3 +- .../robots/circular-progress-bar.stories.tsx | 0 .../robots/circular-progress-bar.test.tsx} | 1 + .../robots/circular-progress-bar.tsx | 0 .../dashboard/src/components/robots/index.ts | 5 + .../robots/linear-progress-bar.stories.tsx | 0 .../robots/linear-progress-bar.test.tsx} | 1 + .../robots/linear-progress-bar.tsx | 6 +- .../robots/mutex-group-table.stories.tsx | 0 .../robots/mutex-group-table.test.tsx} | 1 + .../components}/robots/mutex-group-table.tsx | 0 .../components/robots/robot-decommission.tsx | 2 +- .../src/components/robots/robot-info-card.tsx | 3 +- .../components}/robots/robot-info.spec.tsx | 1 + .../components}/robots/robot-info.stories.tsx | 0 .../src/components}/robots/robot-info.tsx | 1 - .../robots/robot-mutex-group-table.tsx | 3 +- .../src/components/robots/robot-summary.tsx | 23 +- .../robots/robot-table-datagrid.stories.tsx | 0 .../robots/robot-table-datagrid.test.tsx} | 1 + .../robots/robot-table-datagrid.tsx | 2 +- .../src/components/robots/robots-table.tsx | 2 +- .../src/components}/robots/test-utils.spec.ts | 0 .../src/components}/robots/utils.ts | 0 .../src/components}/tasks/booking-label.ts | 0 .../components}/tasks/create-task.stories.tsx | 0 .../src/components}/tasks/create-task.tsx | 14 +- .../dashboard/src/components/tasks/index.ts | 12 + .../tasks/task-booking-label-utils.tsx | 0 .../components/tasks/task-cancellation.tsx | 2 +- ...-details-app.tsx => task-details-card.tsx} | 2 +- .../components}/tasks/task-info.stories.tsx | 2 +- .../src/components/tasks/task-info.test.tsx} | 3 +- .../src/components}/tasks/task-info.tsx | 0 .../src/components/tasks/task-inspector.tsx | 4 +- .../src/components/tasks/task-logs.tsx | 2 +- ...schedule-event-edit-delete-popup.test.tsx} | 1 + .../task-schedule-event-edit-delete-popup.tsx | 0 .../components/tasks/task-schedule-utils.ts | 11 +- .../src/components/tasks/task-schedule.tsx | 10 +- .../src/components/tasks/task-summary.tsx | 26 +- .../tasks/task-table-datagrid.test.tsx} | 3 +- .../components}/tasks/task-table-datagrid.tsx | 8 +- .../components}/tasks/task-table.stories.tsx | 3 +- .../src/components/tasks/task-table.test.tsx} | 3 +- .../src/components}/tasks/task-table.tsx | 0 .../tasks/task-timeline.stories.tsx | 2 +- .../components/tasks/task-timeline.test.tsx} | 3 +- .../src/components}/tasks/task-timeline.tsx | 0 .../src/components/tasks/tasks-window.tsx | 18 +- .../src/components/tasks/test-data.test.ts} | 0 .../components}/tasks/types/compose-clean.tsx | 0 .../tasks/types/custom-compose.tsx | 0 .../tasks/types/delivery-custom.test.tsx} | 2 + .../tasks/types/delivery-custom.tsx | 0 .../src/components}/tasks/types/delivery.tsx | 0 .../src/components}/tasks/types/index.ts | 0 .../src/components}/tasks/types/patrol.tsx | 0 .../src/components}/tasks/types/utils.ts | 0 .../dashboard/src/components/tasks/utils.ts | 4 +- .../src/components/three-fiber/index.tsx | 5 - .../src/components}/transfer-list.stories.tsx | 0 .../src/components/transfer-list.test.tsx} | 1 + .../src/components}/transfer-list.tsx | 0 .../src/components/utils/geometry.test.ts} | 2 + .../src/components}/utils/geometry.ts | 0 .../src/components}/utils/item-table.tsx | 0 .../src/components/utils/misc.test.ts} | 4 +- .../src/components}/utils/misc.ts | 0 .../src/components}/window/context.ts | 0 .../src/components}/window/demo.stories.tsx | 0 .../src/components}/window/index.ts | 0 .../components}/window/no-rgl-animations.css | 0 .../src/components}/window/test-utils.spec.ts | 0 .../components}/window/window-container.tsx | 0 .../window/window-toolbar.stories.tsx | 0 .../src/components}/window/window-toolbar.tsx | 0 .../src/components}/window/window.tsx | 0 .../src/components}/workcells/index.ts | 3 - .../components}/workcells/test-utils.spec.ts | 0 .../src/components}/workcells/utils.ts | 0 .../workcells/workcell-panel.stories.tsx | 0 .../workcells/workcell-panel.test.tsx} | 1 + .../components}/workcells/workcell-panel.tsx | 0 .../workcells/workcell-table.test.tsx} | 1 + .../components}/workcells/workcell-table.tsx | 77 +- .../dashboard/src/components/workspace.tsx | 4 +- .../src/hooks/use-async.test.ts} | 1 + .../lib => dashboard/src/hooks}/use-async.ts | 0 .../src/hooks/use-create-task-form.tsx | 2 +- .../dashboard/src/hooks/use-task-registry.ts | 3 +- .../dashboard/src/micro-apps/doors-app.ts | 4 +- .../micro-app.tsx => micro-apps/index.tsx} | 2 +- .../dashboard/src/micro-apps/lifts-app.ts | 4 +- packages/dashboard/src/micro-apps/map-app.ts | 2 +- .../src/micro-apps/robot-mutex-groups-app.ts | 2 +- .../dashboard/src/micro-apps/robots-app.ts | 2 +- .../dashboard/src/micro-apps/tasks-app.ts | 2 +- packages/dashboard/src/pages/login-page.tsx | 2 +- .../src/services/color-manager.test.ts} | 2 + .../src/services}/color-manager.ts | 2 +- .../src/services/robot-trajectory-manager.ts | 3 +- .../test-data/assets/code-brackets.svg | 0 .../test-data/assets/colors.svg | 0 .../test-data/assets/comments.svg | 0 .../test-data/assets/direction.svg | 0 .../test-data/assets/flow.svg | 0 .../test-data/assets/office.png | Bin .../test-data/assets/plugin.svg | 0 .../test-data/assets/repo.svg | 0 .../test-data/assets/ros-health.png | Bin .../test-data/assets/roshealth-logo-white.png | Bin .../test-data/assets/stackalt.svg | 0 .../test-data/assets/tiny-robot.png | Bin packages/react-components/.gitignore | 3 - packages/react-components/.storybook/main.ts | 23 - .../lib/alert-dialog.spec.tsx | 92 - .../lib/alert-dialog.stories.tsx | 47 - .../react-components/lib/alert-dialog.tsx | 193 -- packages/react-components/lib/appbar-tab.tsx | 29 - .../react-components/lib/beacons/index.ts | 1 - packages/react-components/lib/doors/index.ts | 4 - .../lib/error-overlay.stories.tsx | 45 - .../react-components/lib/error-overlay.tsx | 82 - .../react-components/lib/header-bar.spec.tsx | 36 - .../lib/header-bar.stories.tsx | 124 -- packages/react-components/lib/header-bar.tsx | 35 - packages/react-components/lib/index.ts | 36 - .../lib/info-card.stories.tsx | 52 - packages/react-components/lib/lifts/index.ts | 5 - .../react-components/lib/logo-button.spec.tsx | 21 - .../lib/logo-button.stories.tsx | 15 - packages/react-components/lib/logo-button.tsx | 37 - packages/react-components/lib/map/index.tsx | 10 - .../lib/navigation-bar.spec.tsx | 23 - .../react-components/lib/navigation-bar.tsx | 34 - .../lib/react-three-fiber-hack.d.ts | 22 - packages/react-components/lib/robots/index.ts | 4 - packages/react-components/lib/simple-info.tsx | 197 -- .../lib/spotlight-accordion.tsx | 95 - .../lib/stack-navigator.spec.ts | 62 - .../react-components/lib/stack-navigator.ts | 45 - .../lib/status-label.spec.tsx | 18 - .../react-components/lib/status-label.tsx | 57 - packages/react-components/lib/svg-text.tsx | 31 - packages/react-components/lib/tasks/index.ts | 11 - .../lib/tasks/task-logs.spec.tsx | 74 - .../lib/tasks/task-logs.stories.tsx | 19 - .../react-components/lib/tasks/task-logs.tsx | 160 -- packages/react-components/lib/tasks/utils.ts | 236 --- packages/react-components/lib/test/locale.tsx | 7 - .../lib/themes/common-theme.tsx | 35 - packages/react-components/lib/themes/index.ts | 2 - .../react-components/lib/themes/rmf-dark.tsx | 36 - .../react-components/lib/themes/rmf-light.tsx | 34 - .../react-components/lib/tooltip.spec.tsx | 30 - .../react-components/lib/tooltip.stories.tsx | 22 - packages/react-components/lib/tooltip.tsx | 39 - packages/react-components/lib/ts-utils.ts | 34 - packages/react-components/lib/utils/index.ts | 3 - packages/react-components/package.json | 90 - packages/react-components/tsconfig.json | 27 - packages/react-components/vite.config.ts | 5 - pnpm-lock.yaml | 1726 +---------------- 250 files changed, 411 insertions(+), 4320 deletions(-) delete mode 100644 .github/workflows/react-components.yml delete mode 100644 packages/dashboard/.storybook/preview.ts rename packages/{react-components => dashboard}/.storybook/preview.tsx (50%) rename packages/dashboard/src/components/admin/{router.tsx => routes.tsx} (100%) rename packages/{react-components/lib => dashboard/src/components}/beacons/beacon-table-datagrid.stories.tsx (100%) rename packages/{react-components/lib/beacons/beacon-table-datagrid.spec.tsx => dashboard/src/components/beacons/beacon-table-datagrid.test.tsx} (98%) rename packages/{react-components/lib => dashboard/src/components}/beacons/beacon-table-datagrid.tsx (96%) rename packages/dashboard/src/components/{ => beacons}/beacons-table.tsx (88%) create mode 100644 packages/dashboard/src/components/beacons/index.ts rename packages/{react-components/lib => dashboard/src/components}/beacons/test-utils.spec.ts (100%) rename packages/{react-components/lib => dashboard/src/components}/confirmation-dialog.stories.tsx (100%) rename packages/{react-components/lib/confirmation-dialog.spec.tsx => dashboard/src/components/confirmation-dialog.test.tsx} (93%) rename packages/{react-components/lib => dashboard/src/components}/confirmation-dialog.tsx (100%) rename packages/{react-components/lib => dashboard/src/components}/doors/door-card.stories.tsx (100%) rename packages/{react-components/lib => dashboard/src/components}/doors/door-card.tsx (100%) rename packages/{react-components/lib => dashboard/src/components}/doors/door-controls.tsx (100%) rename packages/dashboard/src/components/{ => doors}/door-summary.tsx (91%) rename packages/{react-components/lib => dashboard/src/components}/doors/door-table-datagrid.stories.tsx (93%) rename packages/{react-components/lib/doors/door-table-datagrid.spec.tsx => dashboard/src/components/doors/door-table-datagrid.test.tsx} (94%) rename packages/{react-components/lib => dashboard/src/components}/doors/door-table-datagrid.tsx (97%) rename packages/{react-components/lib => dashboard/src/components}/doors/door-utils.ts (100%) rename packages/dashboard/src/components/{ => doors}/doors-table.tsx (92%) create mode 100644 packages/dashboard/src/components/doors/index.tsx rename packages/{react-components/lib/doors/test-utils.spec.ts => dashboard/src/components/doors/test-utils.test.ts} (100%) rename packages/{react-components/lib/form-inputs.spec.tsx => dashboard/src/components/form-inputs.test.tsx} (92%) rename packages/{react-components/lib => dashboard/src/components}/form-inputs.tsx (100%) rename packages/{react-components/lib => dashboard/src/components}/icons/CloseFullscreen.tsx (100%) rename packages/{react-components/lib => dashboard/src/components}/icons/OpenInFull.tsx (100%) rename packages/{react-components/lib => dashboard/src/components}/icons/index.ts (100%) create mode 100644 packages/dashboard/src/components/lifts/index.ts rename packages/{react-components/lib => dashboard/src/components}/lifts/lift-card.stories.tsx (100%) rename packages/{react-components/lib => dashboard/src/components}/lifts/lift-card.tsx (97%) rename packages/{react-components/lib => dashboard/src/components}/lifts/lift-controls.tsx (100%) rename packages/{react-components/lib/lifts/lift-request-dialog.spec.tsx => dashboard/src/components/lifts/lift-request-dialog.test.tsx} (95%) rename packages/{react-components/lib => dashboard/src/components}/lifts/lift-request-dialog.tsx (100%) rename packages/dashboard/src/components/{ => lifts}/lift-summary.tsx (93%) rename packages/{react-components/lib => dashboard/src/components}/lifts/lift-table-datagrid.stories.tsx (100%) rename packages/{react-components/lib/lifts/lift-table-datagrid.spec.tsx => dashboard/src/components/lifts/lift-table-datagrid.test.tsx} (97%) rename packages/{react-components/lib => dashboard/src/components}/lifts/lift-table-datagrid.tsx (97%) rename packages/{react-components/lib => dashboard/src/components}/lifts/lift-utils.ts (100%) rename packages/dashboard/src/components/{ => lifts}/lifts-table.tsx (94%) rename packages/{react-components/lib => dashboard/src/components}/lifts/test-utils.spec.ts (100%) rename packages/{react-components/lib => dashboard/src/components}/loading.stories.tsx (100%) rename packages/{react-components/lib/loading.spec.tsx => dashboard/src/components/loading.test.tsx} (94%) rename packages/{react-components/lib => dashboard/src/components}/loading.tsx (100%) rename packages/{react-components/lib => dashboard/src/components}/locale.tsx (100%) rename packages/dashboard/src/components/{three-fiber => map}/camera-control.tsx (100%) rename packages/{react-components/lib => dashboard/src/components}/map/circle-shape.tsx (100%) rename packages/{react-components/lib => dashboard/src/components}/map/cube-maker.tsx (100%) rename packages/{react-components/lib => dashboard/src/components}/map/door-three-maker.tsx (100%) rename packages/dashboard/src/components/{three-fiber => map}/door-three.tsx (97%) rename packages/{react-components/lib => dashboard/src/components}/map/image-maker.tsx (100%) rename packages/dashboard/src/components/{map.tsx => map/index.tsx} (95%) rename packages/dashboard/src/components/{three-fiber => map}/layer-control.test.tsx (100%) rename packages/dashboard/src/components/{three-fiber => map}/layers-controller.tsx (99%) rename packages/{react-components/lib => dashboard/src/components}/map/lift-three-maker.tsx (100%) rename packages/dashboard/src/components/{three-fiber => map}/lift-three.tsx (96%) rename packages/{react-components/lib => dashboard/src/components}/map/robot-three-maker.tsx (100%) rename packages/dashboard/src/components/{three-fiber => map}/robot-three.tsx (94%) rename packages/{react-components/lib => dashboard/src/components}/map/shape-three-rendering.tsx (100%) rename packages/{react-components/lib/map/test-utils.spec.tsx => dashboard/src/components/map/test-utils.test.tsx} (100%) rename packages/{react-components/lib => dashboard/src/components}/map/text-maker.tsx (100%) rename packages/{react-components/lib => dashboard/src/components}/map/utils.ts (98%) rename packages/{react-components/lib => dashboard/src/components}/map/wall-maker.tsx (100%) rename packages/{react-components/lib => dashboard/src/components}/place.ts (100%) rename packages/{react-components/lib => dashboard/src/components}/robots/circular-progress-bar.stories.tsx (100%) rename packages/{react-components/lib/robots/circular-progress-bar.spec.tsx => dashboard/src/components/robots/circular-progress-bar.test.tsx} (88%) rename packages/{react-components/lib => dashboard/src/components}/robots/circular-progress-bar.tsx (100%) create mode 100644 packages/dashboard/src/components/robots/index.ts rename packages/{react-components/lib => dashboard/src/components}/robots/linear-progress-bar.stories.tsx (100%) rename packages/{react-components/lib/robots/linear-progress-bar.spec.tsx => dashboard/src/components/robots/linear-progress-bar.test.tsx} (88%) rename packages/{react-components/lib => dashboard/src/components}/robots/linear-progress-bar.tsx (76%) rename packages/{react-components/lib => dashboard/src/components}/robots/mutex-group-table.stories.tsx (100%) rename packages/{react-components/lib/robots/mutex-group-table.spec.tsx => dashboard/src/components/robots/mutex-group-table.test.tsx} (95%) rename packages/{react-components/lib => dashboard/src/components}/robots/mutex-group-table.tsx (100%) rename packages/{react-components/lib => dashboard/src/components}/robots/robot-info.spec.tsx (97%) rename packages/{react-components/lib => dashboard/src/components}/robots/robot-info.stories.tsx (100%) rename packages/{react-components/lib => dashboard/src/components}/robots/robot-info.tsx (99%) rename packages/{react-components/lib => dashboard/src/components}/robots/robot-table-datagrid.stories.tsx (100%) rename packages/{react-components/lib/robots/robot-table-datagrid.spec.tsx => dashboard/src/components/robots/robot-table-datagrid.test.tsx} (98%) rename packages/{react-components/lib => dashboard/src/components}/robots/robot-table-datagrid.tsx (98%) rename packages/{react-components/lib => dashboard/src/components}/robots/test-utils.spec.ts (100%) rename packages/{react-components/lib => dashboard/src/components}/robots/utils.ts (100%) rename packages/{react-components/lib => dashboard/src/components}/tasks/booking-label.ts (100%) rename packages/{react-components/lib => dashboard/src/components}/tasks/create-task.stories.tsx (100%) rename packages/{react-components/lib => dashboard/src/components}/tasks/create-task.tsx (98%) create mode 100644 packages/dashboard/src/components/tasks/index.ts rename packages/{react-components/lib => dashboard/src/components}/tasks/task-booking-label-utils.tsx (100%) rename packages/dashboard/src/components/tasks/{task-details-app.tsx => task-details-card.tsx} (98%) rename packages/{react-components/lib => dashboard/src/components}/tasks/task-info.stories.tsx (90%) rename packages/{react-components/lib/tasks/task-info.spec.tsx => dashboard/src/components/tasks/task-info.test.tsx} (75%) rename packages/{react-components/lib => dashboard/src/components}/tasks/task-info.tsx (100%) rename packages/{react-components/lib/tasks/task-schedule-event-edit-delete-popup.spec.tsx => dashboard/src/components/tasks/task-schedule-event-edit-delete-popup.test.tsx} (93%) rename packages/{react-components/lib => dashboard/src/components}/tasks/task-schedule-event-edit-delete-popup.tsx (100%) rename packages/{react-components/lib/tasks/task-table-datagrid.spec.tsx => dashboard/src/components/tasks/task-table-datagrid.test.tsx} (92%) rename packages/{react-components/lib => dashboard/src/components}/tasks/task-table-datagrid.tsx (98%) rename packages/{react-components/lib => dashboard/src/components}/tasks/task-table.stories.tsx (94%) rename packages/{react-components/lib/tasks/task-table.spec.tsx => dashboard/src/components/tasks/task-table.test.tsx} (87%) rename packages/{react-components/lib => dashboard/src/components}/tasks/task-table.tsx (100%) rename packages/{react-components/lib => dashboard/src/components}/tasks/task-timeline.stories.tsx (86%) rename packages/{react-components/lib/tasks/task-timeline.spec.tsx => dashboard/src/components/tasks/task-timeline.test.tsx} (93%) rename packages/{react-components/lib => dashboard/src/components}/tasks/task-timeline.tsx (100%) rename packages/{react-components/lib/tasks/test-data.spec.ts => dashboard/src/components/tasks/test-data.test.ts} (100%) rename packages/{react-components/lib => dashboard/src/components}/tasks/types/compose-clean.tsx (100%) rename packages/{react-components/lib => dashboard/src/components}/tasks/types/custom-compose.tsx (100%) rename packages/{react-components/lib/tasks/types/delivery-custom.spec.tsx => dashboard/src/components/tasks/types/delivery-custom.test.tsx} (99%) rename packages/{react-components/lib => dashboard/src/components}/tasks/types/delivery-custom.tsx (100%) rename packages/{react-components/lib => dashboard/src/components}/tasks/types/delivery.tsx (100%) rename packages/{react-components/lib => dashboard/src/components}/tasks/types/index.ts (100%) rename packages/{react-components/lib => dashboard/src/components}/tasks/types/patrol.tsx (100%) rename packages/{react-components/lib => dashboard/src/components}/tasks/types/utils.ts (100%) delete mode 100644 packages/dashboard/src/components/three-fiber/index.tsx rename packages/{react-components/lib => dashboard/src/components}/transfer-list.stories.tsx (100%) rename packages/{react-components/lib/transfer-list.spec.tsx => dashboard/src/components/transfer-list.test.tsx} (95%) rename packages/{react-components/lib => dashboard/src/components}/transfer-list.tsx (100%) rename packages/{react-components/lib/utils/geometry.spec.ts => dashboard/src/components/utils/geometry.test.ts} (98%) rename packages/{react-components/lib => dashboard/src/components}/utils/geometry.ts (100%) rename packages/{react-components/lib => dashboard/src/components}/utils/item-table.tsx (100%) rename packages/{react-components/lib/utils/misc.spec.ts => dashboard/src/components/utils/misc.test.ts} (92%) rename packages/{react-components/lib => dashboard/src/components}/utils/misc.ts (100%) rename packages/{react-components/lib => dashboard/src/components}/window/context.ts (100%) rename packages/{react-components/lib => dashboard/src/components}/window/demo.stories.tsx (100%) rename packages/{react-components/lib => dashboard/src/components}/window/index.ts (100%) rename packages/{react-components/lib => dashboard/src/components}/window/no-rgl-animations.css (100%) rename packages/{react-components/lib => dashboard/src/components}/window/test-utils.spec.ts (100%) rename packages/{react-components/lib => dashboard/src/components}/window/window-container.tsx (100%) rename packages/{react-components/lib => dashboard/src/components}/window/window-toolbar.stories.tsx (100%) rename packages/{react-components/lib => dashboard/src/components}/window/window-toolbar.tsx (100%) rename packages/{react-components/lib => dashboard/src/components}/window/window.tsx (100%) rename packages/{react-components/lib => dashboard/src/components}/workcells/index.ts (73%) rename packages/{react-components/lib => dashboard/src/components}/workcells/test-utils.spec.ts (100%) rename packages/{react-components/lib => dashboard/src/components}/workcells/utils.ts (100%) rename packages/{react-components/lib => dashboard/src/components}/workcells/workcell-panel.stories.tsx (100%) rename packages/{react-components/lib/workcells/workcell-panel.spec.tsx => dashboard/src/components/workcells/workcell-panel.test.tsx} (95%) rename packages/{react-components/lib => dashboard/src/components}/workcells/workcell-panel.tsx (100%) rename packages/{react-components/lib/workcells/workcell-table.spec.tsx => dashboard/src/components/workcells/workcell-table.test.tsx} (96%) rename packages/{react-components/lib => dashboard/src/components}/workcells/workcell-table.tsx (63%) rename packages/{react-components/lib/use-async.spec.ts => dashboard/src/hooks/use-async.test.ts} (95%) rename packages/{react-components/lib => dashboard/src/hooks}/use-async.ts (100%) rename packages/dashboard/src/{components/micro-app.tsx => micro-apps/index.tsx} (96%) rename packages/{react-components/lib/color-manager.spec.ts => dashboard/src/services/color-manager.test.ts} (88%) rename packages/{react-components/lib => dashboard/src/services}/color-manager.ts (97%) rename packages/{react-components => dashboard}/test-data/assets/code-brackets.svg (100%) rename packages/{react-components => dashboard}/test-data/assets/colors.svg (100%) rename packages/{react-components => dashboard}/test-data/assets/comments.svg (100%) rename packages/{react-components => dashboard}/test-data/assets/direction.svg (100%) rename packages/{react-components => dashboard}/test-data/assets/flow.svg (100%) rename packages/{react-components => dashboard}/test-data/assets/office.png (100%) rename packages/{react-components => dashboard}/test-data/assets/plugin.svg (100%) rename packages/{react-components => dashboard}/test-data/assets/repo.svg (100%) rename packages/{react-components => dashboard}/test-data/assets/ros-health.png (100%) rename packages/{react-components => dashboard}/test-data/assets/roshealth-logo-white.png (100%) rename packages/{react-components => dashboard}/test-data/assets/stackalt.svg (100%) rename packages/{react-components => dashboard}/test-data/assets/tiny-robot.png (100%) delete mode 100644 packages/react-components/.gitignore delete mode 100644 packages/react-components/.storybook/main.ts delete mode 100644 packages/react-components/lib/alert-dialog.spec.tsx delete mode 100644 packages/react-components/lib/alert-dialog.stories.tsx delete mode 100644 packages/react-components/lib/alert-dialog.tsx delete mode 100644 packages/react-components/lib/appbar-tab.tsx delete mode 100644 packages/react-components/lib/beacons/index.ts delete mode 100644 packages/react-components/lib/doors/index.ts delete mode 100644 packages/react-components/lib/error-overlay.stories.tsx delete mode 100644 packages/react-components/lib/error-overlay.tsx delete mode 100644 packages/react-components/lib/header-bar.spec.tsx delete mode 100644 packages/react-components/lib/header-bar.stories.tsx delete mode 100644 packages/react-components/lib/header-bar.tsx delete mode 100644 packages/react-components/lib/index.ts delete mode 100644 packages/react-components/lib/info-card.stories.tsx delete mode 100644 packages/react-components/lib/lifts/index.ts delete mode 100644 packages/react-components/lib/logo-button.spec.tsx delete mode 100644 packages/react-components/lib/logo-button.stories.tsx delete mode 100644 packages/react-components/lib/logo-button.tsx delete mode 100644 packages/react-components/lib/map/index.tsx delete mode 100644 packages/react-components/lib/navigation-bar.spec.tsx delete mode 100644 packages/react-components/lib/navigation-bar.tsx delete mode 100644 packages/react-components/lib/react-three-fiber-hack.d.ts delete mode 100644 packages/react-components/lib/robots/index.ts delete mode 100644 packages/react-components/lib/simple-info.tsx delete mode 100644 packages/react-components/lib/spotlight-accordion.tsx delete mode 100644 packages/react-components/lib/stack-navigator.spec.ts delete mode 100644 packages/react-components/lib/stack-navigator.ts delete mode 100644 packages/react-components/lib/status-label.spec.tsx delete mode 100644 packages/react-components/lib/status-label.tsx delete mode 100644 packages/react-components/lib/svg-text.tsx delete mode 100644 packages/react-components/lib/tasks/index.ts delete mode 100644 packages/react-components/lib/tasks/task-logs.spec.tsx delete mode 100644 packages/react-components/lib/tasks/task-logs.stories.tsx delete mode 100644 packages/react-components/lib/tasks/task-logs.tsx delete mode 100644 packages/react-components/lib/tasks/utils.ts delete mode 100644 packages/react-components/lib/test/locale.tsx delete mode 100644 packages/react-components/lib/themes/common-theme.tsx delete mode 100644 packages/react-components/lib/themes/index.ts delete mode 100644 packages/react-components/lib/themes/rmf-dark.tsx delete mode 100644 packages/react-components/lib/themes/rmf-light.tsx delete mode 100644 packages/react-components/lib/tooltip.spec.tsx delete mode 100644 packages/react-components/lib/tooltip.stories.tsx delete mode 100644 packages/react-components/lib/tooltip.tsx delete mode 100644 packages/react-components/lib/ts-utils.ts delete mode 100644 packages/react-components/lib/utils/index.ts delete mode 100644 packages/react-components/package.json delete mode 100644 packages/react-components/tsconfig.json delete mode 100644 packages/react-components/vite.config.ts diff --git a/.github/workflows/react-components.yml b/.github/workflows/react-components.yml deleted file mode 100644 index da1cefe11..000000000 --- a/.github/workflows/react-components.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: react-components -on: - pull_request: - paths: - - '.github/workflows/react-components.yml' - - 'packages/react-components/**' - - 'packages/rmf-models/**' - push: - branches: - - main -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true -env: - CI: true -jobs: - unit-tests: - name: Unit Tests - runs-on: ubuntu-24.04 - container: - image: ghcr.io/${{ github.repository }}/minimal-rmf - credentials: - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - defaults: - run: - shell: bash - working-directory: packages/react-components - steps: - - uses: actions/checkout@v4 - - name: bootstrap - uses: ./.github/actions/bootstrap - with: - package: react-components - - name: lint - run: pnpm run lint - - name: test - run: pnpm run test:coverage - - name: Upload coverage to Codecov - uses: codecov/codecov-action@v1 - with: - flags: react-components diff --git a/packages/dashboard/.storybook/main.ts b/packages/dashboard/.storybook/main.ts index 695d85843..8218eaff2 100644 --- a/packages/dashboard/.storybook/main.ts +++ b/packages/dashboard/.storybook/main.ts @@ -1,20 +1,23 @@ -import type { StorybookConfig } from '@storybook/react-webpack5'; +import type { StorybookConfig } from '@storybook/react-vite'; const config: StorybookConfig = { - stories: ['../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'], + stories: ['../lib/**/*.stories.@(js|jsx|mjs|ts|tsx)'], addons: [ - '@storybook/addon-webpack5-compiler-babel', '@storybook/addon-onboarding', '@storybook/addon-links', '@storybook/addon-essentials', '@storybook/addon-interactions', ], - framework: { - name: '@storybook/react-webpack5', - options: {}, - }, - docs: { - autodocs: 'tag', - }, + framework: '@storybook/react-vite', + docs: {}, + swc: () => ({ + jsc: { + transform: { + react: { + runtime: 'automatic', + }, + }, + }, + }), }; export default config; diff --git a/packages/dashboard/.storybook/preview.ts b/packages/dashboard/.storybook/preview.ts deleted file mode 100644 index adcda96bd..000000000 --- a/packages/dashboard/.storybook/preview.ts +++ /dev/null @@ -1,14 +0,0 @@ -import type { Preview } from '@storybook/react'; - -const preview: Preview = { - parameters: { - controls: { - matchers: { - color: /(background|color)$/i, - date: /Date$/i, - }, - }, - }, -}; - -export default preview; diff --git a/packages/react-components/.storybook/preview.tsx b/packages/dashboard/.storybook/preview.tsx similarity index 50% rename from packages/react-components/.storybook/preview.tsx rename to packages/dashboard/.storybook/preview.tsx index e8c91d8c0..ad6dd8a9a 100644 --- a/packages/react-components/.storybook/preview.tsx +++ b/packages/dashboard/.storybook/preview.tsx @@ -1,9 +1,7 @@ -import { CssBaseline } from '@mui/material'; -import { Theme, ThemeProvider } from '@mui/material/styles'; -import defaultTheme from '@mui/material/styles/defaultTheme'; import { Decorator, Preview } from '@storybook/react'; import React from 'react'; -import { LocalizationProvider, rmfDark, rmfLight } from '../lib'; + +import { LocalizationProvider } from '../src/components/locale'; const preview: Preview = { parameters: { @@ -18,27 +16,6 @@ const preview: Preview = { export default preview; -const getTheme = (themeName: string): Theme => { - switch (themeName) { - case 'rmf-light': - return rmfLight; - case 'rmf-dark': - return rmfDark; - default: - return defaultTheme; - } -}; - -const withThemeProvider: Decorator = (Story, context) => { - const theme = getTheme(context.globals.theme); - return ( - - - - - ); -}; - const withLocalization: Decorator = (Story, context) => { return ( @@ -47,7 +24,7 @@ const withLocalization: Decorator = (Story, context) => { ); }; -export const decorators = [withThemeProvider, withLocalization]; +export const decorators = [withLocalization]; export const globalTypes = { theme: { diff --git a/packages/dashboard/examples/custom-theme/index.tsx b/packages/dashboard/examples/custom-theme/index.tsx index eaa95fcf0..a3a3dede0 100644 --- a/packages/dashboard/examples/custom-theme/index.tsx +++ b/packages/dashboard/examples/custom-theme/index.tsx @@ -5,8 +5,9 @@ import '@fontsource/roboto/700.css'; import { createTheme } from '@mui/material'; import ReactDOM from 'react-dom/client'; -import { LocallyPersistentWorkspace, RmfDashboard } from 'rmf-dashboard/components'; -import { MicroAppManifest } from 'rmf-dashboard/components/micro-app'; +import { RmfDashboard } from 'rmf-dashboard/components'; +import { LocallyPersistentWorkspace } from 'rmf-dashboard/components/workspace'; +import { MicroAppManifest } from 'rmf-dashboard/micro-apps'; import doorsApp from 'rmf-dashboard/micro-apps/doors-app'; import liftsApp from 'rmf-dashboard/micro-apps/lifts-app'; import createMapApp from 'rmf-dashboard/micro-apps/map-app'; diff --git a/packages/dashboard/examples/demo/index.tsx b/packages/dashboard/examples/demo/index.tsx index 360f838e1..d140ec1a2 100644 --- a/packages/dashboard/examples/demo/index.tsx +++ b/packages/dashboard/examples/demo/index.tsx @@ -4,13 +4,13 @@ import '@fontsource/roboto/500.css'; import '@fontsource/roboto/700.css'; import ReactDOM from 'react-dom/client'; +import { RmfDashboard } from 'rmf-dashboard/components'; import { InitialWindow, LocallyPersistentWorkspace, - RmfDashboard, Workspace, -} from 'rmf-dashboard/components'; -import { MicroAppManifest } from 'rmf-dashboard/components/micro-app'; +} from 'rmf-dashboard/components/workspace'; +import { MicroAppManifest } from 'rmf-dashboard/micro-apps'; import doorsApp from 'rmf-dashboard/micro-apps/doors-app'; import liftsApp from 'rmf-dashboard/micro-apps/lifts-app'; import createMapApp from 'rmf-dashboard/micro-apps/map-app'; diff --git a/packages/dashboard/examples/shared/index.tsx b/packages/dashboard/examples/shared/index.tsx index 1324d9cc5..c37caac53 100644 --- a/packages/dashboard/examples/shared/index.tsx +++ b/packages/dashboard/examples/shared/index.tsx @@ -5,13 +5,13 @@ import '@fontsource/roboto/700.css'; import './app.css'; import ReactDOM from 'react-dom/client'; +import { RmfDashboard } from 'rmf-dashboard/components'; import { InitialWindow, LocallyPersistentWorkspace, - RmfDashboard, Workspace, -} from 'rmf-dashboard/components'; -import { MicroAppManifest } from 'rmf-dashboard/components/micro-app'; +} from 'rmf-dashboard/components/workspace'; +import { MicroAppManifest } from 'rmf-dashboard/micro-apps'; import doorsApp from 'rmf-dashboard/micro-apps/doors-app'; import liftsApp from 'rmf-dashboard/micro-apps/lifts-app'; import createMapApp from 'rmf-dashboard/micro-apps/map-app'; diff --git a/packages/dashboard/package.json b/packages/dashboard/package.json index 080d3c260..10b42cc86 100644 --- a/packages/dashboard/package.json +++ b/packages/dashboard/package.json @@ -27,32 +27,44 @@ "@emotion/styled": "^11.13.0", "@fontsource/roboto": "^4.3.0", "@mui/icons-material": "^5.8.3", + "@mui/lab": "5.0.0-alpha.172", "@mui/material": "^5.8.3", "@mui/system": "^5.8.3", + "@mui/x-data-grid": "^5.12.1", "@mui/x-date-pickers": "^6.19.0", "@react-three/drei": "^9.103.0", "@react-three/fiber": "^8.16.1", + "@types/crc": "^3.4.0", "@types/debug": "^4.1.5", "@types/react": "^18.2.14", "@types/react-dom": "^18.2.6", "@types/react-grid-layout": "^1.3.2", + "@types/react-virtualized-auto-sizer": "^1.0.1", + "@types/react-window": "^1.8.5", + "@types/shallowequal": "^1.1.1", "@types/three": "^0.166.0", "api-client": "workspace:*", "axios": "1.7.4", "canvas": "^2.11.2", + "clsx": "^1.1.1", + "crc": "^3.8.0", "date-fns": "^2.30.0", "debug": "^4.2.0", "eventemitter3": "^4.0.7", "keycloak-js": "^25.0.2", + "node-vibrant": "^3.1.6", "react": "^18.2.0", - "react-components": "workspace:*", + "react-customizable-progressbar": "^1.2.0", "react-dom": "^18.2.0", "react-error-boundary": "^4.0.13", "react-grid-layout": "^1.3.4", "react-router": "^6.14.1", "react-router-dom": "^6.14.1", + "react-virtualized-auto-sizer": "^1.0.24", + "react-window": "^1.8.6", "rmf-models": "workspace:*", "rxjs": "^7.5.5", + "shallowequal": "^1.1.0", "three": "^0.166.1" }, "devDependencies": { @@ -63,6 +75,7 @@ "@storybook/addon-onboarding": "^8.0.5", "@storybook/blocks": "^8.0.5", "@storybook/react": "^8.0.5", + "@storybook/react-vite": "^8.2.6", "@storybook/test": "^8.0.5", "@testing-library/dom": "^9.3.4", "@testing-library/react": "^14.2.2", diff --git a/packages/dashboard/src/app.tsx b/packages/dashboard/src/app.tsx index bd80c7b9b..d35cef61b 100644 --- a/packages/dashboard/src/app.tsx +++ b/packages/dashboard/src/app.tsx @@ -5,8 +5,9 @@ import '@fontsource/roboto/700.css'; import './app.css'; import { appConfig } from './app-config'; -import { InitialWindow, LocallyPersistentWorkspace, RmfDashboard, Workspace } from './components'; -import { MicroAppManifest } from './components/micro-app'; +import { RmfDashboard } from './components'; +import { InitialWindow, LocallyPersistentWorkspace, Workspace } from './components/workspace'; +import { MicroAppManifest } from './micro-apps'; import doorsApp from './micro-apps/doors-app'; import liftsApp from './micro-apps/lifts-app'; import createMapApp from './micro-apps/map-app'; diff --git a/packages/dashboard/src/components/admin/add-permission-dialog.tsx b/packages/dashboard/src/components/admin/add-permission-dialog.tsx index 51061556e..3585ff4b2 100644 --- a/packages/dashboard/src/components/admin/add-permission-dialog.tsx +++ b/packages/dashboard/src/components/admin/add-permission-dialog.tsx @@ -1,10 +1,11 @@ import { MenuItem, TextField } from '@mui/material'; import { Permission } from 'api-client'; import React from 'react'; -import { ConfirmationDialog, useAsync } from 'react-components'; import { useAppController } from '../../hooks/use-app-controller'; +import { useAsync } from '../../hooks/use-async'; import { getActionText, RmfAction } from '../../services/permissions'; +import { ConfirmationDialog } from '../confirmation-dialog'; export interface AddPermissionDialogProps { open: boolean; diff --git a/packages/dashboard/src/components/admin/create-role-dialog.tsx b/packages/dashboard/src/components/admin/create-role-dialog.tsx index 97b94e1fe..1ae040207 100644 --- a/packages/dashboard/src/components/admin/create-role-dialog.tsx +++ b/packages/dashboard/src/components/admin/create-role-dialog.tsx @@ -1,8 +1,9 @@ import { TextField } from '@mui/material'; import React from 'react'; -import { ConfirmationDialog, useAsync } from 'react-components'; import { useAppController } from '../../hooks/use-app-controller'; +import { useAsync } from '../../hooks/use-async'; +import { ConfirmationDialog } from '../confirmation-dialog'; export interface CreateRoleDialogProps { open: boolean; diff --git a/packages/dashboard/src/components/admin/create-user-dialog.tsx b/packages/dashboard/src/components/admin/create-user-dialog.tsx index f49b283b3..eeda4656a 100644 --- a/packages/dashboard/src/components/admin/create-user-dialog.tsx +++ b/packages/dashboard/src/components/admin/create-user-dialog.tsx @@ -1,8 +1,9 @@ import { TextField } from '@mui/material'; import React from 'react'; -import { ConfirmationDialog, useAsync } from 'react-components'; import { useAppController } from '../../hooks/use-app-controller'; +import { useAsync } from '../../hooks/use-async'; +import { ConfirmationDialog } from '../confirmation-dialog'; export interface CreateUserDialogProps { open: boolean; diff --git a/packages/dashboard/src/components/admin/index.ts b/packages/dashboard/src/components/admin/index.ts index 164ab508b..a3820983e 100644 --- a/packages/dashboard/src/components/admin/index.ts +++ b/packages/dashboard/src/components/admin/index.ts @@ -1 +1 @@ -export * from './router'; +export * from './routes'; diff --git a/packages/dashboard/src/components/admin/manage-roles-dialog.tsx b/packages/dashboard/src/components/admin/manage-roles-dialog.tsx index 984b4e0f5..c32b577c0 100644 --- a/packages/dashboard/src/components/admin/manage-roles-dialog.tsx +++ b/packages/dashboard/src/components/admin/manage-roles-dialog.tsx @@ -16,9 +16,11 @@ import { styled, } from '@mui/material'; import React from 'react'; -import { Loading, TransferList, useAsync } from 'react-components'; import { useAppController } from '../../hooks/use-app-controller'; +import { useAsync } from '../../hooks/use-async'; +import { Loading } from '../loading'; +import { TransferList } from '../transfer-list'; const prefix = 'manage-roles-dialog'; const classes = { diff --git a/packages/dashboard/src/components/admin/permissions-card.tsx b/packages/dashboard/src/components/admin/permissions-card.tsx index a996143ba..d2fd68fc8 100644 --- a/packages/dashboard/src/components/admin/permissions-card.tsx +++ b/packages/dashboard/src/components/admin/permissions-card.tsx @@ -17,10 +17,11 @@ import { import { styled } from '@mui/material'; import { Permission } from 'api-client'; import React from 'react'; -import { Loading, useAsync } from 'react-components'; import { useAppController } from '../../hooks/use-app-controller'; +import { useAsync } from '../../hooks/use-async'; import { getActionText } from '../../services/permissions'; +import { Loading } from '../loading'; import { AddPermissionDialog, AddPermissionDialogProps } from './add-permission-dialog'; const prefix = 'permissions-card'; diff --git a/packages/dashboard/src/components/admin/role-list-card.tsx b/packages/dashboard/src/components/admin/role-list-card.tsx index 21a282082..9eca7fdc0 100644 --- a/packages/dashboard/src/components/admin/role-list-card.tsx +++ b/packages/dashboard/src/components/admin/role-list-card.tsx @@ -18,9 +18,11 @@ import { } from '@mui/material'; import { Permission } from 'api-client'; import React from 'react'; -import { ConfirmationDialog, Loading, useAsync } from 'react-components'; import { useAppController } from '../../hooks/use-app-controller'; +import { useAsync } from '../../hooks/use-async'; +import { ConfirmationDialog } from '../confirmation-dialog'; +import { Loading } from '../loading'; import { CreateRoleDialog, CreateRoleDialogProps } from './create-role-dialog'; import { PermissionsCard, PermissionsCardProps } from './permissions-card'; diff --git a/packages/dashboard/src/components/admin/router.tsx b/packages/dashboard/src/components/admin/routes.tsx similarity index 100% rename from packages/dashboard/src/components/admin/router.tsx rename to packages/dashboard/src/components/admin/routes.tsx diff --git a/packages/dashboard/src/components/admin/user-list-card.tsx b/packages/dashboard/src/components/admin/user-list-card.tsx index bca044b52..70d04fc51 100644 --- a/packages/dashboard/src/components/admin/user-list-card.tsx +++ b/packages/dashboard/src/components/admin/user-list-card.tsx @@ -21,10 +21,12 @@ import { Typography, } from '@mui/material'; import React from 'react'; -import { ConfirmationDialog, Loading, useAsync } from 'react-components'; import { useNavigate } from 'react-router'; import { useAppController } from '../../hooks/use-app-controller'; +import { useAsync } from '../../hooks/use-async'; +import { ConfirmationDialog } from '../confirmation-dialog'; +import { Loading } from '../loading'; import { CreateUserDialog, CreateUserDialogProps } from './create-user-dialog'; const ItemsPerPage = 20; diff --git a/packages/dashboard/src/components/admin/user-profile-page.tsx b/packages/dashboard/src/components/admin/user-profile-page.tsx index 20a2f9ccb..fc2d16e2e 100644 --- a/packages/dashboard/src/components/admin/user-profile-page.tsx +++ b/packages/dashboard/src/components/admin/user-profile-page.tsx @@ -2,9 +2,9 @@ import { Typography } from '@mui/material'; import { User } from 'api-client'; import { AxiosError } from 'axios'; import React from 'react'; -import { useAsync } from 'react-components'; import { useParams } from 'react-router'; +import { useAsync } from '../../hooks/use-async'; import { useRmfApi } from '../../hooks/use-rmf-api'; import { getApiErrorMessage } from '../../utils/api'; import { ManageRolesCard } from './manage-roles-dialog'; diff --git a/packages/dashboard/src/components/admin/user-profile.tsx b/packages/dashboard/src/components/admin/user-profile.tsx index 510788884..a545d7b6f 100644 --- a/packages/dashboard/src/components/admin/user-profile.tsx +++ b/packages/dashboard/src/components/admin/user-profile.tsx @@ -13,9 +13,9 @@ import { } from '@mui/material'; import { User } from 'api-client'; import React from 'react'; -import { useAsync } from 'react-components'; import { useAppController } from '../../hooks/use-app-controller'; +import { useAsync } from '../../hooks/use-async'; const classes = { avatar: 'user-profile-action', diff --git a/packages/dashboard/src/components/alert-manager.tsx b/packages/dashboard/src/components/alert-manager.tsx index a6b930890..88b72f7b9 100644 --- a/packages/dashboard/src/components/alert-manager.tsx +++ b/packages/dashboard/src/components/alert-manager.tsx @@ -17,7 +17,6 @@ import { TaskEventLog, } from 'api-client'; import React from 'react'; -import { base } from 'react-components'; import { Subscription } from 'rxjs'; import { useAppController } from '../hooks/use-app-controller'; @@ -126,10 +125,10 @@ const AlertDialog = React.memo((props: AlertDialogProps) => { style: { backgroundColor: alertRequest.tier === ApiServerModelsAlertsAlertRequestTier.Info - ? base.palette.success.dark + ? theme.palette.success.dark : alertRequest.tier === ApiServerModelsAlertsAlertRequestTier.Warning - ? base.palette.warning.dark - : base.palette.error.dark, + ? theme.palette.warning.dark + : theme.palette.error.dark, boxShadow: 'none', }, }} diff --git a/packages/dashboard/src/components/appbar.tsx b/packages/dashboard/src/components/appbar.tsx index 534b8a3c5..51d22129b 100644 --- a/packages/dashboard/src/components/appbar.tsx +++ b/packages/dashboard/src/components/appbar.tsx @@ -43,7 +43,6 @@ import { import { AlertRequest, FireAlarmTriggerState, TaskFavorite } from 'api-client'; import { formatDistance } from 'date-fns'; import React from 'react'; -import { ConfirmationDialog, CreateTaskForm, CreateTaskFormProps } from 'react-components'; import { Subscription } from 'rxjs'; import { useAppController } from '../hooks/use-app-controller'; @@ -55,6 +54,8 @@ import { useSettings } from '../hooks/use-settings'; import { useTaskRegistry } from '../hooks/use-task-registry'; import { useUserProfile } from '../hooks/use-user-profile'; import { AppEvents } from './app-events'; +import { ConfirmationDialog } from './confirmation-dialog'; +import { CreateTaskForm, CreateTaskFormProps } from './tasks/create-task'; import { toApiSchedule } from './tasks/utils'; import { DashboardThemes } from './theme'; diff --git a/packages/react-components/lib/beacons/beacon-table-datagrid.stories.tsx b/packages/dashboard/src/components/beacons/beacon-table-datagrid.stories.tsx similarity index 100% rename from packages/react-components/lib/beacons/beacon-table-datagrid.stories.tsx rename to packages/dashboard/src/components/beacons/beacon-table-datagrid.stories.tsx diff --git a/packages/react-components/lib/beacons/beacon-table-datagrid.spec.tsx b/packages/dashboard/src/components/beacons/beacon-table-datagrid.test.tsx similarity index 98% rename from packages/react-components/lib/beacons/beacon-table-datagrid.spec.tsx rename to packages/dashboard/src/components/beacons/beacon-table-datagrid.test.tsx index 56591f8bb..192a866b1 100644 --- a/packages/react-components/lib/beacons/beacon-table-datagrid.spec.tsx +++ b/packages/dashboard/src/components/beacons/beacon-table-datagrid.test.tsx @@ -1,4 +1,5 @@ import { render } from '@testing-library/react'; +import { describe, expect, it } from 'vitest'; import { BeaconDataGridTable } from './beacon-table-datagrid'; import { makeBeaconState } from './test-utils.spec'; diff --git a/packages/react-components/lib/beacons/beacon-table-datagrid.tsx b/packages/dashboard/src/components/beacons/beacon-table-datagrid.tsx similarity index 96% rename from packages/react-components/lib/beacons/beacon-table-datagrid.tsx rename to packages/dashboard/src/components/beacons/beacon-table-datagrid.tsx index 82a61d0a5..8af6b251e 100644 --- a/packages/react-components/lib/beacons/beacon-table-datagrid.tsx +++ b/packages/dashboard/src/components/beacons/beacon-table-datagrid.tsx @@ -24,7 +24,7 @@ export function BeaconDataGridTable({ beacons }: BeaconDataGridTableProps): JSX. })(); return ( - + + { const rmfApi = useRmfApi(); diff --git a/packages/dashboard/src/components/beacons/index.ts b/packages/dashboard/src/components/beacons/index.ts new file mode 100644 index 000000000..87693b328 --- /dev/null +++ b/packages/dashboard/src/components/beacons/index.ts @@ -0,0 +1 @@ +export * from './beacons-table'; diff --git a/packages/react-components/lib/beacons/test-utils.spec.ts b/packages/dashboard/src/components/beacons/test-utils.spec.ts similarity index 100% rename from packages/react-components/lib/beacons/test-utils.spec.ts rename to packages/dashboard/src/components/beacons/test-utils.spec.ts diff --git a/packages/react-components/lib/confirmation-dialog.stories.tsx b/packages/dashboard/src/components/confirmation-dialog.stories.tsx similarity index 100% rename from packages/react-components/lib/confirmation-dialog.stories.tsx rename to packages/dashboard/src/components/confirmation-dialog.stories.tsx diff --git a/packages/react-components/lib/confirmation-dialog.spec.tsx b/packages/dashboard/src/components/confirmation-dialog.test.tsx similarity index 93% rename from packages/react-components/lib/confirmation-dialog.spec.tsx rename to packages/dashboard/src/components/confirmation-dialog.test.tsx index 4640d659c..2586c0b35 100644 --- a/packages/react-components/lib/confirmation-dialog.spec.tsx +++ b/packages/dashboard/src/components/confirmation-dialog.test.tsx @@ -1,4 +1,5 @@ import { fireEvent, render } from '@testing-library/react'; +import { describe, expect, it, vi } from 'vitest'; import { ConfirmationDialog } from './confirmation-dialog'; diff --git a/packages/react-components/lib/confirmation-dialog.tsx b/packages/dashboard/src/components/confirmation-dialog.tsx similarity index 100% rename from packages/react-components/lib/confirmation-dialog.tsx rename to packages/dashboard/src/components/confirmation-dialog.tsx diff --git a/packages/dashboard/src/components/delivery-alert-store.tsx b/packages/dashboard/src/components/delivery-alert-store.tsx index 468ab08dc..3ebb84cad 100644 --- a/packages/dashboard/src/components/delivery-alert-store.tsx +++ b/packages/dashboard/src/components/delivery-alert-store.tsx @@ -11,7 +11,6 @@ import { TaskStateOutput as TaskState, } from 'api-client'; import React from 'react'; -import { base } from 'react-components'; import { useAppController } from '../hooks/use-app-controller'; import { useRmfApi } from '../hooks/use-rmf-api'; @@ -122,7 +121,7 @@ const DeliveryWarningDialog = React.memo((props: DeliveryWarningDialogProps) => { void; @@ -54,7 +54,7 @@ export const DoorSummary = ({ onClose, door, level }: DoorSummaryProps): JSX.Ele PaperProps={{ style: { boxShadow: 'none', - background: base.palette.info.main, + background: theme.palette.info.main, }, }} open={isOpen} diff --git a/packages/react-components/lib/doors/door-table-datagrid.stories.tsx b/packages/dashboard/src/components/doors/door-table-datagrid.stories.tsx similarity index 93% rename from packages/react-components/lib/doors/door-table-datagrid.stories.tsx rename to packages/dashboard/src/components/doors/door-table-datagrid.stories.tsx index 718257818..8e1d1e4cf 100644 --- a/packages/react-components/lib/doors/door-table-datagrid.stories.tsx +++ b/packages/dashboard/src/components/doors/door-table-datagrid.stories.tsx @@ -2,7 +2,7 @@ import { Door as RmfDoor } from 'rmf-models/ros/rmf_building_map_msgs/msg'; import { DoorMode as RmfDoorMode } from 'rmf-models/ros/rmf_door_msgs/msg'; import { DoorDataGridTable, DoorTableData } from './door-table-datagrid'; -import { makeDoorState } from './test-utils.spec'; +import { makeDoorState } from './test-utils.test'; const mockDoors: DoorTableData[] = [ { diff --git a/packages/react-components/lib/doors/door-table-datagrid.spec.tsx b/packages/dashboard/src/components/doors/door-table-datagrid.test.tsx similarity index 94% rename from packages/react-components/lib/doors/door-table-datagrid.spec.tsx rename to packages/dashboard/src/components/doors/door-table-datagrid.test.tsx index a79639b1f..472ec6eb1 100644 --- a/packages/react-components/lib/doors/door-table-datagrid.spec.tsx +++ b/packages/dashboard/src/components/doors/door-table-datagrid.test.tsx @@ -1,9 +1,10 @@ import { render } from '@testing-library/react'; import { Door as RmfDoor } from 'rmf-models/ros/rmf_building_map_msgs/msg'; import { DoorMode as RmfDoorMode } from 'rmf-models/ros/rmf_door_msgs/msg'; +import { describe, expect, it } from 'vitest'; import { DoorDataGridTable, DoorTableData } from './door-table-datagrid'; -import { makeDoorState } from './test-utils.spec'; +import { makeDoorState } from './test-utils.test'; describe('DoorDataGridTable', () => { const mockDoors: DoorTableData[] = [ diff --git a/packages/react-components/lib/doors/door-table-datagrid.tsx b/packages/dashboard/src/components/doors/door-table-datagrid.tsx similarity index 97% rename from packages/react-components/lib/doors/door-table-datagrid.tsx rename to packages/dashboard/src/components/doors/door-table-datagrid.tsx index d8481cbe7..caa0d6380 100644 --- a/packages/react-components/lib/doors/door-table-datagrid.tsx +++ b/packages/dashboard/src/components/doors/door-table-datagrid.tsx @@ -70,7 +70,7 @@ export function DoorDataGridTable({ doors, onDoorClick }: DoorDataGridTableProps })(); return ( - + + { return ( - + diff --git a/packages/dashboard/src/components/robots/robot-mutex-group-table.tsx b/packages/dashboard/src/components/robots/robot-mutex-group-table.tsx index 7fbfe6c2e..1bf1f91ad 100644 --- a/packages/dashboard/src/components/robots/robot-mutex-group-table.tsx +++ b/packages/dashboard/src/components/robots/robot-mutex-group-table.tsx @@ -1,9 +1,10 @@ import { TableContainer, Typography } from '@mui/material'; import React from 'react'; -import { ConfirmationDialog, MutexGroupData, MutexGroupTable } from 'react-components'; import { useAppController } from '../../hooks/use-app-controller'; import { useRmfApi } from '../../hooks/use-rmf-api'; +import { ConfirmationDialog } from '../confirmation-dialog'; +import { MutexGroupData, MutexGroupTable } from './mutex-group-table'; const RefreshMutexGroupTableInterval = 5000; diff --git a/packages/dashboard/src/components/robots/robot-summary.tsx b/packages/dashboard/src/components/robots/robot-summary.tsx index e0071d59c..07c15203a 100644 --- a/packages/dashboard/src/components/robots/robot-summary.tsx +++ b/packages/dashboard/src/components/robots/robot-summary.tsx @@ -21,6 +21,7 @@ import { LinearProgress, LinearProgressProps, TextField, + Theme, Typography, useMediaQuery, useTheme, @@ -31,38 +32,38 @@ import { TaskStateOutput as TaskState, } from 'api-client'; import React from 'react'; -import { base, RobotTableData } from 'react-components'; import { combineLatest, EMPTY, mergeMap, of } from 'rxjs'; import { useRmfApi } from '../../hooks/use-rmf-api'; import { TaskCancelButton } from '../tasks/task-cancellation'; import { TaskInspector } from '../tasks/task-inspector'; import { RobotDecommissionButton } from './robot-decommission'; +import { RobotTableData } from './robot-table-datagrid'; -const setTaskDialogColor = (robotStatus: Status | undefined | null) => { +const setTaskDialogColor = (robotStatus: Status | undefined | null, theme: Theme) => { if (!robotStatus) { - return base.palette.background.default; + return theme.palette.background.default; } switch (robotStatus) { case Status.Error: - return base.palette.error.dark; + return theme.palette.error.dark; case Status.Working: - return base.palette.success.dark; + return theme.palette.success.dark; default: - return base.palette.warning.main; + return theme.palette.warning.main; } }; const LinearProgressWithLabel = (props: LinearProgressProps & { value: number }) => { return ( - - + + - + {`${Math.round( props.value, )}%`} @@ -257,7 +258,7 @@ export const RobotSummary = React.memo(({ onClose, robot }: RobotSummaryProps) = Task progress - + diff --git a/packages/react-components/lib/robots/robot-table-datagrid.stories.tsx b/packages/dashboard/src/components/robots/robot-table-datagrid.stories.tsx similarity index 100% rename from packages/react-components/lib/robots/robot-table-datagrid.stories.tsx rename to packages/dashboard/src/components/robots/robot-table-datagrid.stories.tsx diff --git a/packages/react-components/lib/robots/robot-table-datagrid.spec.tsx b/packages/dashboard/src/components/robots/robot-table-datagrid.test.tsx similarity index 98% rename from packages/react-components/lib/robots/robot-table-datagrid.spec.tsx rename to packages/dashboard/src/components/robots/robot-table-datagrid.test.tsx index 6ba0dfb46..2a804d7ec 100644 --- a/packages/react-components/lib/robots/robot-table-datagrid.spec.tsx +++ b/packages/dashboard/src/components/robots/robot-table-datagrid.test.tsx @@ -1,5 +1,6 @@ import { fireEvent, render } from '@testing-library/react'; import { ApiServerModelsRmfApiRobotStateStatus as RobotStatus } from 'api-client'; +import { describe, expect, it, vi } from 'vitest'; import { RobotDataGridTable, RobotTableData } from './robot-table-datagrid'; import { makeRobot } from './test-utils.spec'; diff --git a/packages/react-components/lib/robots/robot-table-datagrid.tsx b/packages/dashboard/src/components/robots/robot-table-datagrid.tsx similarity index 98% rename from packages/react-components/lib/robots/robot-table-datagrid.tsx rename to packages/dashboard/src/components/robots/robot-table-datagrid.tsx index 11afe6b7f..01e1bc358 100644 --- a/packages/react-components/lib/robots/robot-table-datagrid.tsx +++ b/packages/dashboard/src/components/robots/robot-table-datagrid.tsx @@ -83,7 +83,7 @@ export function RobotDataGridTable({ onRobotClick, robots }: RobotDataGridTableP })(); return ( - + - + Favorite tasks {favoritesTasks.map((favoriteTask, index) => { @@ -1110,9 +1110,7 @@ export function CreateTaskForm({ value={ScheduleUntilValue.NEVER} control={} label={ - - Never - + Never } sx={{ fontSize: isScreenHeightLessThan800 ? '0.8rem' : '1rem' }} /> @@ -1121,11 +1119,7 @@ export function CreateTaskForm({ } - label={ - - On - - } + label={On} /> diff --git a/packages/dashboard/src/components/tasks/index.ts b/packages/dashboard/src/components/tasks/index.ts new file mode 100644 index 000000000..7616fa426 --- /dev/null +++ b/packages/dashboard/src/components/tasks/index.ts @@ -0,0 +1,12 @@ +export * from './task-booking-label-utils'; +export * from './task-cancellation'; +export * from './task-details-card'; +export * from './task-info'; +export * from './task-inspector'; +export * from './task-logs'; +export * from './task-schedule'; +export * from './task-schedule-utils'; +export * from './task-summary'; +export * from './task-table'; +export * from './task-timeline'; +export * from './tasks-window'; diff --git a/packages/react-components/lib/tasks/task-booking-label-utils.tsx b/packages/dashboard/src/components/tasks/task-booking-label-utils.tsx similarity index 100% rename from packages/react-components/lib/tasks/task-booking-label-utils.tsx rename to packages/dashboard/src/components/tasks/task-booking-label-utils.tsx diff --git a/packages/dashboard/src/components/tasks/task-cancellation.tsx b/packages/dashboard/src/components/tasks/task-cancellation.tsx index 2c078b254..c09dbdf46 100644 --- a/packages/dashboard/src/components/tasks/task-cancellation.tsx +++ b/packages/dashboard/src/components/tasks/task-cancellation.tsx @@ -1,13 +1,13 @@ import { Button, ButtonProps, Tooltip, Typography } from '@mui/material'; import { TaskStateOutput as TaskState } from 'api-client'; import React from 'react'; -import { ConfirmationDialog } from 'react-components'; import { useAppController } from '../../hooks/use-app-controller'; import { useRmfApi } from '../../hooks/use-rmf-api'; import { useUserProfile } from '../../hooks/use-user-profile'; import { Enforcer } from '../../services/permissions'; import { AppEvents } from '../app-events'; +import { ConfirmationDialog } from '../confirmation-dialog'; export interface TaskCancelButtonProp extends ButtonProps { taskId: string | null; diff --git a/packages/dashboard/src/components/tasks/task-details-app.tsx b/packages/dashboard/src/components/tasks/task-details-card.tsx similarity index 98% rename from packages/dashboard/src/components/tasks/task-details-app.tsx rename to packages/dashboard/src/components/tasks/task-details-card.tsx index 55c429276..b0f4979f3 100644 --- a/packages/dashboard/src/components/tasks/task-details-app.tsx +++ b/packages/dashboard/src/components/tasks/task-details-card.tsx @@ -1,13 +1,13 @@ import { Button, CardContent, Grid, Typography, useTheme } from '@mui/material'; import { TaskStateOutput as TaskState } from 'api-client'; import React from 'react'; -import { TaskInfo } from 'react-components'; // import { UserProfileContext } from 'rmf-auth'; import { of, switchMap } from 'rxjs'; import { useAppController } from '../../hooks/use-app-controller'; import { useRmfApi } from '../../hooks/use-rmf-api'; import { AppEvents } from '../app-events'; +import { TaskInfo } from './task-info'; // import { Enforcer } from '../permissions'; export const TaskDetailsCard = () => { diff --git a/packages/react-components/lib/tasks/task-info.stories.tsx b/packages/dashboard/src/components/tasks/task-info.stories.tsx similarity index 90% rename from packages/react-components/lib/tasks/task-info.stories.tsx rename to packages/dashboard/src/components/tasks/task-info.stories.tsx index 574864ea9..70c8b9523 100644 --- a/packages/react-components/lib/tasks/task-info.stories.tsx +++ b/packages/dashboard/src/components/tasks/task-info.stories.tsx @@ -2,7 +2,7 @@ import { Paper } from '@mui/material'; import { Meta, StoryObj } from '@storybook/react'; import { TaskInfo } from './task-info'; -import { makeTaskState } from './test-data.spec'; +import { makeTaskState } from './test-data.test'; export default { title: 'Tasks/Task Info', diff --git a/packages/react-components/lib/tasks/task-info.spec.tsx b/packages/dashboard/src/components/tasks/task-info.test.tsx similarity index 75% rename from packages/react-components/lib/tasks/task-info.spec.tsx rename to packages/dashboard/src/components/tasks/task-info.test.tsx index 0f09dc8e5..40f715bf0 100644 --- a/packages/react-components/lib/tasks/task-info.spec.tsx +++ b/packages/dashboard/src/components/tasks/task-info.test.tsx @@ -1,7 +1,8 @@ import { render } from '@testing-library/react'; +import { describe, it } from 'vitest'; import { TaskInfo } from './task-info'; -import { makeTaskState } from './test-data.spec'; +import { makeTaskState } from './test-data.test'; describe('TaskInfo', () => { it('smoke test', () => { diff --git a/packages/react-components/lib/tasks/task-info.tsx b/packages/dashboard/src/components/tasks/task-info.tsx similarity index 100% rename from packages/react-components/lib/tasks/task-info.tsx rename to packages/dashboard/src/components/tasks/task-info.tsx diff --git a/packages/dashboard/src/components/tasks/task-inspector.tsx b/packages/dashboard/src/components/tasks/task-inspector.tsx index 8ac0ea7d0..ac6a8e18e 100644 --- a/packages/dashboard/src/components/tasks/task-inspector.tsx +++ b/packages/dashboard/src/components/tasks/task-inspector.tsx @@ -2,10 +2,10 @@ import { Box, Dialog, DialogContent, DialogTitle, Divider, Grid, Typography } fr import { CardContent, useTheme } from '@mui/material'; import { TaskEventLog, TaskStateOutput as TaskState } from 'api-client'; import React from 'react'; -import { TaskInfo } from 'react-components'; import { useRmfApi } from '../../hooks/use-rmf-api'; import { TaskCancelButton } from './task-cancellation'; +import { TaskInfo } from './task-info'; import { TaskLogs } from './task-logs'; export interface TableDataGridState { @@ -69,7 +69,7 @@ export function TaskInspector({ task, onClose }: TableDataGridState): JSX.Elemen - + {taskState ? ( diff --git a/packages/dashboard/src/components/tasks/task-logs.tsx b/packages/dashboard/src/components/tasks/task-logs.tsx index cdf231b8a..2e052eb74 100644 --- a/packages/dashboard/src/components/tasks/task-logs.tsx +++ b/packages/dashboard/src/components/tasks/task-logs.tsx @@ -54,7 +54,7 @@ export function TaskLogs({ taskLog, taskState, title }: TaskLogProps) { } return ( - + {taskState && (title ? title : taskState.booking.id)} diff --git a/packages/react-components/lib/tasks/task-schedule-event-edit-delete-popup.spec.tsx b/packages/dashboard/src/components/tasks/task-schedule-event-edit-delete-popup.test.tsx similarity index 93% rename from packages/react-components/lib/tasks/task-schedule-event-edit-delete-popup.spec.tsx rename to packages/dashboard/src/components/tasks/task-schedule-event-edit-delete-popup.test.tsx index 791772e76..55c8f9e25 100644 --- a/packages/react-components/lib/tasks/task-schedule-event-edit-delete-popup.spec.tsx +++ b/packages/dashboard/src/components/tasks/task-schedule-event-edit-delete-popup.test.tsx @@ -1,4 +1,5 @@ import { fireEvent, render } from '@testing-library/react'; +import { describe, expect, it, vi } from 'vitest'; import { EventEditDeletePopup } from './task-schedule-event-edit-delete-popup'; diff --git a/packages/react-components/lib/tasks/task-schedule-event-edit-delete-popup.tsx b/packages/dashboard/src/components/tasks/task-schedule-event-edit-delete-popup.tsx similarity index 100% rename from packages/react-components/lib/tasks/task-schedule-event-edit-delete-popup.tsx rename to packages/dashboard/src/components/tasks/task-schedule-event-edit-delete-popup.tsx diff --git a/packages/dashboard/src/components/tasks/task-schedule-utils.ts b/packages/dashboard/src/components/tasks/task-schedule-utils.ts index 1990895c0..c70260f99 100644 --- a/packages/dashboard/src/components/tasks/task-schedule-utils.ts +++ b/packages/dashboard/src/components/tasks/task-schedule-utils.ts @@ -20,13 +20,10 @@ import { nextWednesday, startOfMinute, } from 'date-fns'; -import { - getShortDescription, - getTaskBookingLabelFromTaskRequest, - RecurringDays, - Schedule, - TaskDefinition, -} from 'react-components'; + +import { RecurringDays, Schedule, TaskDefinition } from './create-task'; +import { getTaskBookingLabelFromTaskRequest } from './task-booking-label-utils'; +import { getShortDescription } from './types'; /** * Generates a list of ProcessedEvents to occur within the query start and end, diff --git a/packages/dashboard/src/components/tasks/task-schedule.tsx b/packages/dashboard/src/components/tasks/task-schedule.tsx index 2b72d95a5..5c46b25b2 100644 --- a/packages/dashboard/src/components/tasks/task-schedule.tsx +++ b/packages/dashboard/src/components/tasks/task-schedule.tsx @@ -11,13 +11,6 @@ import { WeekProps } from '@aldabil/react-scheduler/views/Week'; import { Button, Theme, Typography, useTheme } from '@mui/material'; import { ScheduledTask, ScheduledTaskScheduleOutput as ApiSchedule } from 'api-client'; import React from 'react'; -import { - ConfirmationDialog, - CreateTaskForm, - CreateTaskFormProps, - EventEditDeletePopup, - Schedule, -} from 'react-components'; import { useAppController } from '../../hooks/use-app-controller'; import { useCreateTaskFormData } from '../../hooks/use-create-task-form'; @@ -25,6 +18,9 @@ import { useRmfApi } from '../../hooks/use-rmf-api'; import { useTaskRegistry } from '../../hooks/use-task-registry'; import { useUserProfile } from '../../hooks/use-user-profile'; import { AppEvents } from '../app-events'; +import { ConfirmationDialog } from '../confirmation-dialog'; +import { CreateTaskForm, CreateTaskFormProps, Schedule } from './create-task'; +import { EventEditDeletePopup } from './task-schedule-event-edit-delete-popup'; import { apiScheduleToSchedule, getScheduledTaskColor, diff --git a/packages/dashboard/src/components/tasks/task-summary.tsx b/packages/dashboard/src/components/tasks/task-summary.tsx index 7dfcb594c..08cb8357a 100644 --- a/packages/dashboard/src/components/tasks/task-summary.tsx +++ b/packages/dashboard/src/components/tasks/task-summary.tsx @@ -4,6 +4,7 @@ import { LinearProgress, LinearProgressProps, TextField, + Theme, Typography, useMediaQuery, useTheme, @@ -17,19 +18,20 @@ import { TaskStateOutput as TaskState, } from 'api-client'; import React from 'react'; -import { base, getTaskBookingLabelFromTaskState, TaskBookingLabels } from 'react-components'; import { useRmfApi } from '../../hooks/use-rmf-api'; +import { TaskBookingLabels } from './booking-label'; +import { getTaskBookingLabelFromTaskState } from './task-booking-label-utils'; import { TaskCancelButton } from './task-cancellation'; import { TaskInspector } from './task-inspector'; const LinearProgressWithLabel = (props: LinearProgressProps & { value: number }) => { return ( - - + + - + {`${Math.round( props.value, )}%`} @@ -38,23 +40,23 @@ const LinearProgressWithLabel = (props: LinearProgressProps & { value: number }) ); }; -const setTaskDialogColor = (taskStatus: Status | undefined | null) => { +const setTaskDialogColor = (taskStatus: Status | undefined | null, theme: Theme) => { if (!taskStatus) { - return base.palette.background.default; + return theme.palette.background.default; } switch (taskStatus) { case Status.Failed: - return base.palette.error.dark; + return theme.palette.error.dark; case Status.Underway: - return base.palette.success.dark; + return theme.palette.success.dark; case Status.Queued: - return base.palette.info.main; + return theme.palette.info.main; default: - return base.palette.background.default; + return theme.palette.background.default; } }; @@ -169,7 +171,7 @@ export const TaskSummary = React.memo((props: TaskSummaryProps) => { { {taskProgress && ( - + )} diff --git a/packages/react-components/lib/tasks/task-table-datagrid.spec.tsx b/packages/dashboard/src/components/tasks/task-table-datagrid.test.tsx similarity index 92% rename from packages/react-components/lib/tasks/task-table-datagrid.spec.tsx rename to packages/dashboard/src/components/tasks/task-table-datagrid.test.tsx index b4922927a..f6a546f2b 100644 --- a/packages/react-components/lib/tasks/task-table-datagrid.spec.tsx +++ b/packages/dashboard/src/components/tasks/task-table-datagrid.test.tsx @@ -1,7 +1,8 @@ import { cleanup, render, RenderResult, screen } from '@testing-library/react'; +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; import { FilterFields, TaskDataGridTable, Tasks } from './task-table-datagrid'; -import { makeTaskState } from './test-data.spec'; +import { makeTaskState } from './test-data.test'; describe('Tasks table', () => { const tasks: Tasks = { diff --git a/packages/react-components/lib/tasks/task-table-datagrid.tsx b/packages/dashboard/src/components/tasks/task-table-datagrid.tsx similarity index 98% rename from packages/react-components/lib/tasks/task-table-datagrid.tsx rename to packages/dashboard/src/components/tasks/task-table-datagrid.tsx index f4fe741f1..5b8890c30 100644 --- a/packages/react-components/lib/tasks/task-table-datagrid.tsx +++ b/packages/dashboard/src/components/tasks/task-table-datagrid.tsx @@ -272,7 +272,7 @@ export function TaskDataGridTable({ } > - {startTimeString} + {startTimeString} ); }, @@ -311,7 +311,7 @@ export function TaskDataGridTable({ } > - {finishTimeString} + {finishTimeString} ); }, @@ -341,12 +341,12 @@ export function TaskDataGridTable({ } > - {`${statusString} (stale)`} + {`${statusString} (stale)`} ); } - return {statusString}; + return {statusString}; }, flex: 1, filterOperators: getMinimalStringFilterOperators, diff --git a/packages/react-components/lib/tasks/task-table.stories.tsx b/packages/dashboard/src/components/tasks/task-table.stories.tsx similarity index 94% rename from packages/react-components/lib/tasks/task-table.stories.tsx rename to packages/dashboard/src/components/tasks/task-table.stories.tsx index 6fbc4e825..52cba0306 100644 --- a/packages/react-components/lib/tasks/task-table.stories.tsx +++ b/packages/dashboard/src/components/tasks/task-table.stories.tsx @@ -3,7 +3,7 @@ import { Meta, StoryObj } from '@storybook/react'; import React from 'react'; import { TaskTable } from './task-table'; -import { makeTaskState } from './test-data.spec'; +import { makeTaskState } from './test-data.test'; const tasks = [makeTaskState('task_1'), makeTaskState('task_2'), makeTaskState('task_3')]; @@ -40,7 +40,6 @@ export const Table: Story = { { it('shows all tasks', () => { diff --git a/packages/react-components/lib/tasks/task-table.tsx b/packages/dashboard/src/components/tasks/task-table.tsx similarity index 100% rename from packages/react-components/lib/tasks/task-table.tsx rename to packages/dashboard/src/components/tasks/task-table.tsx diff --git a/packages/react-components/lib/tasks/task-timeline.stories.tsx b/packages/dashboard/src/components/tasks/task-timeline.stories.tsx similarity index 86% rename from packages/react-components/lib/tasks/task-timeline.stories.tsx rename to packages/dashboard/src/components/tasks/task-timeline.stories.tsx index 13e4b1ca1..d834b1229 100644 --- a/packages/react-components/lib/tasks/task-timeline.stories.tsx +++ b/packages/dashboard/src/components/tasks/task-timeline.stories.tsx @@ -1,7 +1,7 @@ import { Meta, StoryObj } from '@storybook/react'; import { TaskTimeline } from './task-timeline'; -import { makeTaskState } from './test-data.spec'; +import { makeTaskState } from './test-data.test'; export default { title: 'Tasks/Timeline', diff --git a/packages/react-components/lib/tasks/task-timeline.spec.tsx b/packages/dashboard/src/components/tasks/task-timeline.test.tsx similarity index 93% rename from packages/react-components/lib/tasks/task-timeline.spec.tsx rename to packages/dashboard/src/components/tasks/task-timeline.test.tsx index 95911e5ef..0fe00ae0f 100644 --- a/packages/react-components/lib/tasks/task-timeline.spec.tsx +++ b/packages/dashboard/src/components/tasks/task-timeline.test.tsx @@ -1,7 +1,8 @@ import { render } from '@testing-library/react'; +import { describe, expect, it } from 'vitest'; import { TaskTimeline } from './task-timeline'; -import { makeTaskState } from './test-data.spec'; +import { makeTaskState } from './test-data.test'; describe('Task Timeline', () => { it('shows the time for each phase', () => { diff --git a/packages/react-components/lib/tasks/task-timeline.tsx b/packages/dashboard/src/components/tasks/task-timeline.tsx similarity index 100% rename from packages/react-components/lib/tasks/task-timeline.tsx rename to packages/dashboard/src/components/tasks/task-timeline.tsx diff --git a/packages/dashboard/src/components/tasks/tasks-window.tsx b/packages/dashboard/src/components/tasks/tasks-window.tsx index 2b62a51f8..fbd429cfc 100644 --- a/packages/dashboard/src/components/tasks/tasks-window.tsx +++ b/packages/dashboard/src/components/tasks/tasks-window.tsx @@ -15,21 +15,21 @@ import { } from '@mui/material'; import { TaskStateInput as TaskState } from 'api-client'; import React from 'react'; -import { - FilterFields, - MuiMouseEvent, - SortFields, - TaskDataGridTable, - Tasks, - Window, -} from 'react-components'; import { useAppController } from '../../hooks/use-app-controller'; import { useRmfApi } from '../../hooks/use-rmf-api'; +import { MicroAppProps } from '../../micro-apps'; import { AppEvents } from '../app-events'; -import { MicroAppProps } from '../micro-app'; +import { Window } from '../window'; import { TaskSchedule } from './task-schedule'; import { TaskSummary } from './task-summary'; +import { + FilterFields, + MuiMouseEvent, + SortFields, + TaskDataGridTable, + Tasks, +} from './task-table-datagrid'; import { exportCsvFull, exportCsvMinimal } from './utils'; const RefreshTaskQueueTableInterval = 15000; diff --git a/packages/react-components/lib/tasks/test-data.spec.ts b/packages/dashboard/src/components/tasks/test-data.test.ts similarity index 100% rename from packages/react-components/lib/tasks/test-data.spec.ts rename to packages/dashboard/src/components/tasks/test-data.test.ts diff --git a/packages/react-components/lib/tasks/types/compose-clean.tsx b/packages/dashboard/src/components/tasks/types/compose-clean.tsx similarity index 100% rename from packages/react-components/lib/tasks/types/compose-clean.tsx rename to packages/dashboard/src/components/tasks/types/compose-clean.tsx diff --git a/packages/react-components/lib/tasks/types/custom-compose.tsx b/packages/dashboard/src/components/tasks/types/custom-compose.tsx similarity index 100% rename from packages/react-components/lib/tasks/types/custom-compose.tsx rename to packages/dashboard/src/components/tasks/types/custom-compose.tsx diff --git a/packages/react-components/lib/tasks/types/delivery-custom.spec.tsx b/packages/dashboard/src/components/tasks/types/delivery-custom.test.tsx similarity index 99% rename from packages/react-components/lib/tasks/types/delivery-custom.spec.tsx rename to packages/dashboard/src/components/tasks/types/delivery-custom.test.tsx index 06cb112cc..beb544ab2 100644 --- a/packages/react-components/lib/tasks/types/delivery-custom.spec.tsx +++ b/packages/dashboard/src/components/tasks/types/delivery-custom.test.tsx @@ -1,3 +1,5 @@ +import { describe, expect, it } from 'vitest'; + import { deliveryCustomInsertCartId, deliveryCustomInsertDropoff, diff --git a/packages/react-components/lib/tasks/types/delivery-custom.tsx b/packages/dashboard/src/components/tasks/types/delivery-custom.tsx similarity index 100% rename from packages/react-components/lib/tasks/types/delivery-custom.tsx rename to packages/dashboard/src/components/tasks/types/delivery-custom.tsx diff --git a/packages/react-components/lib/tasks/types/delivery.tsx b/packages/dashboard/src/components/tasks/types/delivery.tsx similarity index 100% rename from packages/react-components/lib/tasks/types/delivery.tsx rename to packages/dashboard/src/components/tasks/types/delivery.tsx diff --git a/packages/react-components/lib/tasks/types/index.ts b/packages/dashboard/src/components/tasks/types/index.ts similarity index 100% rename from packages/react-components/lib/tasks/types/index.ts rename to packages/dashboard/src/components/tasks/types/index.ts diff --git a/packages/react-components/lib/tasks/types/patrol.tsx b/packages/dashboard/src/components/tasks/types/patrol.tsx similarity index 100% rename from packages/react-components/lib/tasks/types/patrol.tsx rename to packages/dashboard/src/components/tasks/types/patrol.tsx diff --git a/packages/react-components/lib/tasks/types/utils.ts b/packages/dashboard/src/components/tasks/types/utils.ts similarity index 100% rename from packages/react-components/lib/tasks/types/utils.ts rename to packages/dashboard/src/components/tasks/types/utils.ts diff --git a/packages/dashboard/src/components/tasks/utils.ts b/packages/dashboard/src/components/tasks/utils.ts index be652ff28..2a16e4c3b 100644 --- a/packages/dashboard/src/components/tasks/utils.ts +++ b/packages/dashboard/src/components/tasks/utils.ts @@ -1,5 +1,7 @@ import { PostScheduledTaskRequest, TaskRequest, TaskStateOutput as TaskState } from 'api-client'; -import { getTaskBookingLabelFromTaskState, Schedule } from 'react-components'; + +import { Schedule } from './create-task'; +import { getTaskBookingLabelFromTaskState } from './task-booking-label-utils'; export function exportCsvFull(timestamp: Date, allTasks: TaskState[]) { const columnSeparator = ';'; diff --git a/packages/dashboard/src/components/three-fiber/index.tsx b/packages/dashboard/src/components/three-fiber/index.tsx deleted file mode 100644 index 7fc250694..000000000 --- a/packages/dashboard/src/components/three-fiber/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -export * from './camera-control'; -export * from './door-three'; -export * from './layers-controller'; -export * from './lift-three'; -export * from './robot-three'; diff --git a/packages/react-components/lib/transfer-list.stories.tsx b/packages/dashboard/src/components/transfer-list.stories.tsx similarity index 100% rename from packages/react-components/lib/transfer-list.stories.tsx rename to packages/dashboard/src/components/transfer-list.stories.tsx diff --git a/packages/react-components/lib/transfer-list.spec.tsx b/packages/dashboard/src/components/transfer-list.test.tsx similarity index 95% rename from packages/react-components/lib/transfer-list.spec.tsx rename to packages/dashboard/src/components/transfer-list.test.tsx index 203d894ff..b1b063940 100644 --- a/packages/react-components/lib/transfer-list.spec.tsx +++ b/packages/dashboard/src/components/transfer-list.test.tsx @@ -1,4 +1,5 @@ import { fireEvent, render } from '@testing-library/react'; +import { beforeEach, describe, expect, it, vi } from 'vitest'; import { TransferList } from './transfer-list'; diff --git a/packages/react-components/lib/transfer-list.tsx b/packages/dashboard/src/components/transfer-list.tsx similarity index 100% rename from packages/react-components/lib/transfer-list.tsx rename to packages/dashboard/src/components/transfer-list.tsx diff --git a/packages/react-components/lib/utils/geometry.spec.ts b/packages/dashboard/src/components/utils/geometry.test.ts similarity index 98% rename from packages/react-components/lib/utils/geometry.spec.ts rename to packages/dashboard/src/components/utils/geometry.test.ts index 758be3ced..efdb77387 100644 --- a/packages/react-components/lib/utils/geometry.spec.ts +++ b/packages/dashboard/src/components/utils/geometry.test.ts @@ -1,3 +1,5 @@ +import { expect, it } from 'vitest'; + import { bezierControlPoints, fromRmfCoords, diff --git a/packages/react-components/lib/utils/geometry.ts b/packages/dashboard/src/components/utils/geometry.ts similarity index 100% rename from packages/react-components/lib/utils/geometry.ts rename to packages/dashboard/src/components/utils/geometry.ts diff --git a/packages/react-components/lib/utils/item-table.tsx b/packages/dashboard/src/components/utils/item-table.tsx similarity index 100% rename from packages/react-components/lib/utils/item-table.tsx rename to packages/dashboard/src/components/utils/item-table.tsx diff --git a/packages/react-components/lib/utils/misc.spec.ts b/packages/dashboard/src/components/utils/misc.test.ts similarity index 92% rename from packages/react-components/lib/utils/misc.spec.ts rename to packages/dashboard/src/components/utils/misc.test.ts index 27dafcb04..8683689d7 100644 --- a/packages/react-components/lib/utils/misc.spec.ts +++ b/packages/dashboard/src/components/utils/misc.test.ts @@ -1,4 +1,6 @@ -import { almostShallowEqual } from '.'; +import { describe, expect, it } from 'vitest'; + +import { almostShallowEqual } from './misc'; import { defaultDict } from './misc'; it('sets correct default value', () => { diff --git a/packages/react-components/lib/utils/misc.ts b/packages/dashboard/src/components/utils/misc.ts similarity index 100% rename from packages/react-components/lib/utils/misc.ts rename to packages/dashboard/src/components/utils/misc.ts diff --git a/packages/react-components/lib/window/context.ts b/packages/dashboard/src/components/window/context.ts similarity index 100% rename from packages/react-components/lib/window/context.ts rename to packages/dashboard/src/components/window/context.ts diff --git a/packages/react-components/lib/window/demo.stories.tsx b/packages/dashboard/src/components/window/demo.stories.tsx similarity index 100% rename from packages/react-components/lib/window/demo.stories.tsx rename to packages/dashboard/src/components/window/demo.stories.tsx diff --git a/packages/react-components/lib/window/index.ts b/packages/dashboard/src/components/window/index.ts similarity index 100% rename from packages/react-components/lib/window/index.ts rename to packages/dashboard/src/components/window/index.ts diff --git a/packages/react-components/lib/window/no-rgl-animations.css b/packages/dashboard/src/components/window/no-rgl-animations.css similarity index 100% rename from packages/react-components/lib/window/no-rgl-animations.css rename to packages/dashboard/src/components/window/no-rgl-animations.css diff --git a/packages/react-components/lib/window/test-utils.spec.ts b/packages/dashboard/src/components/window/test-utils.spec.ts similarity index 100% rename from packages/react-components/lib/window/test-utils.spec.ts rename to packages/dashboard/src/components/window/test-utils.spec.ts diff --git a/packages/react-components/lib/window/window-container.tsx b/packages/dashboard/src/components/window/window-container.tsx similarity index 100% rename from packages/react-components/lib/window/window-container.tsx rename to packages/dashboard/src/components/window/window-container.tsx diff --git a/packages/react-components/lib/window/window-toolbar.stories.tsx b/packages/dashboard/src/components/window/window-toolbar.stories.tsx similarity index 100% rename from packages/react-components/lib/window/window-toolbar.stories.tsx rename to packages/dashboard/src/components/window/window-toolbar.stories.tsx diff --git a/packages/react-components/lib/window/window-toolbar.tsx b/packages/dashboard/src/components/window/window-toolbar.tsx similarity index 100% rename from packages/react-components/lib/window/window-toolbar.tsx rename to packages/dashboard/src/components/window/window-toolbar.tsx diff --git a/packages/react-components/lib/window/window.tsx b/packages/dashboard/src/components/window/window.tsx similarity index 100% rename from packages/react-components/lib/window/window.tsx rename to packages/dashboard/src/components/window/window.tsx diff --git a/packages/react-components/lib/workcells/index.ts b/packages/dashboard/src/components/workcells/index.ts similarity index 73% rename from packages/react-components/lib/workcells/index.ts rename to packages/dashboard/src/components/workcells/index.ts index e62b6df7a..459db07c4 100644 --- a/packages/react-components/lib/workcells/index.ts +++ b/packages/dashboard/src/components/workcells/index.ts @@ -1,7 +1,4 @@ import type { Dispenser, DispenserState, Ingestor, IngestorState } from 'api-client'; -export * from './workcell-panel'; -export * from './workcell-table'; - export type Workcell = Dispenser | Ingestor; export type WorkcellState = DispenserState | IngestorState; diff --git a/packages/react-components/lib/workcells/test-utils.spec.ts b/packages/dashboard/src/components/workcells/test-utils.spec.ts similarity index 100% rename from packages/react-components/lib/workcells/test-utils.spec.ts rename to packages/dashboard/src/components/workcells/test-utils.spec.ts diff --git a/packages/react-components/lib/workcells/utils.ts b/packages/dashboard/src/components/workcells/utils.ts similarity index 100% rename from packages/react-components/lib/workcells/utils.ts rename to packages/dashboard/src/components/workcells/utils.ts diff --git a/packages/react-components/lib/workcells/workcell-panel.stories.tsx b/packages/dashboard/src/components/workcells/workcell-panel.stories.tsx similarity index 100% rename from packages/react-components/lib/workcells/workcell-panel.stories.tsx rename to packages/dashboard/src/components/workcells/workcell-panel.stories.tsx diff --git a/packages/react-components/lib/workcells/workcell-panel.spec.tsx b/packages/dashboard/src/components/workcells/workcell-panel.test.tsx similarity index 95% rename from packages/react-components/lib/workcells/workcell-panel.spec.tsx rename to packages/dashboard/src/components/workcells/workcell-panel.test.tsx index ae1878422..5c1f92a5e 100644 --- a/packages/react-components/lib/workcells/workcell-panel.spec.tsx +++ b/packages/dashboard/src/components/workcells/workcell-panel.test.tsx @@ -1,4 +1,5 @@ import { fireEvent, render } from '@testing-library/react'; +import { beforeEach, describe, expect, it } from 'vitest'; import { makeDispenser, makeDispenserState } from './test-utils.spec'; import { WorkcellPanel } from './workcell-panel'; diff --git a/packages/react-components/lib/workcells/workcell-panel.tsx b/packages/dashboard/src/components/workcells/workcell-panel.tsx similarity index 100% rename from packages/react-components/lib/workcells/workcell-panel.tsx rename to packages/dashboard/src/components/workcells/workcell-panel.tsx diff --git a/packages/react-components/lib/workcells/workcell-table.spec.tsx b/packages/dashboard/src/components/workcells/workcell-table.test.tsx similarity index 96% rename from packages/react-components/lib/workcells/workcell-table.spec.tsx rename to packages/dashboard/src/components/workcells/workcell-table.test.tsx index 531bf2427..62809312e 100644 --- a/packages/react-components/lib/workcells/workcell-table.spec.tsx +++ b/packages/dashboard/src/components/workcells/workcell-table.test.tsx @@ -1,5 +1,6 @@ import { render } from '@testing-library/react'; import { DispenserState as RmfDispenserState } from 'rmf-models/ros/rmf_dispenser_msgs/msg'; +import { describe, expect, it } from 'vitest'; import { makeDispenser, makeDispenserState } from './test-utils.spec'; import { WorkcellTable } from './workcell-table'; diff --git a/packages/react-components/lib/workcells/workcell-table.tsx b/packages/dashboard/src/components/workcells/workcell-table.tsx similarity index 63% rename from packages/react-components/lib/workcells/workcell-table.tsx rename to packages/dashboard/src/components/workcells/workcell-table.tsx index bd538eea7..6723b9856 100644 --- a/packages/react-components/lib/workcells/workcell-table.tsx +++ b/packages/dashboard/src/components/workcells/workcell-table.tsx @@ -3,7 +3,7 @@ import clsx from 'clsx'; import React from 'react'; import { DispenserState as RmfDispenserState } from 'rmf-models/ros/rmf_dispenser_msgs/msg'; -import { ItemTableCell, useFixedTableCellStylesClasses } from '../utils'; +import { ItemTableCell, useFixedTableCellStylesClasses } from '../utils/item-table'; import { Workcell, WorkcellState } from '.'; import { dispenserModeToString } from './utils'; @@ -46,11 +46,10 @@ const WorkcellRow = React.memo( }, []); return ( - + {mode !== undefined && requestGuidQueue !== undefined && secondsRemaining !== undefined ? ( {dispenserModeToString(mode)} - + {requestGuidQueue.length} - + {requestGuidQueue} - + {secondsRemaining} ) : ( {workcell.guid} - + {'NA'} - + {'NA'} - + {'NA'} - + {'NA'} @@ -133,27 +102,17 @@ const WorkcellRow = React.memo( export const WorkcellTable = ({ workcells, workcellStates }: WorkcellTableProps): JSX.Element => { return ( - - - - - Dispenser Name - - - Op. Mode - - - No. Queued Requests - - - Request Queue ID - - - Seconds Remaining - +
+ + + Dispenser Name + Op. Mode + No. Queued Requests + Request Queue ID + Seconds Remaining - + {workcells.map((workcell) => { const workcellState: WorkcellState | undefined = workcellStates[workcell.guid]; return ( diff --git a/packages/dashboard/src/components/workspace.tsx b/packages/dashboard/src/components/workspace.tsx index b420a1bb8..0e334898f 100644 --- a/packages/dashboard/src/components/workspace.tsx +++ b/packages/dashboard/src/components/workspace.tsx @@ -2,10 +2,10 @@ import AddIcon from '@mui/icons-material/Add'; import DesignModeIcon from '@mui/icons-material/AutoFixNormal'; import { Box, Fab, IconButton, Menu, MenuItem, Typography, useTheme } from '@mui/material'; import React from 'react'; -import { WindowContainer, WindowLayout } from 'react-components'; import { useAppController } from '../hooks/use-app-controller'; -import { MicroAppManifest } from './micro-app'; +import { MicroAppManifest } from '../micro-apps'; +import { WindowContainer, WindowLayout } from './window'; export interface InitialWindow { layout: Omit; diff --git a/packages/react-components/lib/use-async.spec.ts b/packages/dashboard/src/hooks/use-async.test.ts similarity index 95% rename from packages/react-components/lib/use-async.spec.ts rename to packages/dashboard/src/hooks/use-async.test.ts index 75c6cd31d..0d09d91db 100644 --- a/packages/react-components/lib/use-async.spec.ts +++ b/packages/dashboard/src/hooks/use-async.test.ts @@ -1,4 +1,5 @@ import { renderHook } from '@testing-library/react'; +import { describe, expect, it } from 'vitest'; import { useAsync } from './use-async'; diff --git a/packages/react-components/lib/use-async.ts b/packages/dashboard/src/hooks/use-async.ts similarity index 100% rename from packages/react-components/lib/use-async.ts rename to packages/dashboard/src/hooks/use-async.ts diff --git a/packages/dashboard/src/hooks/use-create-task-form.tsx b/packages/dashboard/src/hooks/use-create-task-form.tsx index 3bb5c66d5..f7aba9348 100644 --- a/packages/dashboard/src/hooks/use-create-task-form.tsx +++ b/packages/dashboard/src/hooks/use-create-task-form.tsx @@ -1,7 +1,7 @@ import React from 'react'; -import { getPlaces } from 'react-components'; import { Subscription } from 'rxjs'; +import { getPlaces } from '../components/place'; import { RmfApi } from '../services/rmf-api'; export const useCreateTaskFormData = (rmfApi: RmfApi | undefined) => { diff --git a/packages/dashboard/src/hooks/use-task-registry.ts b/packages/dashboard/src/hooks/use-task-registry.ts index a65e7451a..1e5fef1de 100644 --- a/packages/dashboard/src/hooks/use-task-registry.ts +++ b/packages/dashboard/src/hooks/use-task-registry.ts @@ -1,5 +1,4 @@ -import { TaskDefinition } from 'react-components'; - +import { TaskDefinition } from '../components/tasks/create-task'; import { createDeferredContext } from './deferred-context'; export interface TaskRegistry { diff --git a/packages/dashboard/src/micro-apps/doors-app.ts b/packages/dashboard/src/micro-apps/doors-app.ts index 6f617bba9..31879dacd 100644 --- a/packages/dashboard/src/micro-apps/doors-app.ts +++ b/packages/dashboard/src/micro-apps/doors-app.ts @@ -1,8 +1,8 @@ -import { createMicroApp } from '../components/micro-app'; +import { createMicroApp } from '.'; export default createMicroApp( 'doors-table', 'Doors', - () => import('../components/doors-table'), + () => import('../components/doors/doors-table'), () => ({}), ); diff --git a/packages/dashboard/src/components/micro-app.tsx b/packages/dashboard/src/micro-apps/index.tsx similarity index 96% rename from packages/dashboard/src/components/micro-app.tsx rename to packages/dashboard/src/micro-apps/index.tsx index 8dd68d855..28d26498a 100644 --- a/packages/dashboard/src/components/micro-app.tsx +++ b/packages/dashboard/src/micro-apps/index.tsx @@ -1,6 +1,6 @@ import React, { Suspense } from 'react'; -import { Window, WindowProps } from 'react-components'; +import { Window, WindowProps } from '../components/window'; import { useSettings } from '../hooks/use-settings'; import { Settings } from '../services/settings'; diff --git a/packages/dashboard/src/micro-apps/lifts-app.ts b/packages/dashboard/src/micro-apps/lifts-app.ts index 7922dfb5a..832d5d718 100644 --- a/packages/dashboard/src/micro-apps/lifts-app.ts +++ b/packages/dashboard/src/micro-apps/lifts-app.ts @@ -1,8 +1,8 @@ -import { createMicroApp } from '../components/micro-app'; +import { createMicroApp } from '.'; export default createMicroApp( 'lifts-table', 'Lifts', - () => import('../components/lifts-table'), + () => import('../components/lifts/lifts-table'), () => ({}), ); diff --git a/packages/dashboard/src/micro-apps/map-app.ts b/packages/dashboard/src/micro-apps/map-app.ts index 962bbab27..e87f0e99b 100644 --- a/packages/dashboard/src/micro-apps/map-app.ts +++ b/packages/dashboard/src/micro-apps/map-app.ts @@ -1,5 +1,5 @@ import type { MapProps } from '../components/map'; -import { createMicroApp, MicroAppManifest } from '../components/micro-app'; +import { createMicroApp, MicroAppManifest } from '.'; export default function createMapApp(config: MapProps): MicroAppManifest { return createMicroApp( diff --git a/packages/dashboard/src/micro-apps/robot-mutex-groups-app.ts b/packages/dashboard/src/micro-apps/robot-mutex-groups-app.ts index 6fe55e144..7d7001ad8 100644 --- a/packages/dashboard/src/micro-apps/robot-mutex-groups-app.ts +++ b/packages/dashboard/src/micro-apps/robot-mutex-groups-app.ts @@ -1,4 +1,4 @@ -import { createMicroApp } from '../components/micro-app'; +import { createMicroApp } from '.'; export default createMicroApp( 'robot-mutex-groups-table', diff --git a/packages/dashboard/src/micro-apps/robots-app.ts b/packages/dashboard/src/micro-apps/robots-app.ts index c44b76183..eafd02079 100644 --- a/packages/dashboard/src/micro-apps/robots-app.ts +++ b/packages/dashboard/src/micro-apps/robots-app.ts @@ -1,4 +1,4 @@ -import { createMicroApp } from '../components/micro-app'; +import { createMicroApp } from '.'; export default createMicroApp( 'robots-table', diff --git a/packages/dashboard/src/micro-apps/tasks-app.ts b/packages/dashboard/src/micro-apps/tasks-app.ts index 42654915e..e0290812a 100644 --- a/packages/dashboard/src/micro-apps/tasks-app.ts +++ b/packages/dashboard/src/micro-apps/tasks-app.ts @@ -1,6 +1,6 @@ import { lazy } from 'react'; -import { MicroAppManifest } from '../components/micro-app'; +import { MicroAppManifest } from '.'; export default { appId: 'tasks', diff --git a/packages/dashboard/src/pages/login-page.tsx b/packages/dashboard/src/pages/login-page.tsx index 2716c776d..775d8fcfb 100644 --- a/packages/dashboard/src/pages/login-page.tsx +++ b/packages/dashboard/src/pages/login-page.tsx @@ -1,6 +1,6 @@ import { styled } from '@mui/material'; -import { LoginCard, LoginCardProps } from '../components'; +import LoginCard, { LoginCardProps } from '../components/login-card'; const prefix = 'login-page'; const classes = { diff --git a/packages/react-components/lib/color-manager.spec.ts b/packages/dashboard/src/services/color-manager.test.ts similarity index 88% rename from packages/react-components/lib/color-manager.spec.ts rename to packages/dashboard/src/services/color-manager.test.ts index c497d4d18..6d27065c4 100644 --- a/packages/react-components/lib/color-manager.spec.ts +++ b/packages/dashboard/src/services/color-manager.test.ts @@ -1,3 +1,5 @@ +import { beforeEach, describe, expect, it } from 'vitest'; + import { ColorManager } from './color-manager'; let colorManager: ColorManager; diff --git a/packages/react-components/lib/color-manager.ts b/packages/dashboard/src/services/color-manager.ts similarity index 97% rename from packages/react-components/lib/color-manager.ts rename to packages/dashboard/src/services/color-manager.ts index 8de0727db..d7b55a1ba 100644 --- a/packages/react-components/lib/color-manager.ts +++ b/packages/dashboard/src/services/color-manager.ts @@ -5,7 +5,7 @@ import { crc32 } from 'crc'; import Vibrant from 'node-vibrant'; import React from 'react'; -import { robotHash } from './robots'; +import { robotHash } from '../components/robots/utils'; function _hash(s: string): number { return crc32(s); diff --git a/packages/dashboard/src/services/robot-trajectory-manager.ts b/packages/dashboard/src/services/robot-trajectory-manager.ts index 11303974c..cf6f0430b 100644 --- a/packages/dashboard/src/services/robot-trajectory-manager.ts +++ b/packages/dashboard/src/services/robot-trajectory-manager.ts @@ -1,5 +1,4 @@ -import { Knot } from 'react-components'; - +import { Knot } from '../components/utils/geometry'; import { Authenticator } from './authenticator'; import TrajectorySocketManager from './trajectory-socket-manager'; diff --git a/packages/react-components/test-data/assets/code-brackets.svg b/packages/dashboard/test-data/assets/code-brackets.svg similarity index 100% rename from packages/react-components/test-data/assets/code-brackets.svg rename to packages/dashboard/test-data/assets/code-brackets.svg diff --git a/packages/react-components/test-data/assets/colors.svg b/packages/dashboard/test-data/assets/colors.svg similarity index 100% rename from packages/react-components/test-data/assets/colors.svg rename to packages/dashboard/test-data/assets/colors.svg diff --git a/packages/react-components/test-data/assets/comments.svg b/packages/dashboard/test-data/assets/comments.svg similarity index 100% rename from packages/react-components/test-data/assets/comments.svg rename to packages/dashboard/test-data/assets/comments.svg diff --git a/packages/react-components/test-data/assets/direction.svg b/packages/dashboard/test-data/assets/direction.svg similarity index 100% rename from packages/react-components/test-data/assets/direction.svg rename to packages/dashboard/test-data/assets/direction.svg diff --git a/packages/react-components/test-data/assets/flow.svg b/packages/dashboard/test-data/assets/flow.svg similarity index 100% rename from packages/react-components/test-data/assets/flow.svg rename to packages/dashboard/test-data/assets/flow.svg diff --git a/packages/react-components/test-data/assets/office.png b/packages/dashboard/test-data/assets/office.png similarity index 100% rename from packages/react-components/test-data/assets/office.png rename to packages/dashboard/test-data/assets/office.png diff --git a/packages/react-components/test-data/assets/plugin.svg b/packages/dashboard/test-data/assets/plugin.svg similarity index 100% rename from packages/react-components/test-data/assets/plugin.svg rename to packages/dashboard/test-data/assets/plugin.svg diff --git a/packages/react-components/test-data/assets/repo.svg b/packages/dashboard/test-data/assets/repo.svg similarity index 100% rename from packages/react-components/test-data/assets/repo.svg rename to packages/dashboard/test-data/assets/repo.svg diff --git a/packages/react-components/test-data/assets/ros-health.png b/packages/dashboard/test-data/assets/ros-health.png similarity index 100% rename from packages/react-components/test-data/assets/ros-health.png rename to packages/dashboard/test-data/assets/ros-health.png diff --git a/packages/react-components/test-data/assets/roshealth-logo-white.png b/packages/dashboard/test-data/assets/roshealth-logo-white.png similarity index 100% rename from packages/react-components/test-data/assets/roshealth-logo-white.png rename to packages/dashboard/test-data/assets/roshealth-logo-white.png diff --git a/packages/react-components/test-data/assets/stackalt.svg b/packages/dashboard/test-data/assets/stackalt.svg similarity index 100% rename from packages/react-components/test-data/assets/stackalt.svg rename to packages/dashboard/test-data/assets/stackalt.svg diff --git a/packages/react-components/test-data/assets/tiny-robot.png b/packages/dashboard/test-data/assets/tiny-robot.png similarity index 100% rename from packages/react-components/test-data/assets/tiny-robot.png rename to packages/dashboard/test-data/assets/tiny-robot.png diff --git a/packages/react-components/.gitignore b/packages/react-components/.gitignore deleted file mode 100644 index 15c93ffc0..000000000 --- a/packages/react-components/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/dist/ -lcov.info -coverage-final.json diff --git a/packages/react-components/.storybook/main.ts b/packages/react-components/.storybook/main.ts deleted file mode 100644 index 8218eaff2..000000000 --- a/packages/react-components/.storybook/main.ts +++ /dev/null @@ -1,23 +0,0 @@ -import type { StorybookConfig } from '@storybook/react-vite'; - -const config: StorybookConfig = { - stories: ['../lib/**/*.stories.@(js|jsx|mjs|ts|tsx)'], - addons: [ - '@storybook/addon-onboarding', - '@storybook/addon-links', - '@storybook/addon-essentials', - '@storybook/addon-interactions', - ], - framework: '@storybook/react-vite', - docs: {}, - swc: () => ({ - jsc: { - transform: { - react: { - runtime: 'automatic', - }, - }, - }, - }), -}; -export default config; diff --git a/packages/react-components/lib/alert-dialog.spec.tsx b/packages/react-components/lib/alert-dialog.spec.tsx deleted file mode 100644 index 52dd72832..000000000 --- a/packages/react-components/lib/alert-dialog.spec.tsx +++ /dev/null @@ -1,92 +0,0 @@ -import { createTheme, ThemeProvider } from '@mui/material'; -import { fireEvent, render } from '@testing-library/react'; - -import { AlertContent, AlertDialog } from './alert-dialog'; - -const theme = createTheme(); - -describe('AcknowledgeAndCloseAlertDialog', () => { - it('dismiss button called', () => { - const buildAlertDialogContent = (): AlertContent[] => { - return [ - { - title: 'ID', - value: 'testAlertID', - }, - { - title: 'Error logs', - value: '1/1/1970 00:00:00 - error', - }, - { - title: 'Logs', - value: '1/1/1970 00:00:00 - completed', - }, - ]; - }; - const acknowledge = vi.fn(); - const dismiss = vi.fn(); - const root = render( - - - , - ); - expect(() => root.getByText('Acknowledge')).not.toThrow(); - expect(() => root.getByText('Dismiss')).not.toThrow(); - fireEvent.click(root.getByText('Dismiss')); - expect(dismiss).toHaveBeenCalled(); - }); - - it('acknowledge and close', () => { - const buildAlertDialogContent = (): AlertContent[] => { - return [ - { - title: 'ID', - value: 'testAlertID', - }, - { - title: 'Error logs', - value: '1/1/1970 00:00:00 - error', - }, - { - title: 'Logs', - value: '1/1/1970 00:00:00 - completed', - }, - ]; - }; - const acknowledge = vi.fn(); - const close = vi.fn(); - const root = render( - - - , - ); - expect(() => root.getByText('Acknowledge')).not.toThrow(); - expect(() => root.getByText('Dismiss')).not.toThrow(); - fireEvent.click(root.getByText('Acknowledge')); - expect(acknowledge).toHaveBeenCalled(); - // acknowledge button turns to acknowledged - expect(() => root.getByText('Acknowledge')).toThrow(); - expect(() => root.getByText('Acknowledged')).not.toThrow(); - // dismiss button turns to close - expect(() => root.getByText('Dismiss')).toThrow(); - expect(() => root.getByText('Close')).not.toThrow(); - fireEvent.click(root.getByText('Close')); - expect(close).toHaveBeenCalled(); - }); -}); diff --git a/packages/react-components/lib/alert-dialog.stories.tsx b/packages/react-components/lib/alert-dialog.stories.tsx deleted file mode 100644 index 2a6b02758..000000000 --- a/packages/react-components/lib/alert-dialog.stories.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import React from 'react'; - -import { AlertContent, AlertDialog } from './alert-dialog'; - -const buildAlertDialogContent = (): AlertContent[] => { - return [ - { - title: 'ID', - value: 'testAlertID', - }, - { - title: 'Error logs', - value: '1/1/1970 00:00:00 - error', - }, - { - title: 'Logs', - value: '1/1/1970 00:00:00 - completed', - }, - ]; -}; -export default { - title: 'Alert Dialog', - component: AlertDialog, -} satisfies Meta; - -type Story = StoryObj; - -export const Default: Story = { - storyName: 'Alert Dialog', - render: () => { - const [acknowledged, setAcknowledged] = React.useState(false); - const [dismissed, setDismissed] = React.useState(false); - return ( - setDismissed(true)} - onAcknowledge={() => setAcknowledged(true)} - title={`${acknowledged ? 'acknowledged!' : 'default'} and ${ - dismissed ? 'dismissed!' : 'default' - }`} - progress={1} - alertContents={buildAlertDialogContent()} - backgroundColor={'ffff'} - > - ); - }, -}; diff --git a/packages/react-components/lib/alert-dialog.tsx b/packages/react-components/lib/alert-dialog.tsx deleted file mode 100644 index 68bb85f8b..000000000 --- a/packages/react-components/lib/alert-dialog.tsx +++ /dev/null @@ -1,193 +0,0 @@ -import { - Box, - Button, - Divider, - LinearProgress, - LinearProgressProps, - TextField, - Typography, - useTheme, -} from '@mui/material'; -import Dialog from '@mui/material/Dialog'; -import DialogActions from '@mui/material/DialogActions'; -import DialogContent from '@mui/material/DialogContent'; -import DialogTitle from '@mui/material/DialogTitle'; -import * as React from 'react'; - -export interface AlertContent { - title: string; - value: string; -} - -export interface CloseAlertDialogProps { - title: string; -} - -export const CloseAlertDialog = React.memo((props: CloseAlertDialogProps) => { - const { title } = props; - return ; -}); - -export interface DialogAlertProps { - onDismiss: () => void; - onAcknowledge?: () => void; - onInspect?: () => void; - acknowledgedBy?: string; - title: string; - progress?: number; - alertContents: AlertContent[]; - backgroundColor: string; -} - -export const AlertDialog = React.memo((props: DialogAlertProps) => { - const theme = useTheme(); - const LinearProgressWithLabel = (props: LinearProgressProps & { value: number }) => { - return ( - - - - - - {`${Math.round( - props.value * 100, - )}%`} - - - ); - }; - - const returnDialogContent = (alertContents: AlertContent[]) => { - return ( - <> - {alertContents.map((message, index) => ( -
- -
- ))} - - ); - }; - - const { - onDismiss, - onAcknowledge, - onInspect, - acknowledgedBy, - title, - progress, - alertContents, - backgroundColor, - } = props; - const [isOpen, setIsOpen] = React.useState(true); - const [acknowledged, setAcknowledged] = React.useState(acknowledgedBy !== undefined); - - return ( - - - {title} - - - {progress ? ( - <> - - Task progress - - - - - - ) : null} - {returnDialogContent(alertContents)} - - - {onInspect ? ( - - ) : null} - {acknowledged ? ( - - ) : onAcknowledge === undefined ? null : ( - - )} - - - - ); -}); diff --git a/packages/react-components/lib/appbar-tab.tsx b/packages/react-components/lib/appbar-tab.tsx deleted file mode 100644 index 896a03350..000000000 --- a/packages/react-components/lib/appbar-tab.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { styled, Tab, TabProps } from '@mui/material'; - -const StyledTab = styled((props: TabProps) => )(({ theme }) => ({ - color: theme.palette.primary.contrastText, - opacity: 0.6, - '&.Mui-selected': { - color: theme.palette.primary.contrastText, - opacity: 1, - }, -})); - -export interface TabPanelProps extends TabProps { - label: string; - value: string; - onTabClick?: () => void; -} - -export function AppBarTab(props: TabPanelProps): JSX.Element { - const { label, value, onTabClick, ...otherProps } = props; - - return ( - onTabClick && onTabClick()} - {...otherProps} - /> - ); -} diff --git a/packages/react-components/lib/beacons/index.ts b/packages/react-components/lib/beacons/index.ts deleted file mode 100644 index a157aac29..000000000 --- a/packages/react-components/lib/beacons/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './beacon-table-datagrid'; diff --git a/packages/react-components/lib/doors/index.ts b/packages/react-components/lib/doors/index.ts deleted file mode 100644 index d88f99bfa..000000000 --- a/packages/react-components/lib/doors/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from './door-card'; -export * from './door-controls'; -export * from './door-table-datagrid'; -export * from './door-utils'; diff --git a/packages/react-components/lib/error-overlay.stories.tsx b/packages/react-components/lib/error-overlay.stories.tsx deleted file mode 100644 index 0675023a9..000000000 --- a/packages/react-components/lib/error-overlay.stories.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import { styled } from '@mui/material'; -import { Meta, StoryObj } from '@storybook/react'; - -import { ErrorOverlay } from './error-overlay'; -import { SimpleInfo, SimpleInfoProps } from './simple-info'; - -export default { - title: 'Error Overlay', - component: ErrorOverlay, -} satisfies Meta; - -type Story = StoryObj; - -const classes = { - container: 'simple-info-testcomponent', -}; -const SimpleInfo_ = styled((props: SimpleInfoProps) => )(() => ({ - [`& .${classes.container}`]: { - display: 'table', - borderCollapse: 'collapse', - width: '100%', - overflowX: 'auto', - userSelect: 'none', - }, -})); - -function TestComponent() { - const data = [ - { name: 'String', value: 'This is a string' }, - { name: 'Number', value: 3 }, - { - name: 'Array', - value: ['one', 'two', 'three'], - }, - ]; - return ; -} - -export const ErrorOverlayPanel: Story = { - render: (args) => ( - - - - ), -}; diff --git a/packages/react-components/lib/error-overlay.tsx b/packages/react-components/lib/error-overlay.tsx deleted file mode 100644 index d4953eb61..000000000 --- a/packages/react-components/lib/error-overlay.tsx +++ /dev/null @@ -1,82 +0,0 @@ -import ErrorIcon from '@mui/icons-material/Error'; -import { Grid, styled, Typography } from '@mui/material'; -import React from 'react'; - -const classes = { - errorIcon: 'erroroverlay-error-icon', - errorMsg: 'erroroverlay-error-msg', - errorDisabled: 'erroroverlay-error-disabled', - overlay: 'erroroverlay-overlay', - container: 'erroroverlay-container', - disableSelect: 'erroroverlay-disable-select', -}; -const StyledDiv = styled('div')(({ theme }) => ({ - [`& .${classes.errorIcon}`]: { - color: theme.palette.error.main, - fontSize: '2rem', - }, - [`& .${classes.errorMsg}`]: { - margin: '0.5rem', - }, - [`& .${classes.errorDisabled}`]: { - pointerEvents: 'none', - filter: 'blur(.25rem)', - gridArea: '1 / 1', - opacity: 0.6, - }, - [`& .${classes.overlay}`]: { - gridArea: '1 / 1', - backdropFilter: 'blur(.5rem)', - display: 'flex', - alignItems: 'center', - justifyContent: 'center', - }, - [`&.${classes.container}`]: { - display: 'grid', - }, - [`& .${classes.disableSelect}`]: { - userSelect: 'none', - }, -})); - -export interface ErrorOverlayProps { - errorMsg?: string | null; - children: React.ReactNode | null; - overrideErrorStyle?: string; -} - -export const ErrorOverlay = React.memo((props: ErrorOverlayProps): JSX.Element => { - const { errorMsg, children, overrideErrorStyle } = props; - - return errorMsg ? ( - -
{children}
-
-
- - - - - - - Error - - - - - {errorMsg} - -
-
-
- ) : ( - {children} - ); -}); diff --git a/packages/react-components/lib/header-bar.spec.tsx b/packages/react-components/lib/header-bar.spec.tsx deleted file mode 100644 index 9c7523137..000000000 --- a/packages/react-components/lib/header-bar.spec.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import AccountCircleIcon from '@mui/icons-material/AccountCircle'; -import { IconButton, Tab, Toolbar, Typography } from '@mui/material'; -import { cleanup, render, screen } from '@testing-library/react'; - -import { NavigationBar } from '../lib/navigation-bar'; -import { HeaderBar } from './header-bar'; - -describe('Header Bar', () => { - it('renders correctly', () => { - const mockOnTabChange = vi.fn(); - render( - - - - - - - Powered by Open-RMF - - - - - , - ); - expect(screen.getByText('Building')).toBeTruthy(); - expect(screen.getByText('Robots')).toBeTruthy(); - expect(screen.getByText('Powered by Open-RMF')).toBeTruthy(); - expect(screen.getByLabelText('user-btn')).toBeTruthy(); - cleanup(); - }); -}); diff --git a/packages/react-components/lib/header-bar.stories.tsx b/packages/react-components/lib/header-bar.stories.tsx deleted file mode 100644 index fc3591e50..000000000 --- a/packages/react-components/lib/header-bar.stories.tsx +++ /dev/null @@ -1,124 +0,0 @@ -import AccountCircleIcon from '@mui/icons-material/AccountCircle'; -import TabContext from '@mui/lab/TabContext'; -import TabPanel from '@mui/lab/TabPanel'; -import { IconButton, styled, Toolbar, Typography } from '@mui/material'; -import { Meta, StoryObj } from '@storybook/react'; -import React from 'react'; - -import { HeaderBar } from '../lib/header-bar'; -import { AppBarTab } from './appbar-tab'; -import { LogoButton } from './logo-button'; -import { NavigationBar } from './navigation-bar'; - -export default { - title: 'Header Bar', - component: HeaderBar, -} satisfies Meta; - -type Story = StoryObj; - -export const NavBar: Story = { - render: () => { - const [value, setValue] = React.useState('building'); - - const onTabChange = (_event: React.ChangeEvent, newValue: string) => { - setValue(newValue); - }; - - return ( - <> - - - - - - - - - tab panel data - - - other tab panel data - - - - ); - }, -}; - -export const FullHeaderBar: Story = { - render: () => { - const classes = { - toolbar: 'headerbar-story-toolbar', - avatar: 'headerbar-story-avatar', - logo: 'headerbar-story-logo', - }; - const FullHeaderBarStory = styled('div')(({ theme }) => ({ - [`& .${classes.toolbar}`]: { - textAlign: 'right', - flexGrow: -1, - }, - [`& .${classes.avatar}`]: { - flexGrow: 1, - minWidth: theme.spacing(16), - overflow: 'auto', - }, - [`& .${classes.logo}`]: { - maxWidth: 120, - opacity: 1, - }, - })); - - const [value, setValue] = React.useState('building'); - - const onTabChange = (_event: React.ChangeEvent, newValue: string) => { - setValue(newValue); - }; - - return ( - - - - - - - - - - Powered by Open-RMF - - - - - - - tab panel data - - - other tab panel data - - - - ); - }, -}; diff --git a/packages/react-components/lib/header-bar.tsx b/packages/react-components/lib/header-bar.tsx deleted file mode 100644 index ff754bd0c..000000000 --- a/packages/react-components/lib/header-bar.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { AppBar, AppBarProps, styled } from '@mui/material'; -import clsx from 'clsx'; -import React from 'react'; - -export type HeaderBarProps = React.PropsWithChildren; - -const classes = { - root: 'header-bar-root', -}; -const StyledAppBar = styled((props: HeaderBarProps) => )(() => ({ - [`&.${classes.root}`]: { - display: 'flex', - flexDirection: 'row', - width: '100%', - }, -})); - -export const HeaderBar = ({ - id = 'appbar', - position = 'static', - className, - children, - ...otherProps -}: HeaderBarProps): React.ReactElement => { - return ( - - {children} - - ); -}; diff --git a/packages/react-components/lib/index.ts b/packages/react-components/lib/index.ts deleted file mode 100644 index 700672ac9..000000000 --- a/packages/react-components/lib/index.ts +++ /dev/null @@ -1,36 +0,0 @@ -import '@fontsource/roboto/300.css'; -import '@fontsource/roboto/400.css'; -import '@fontsource/roboto/500.css'; -import '@fontsource/roboto/700.css'; -import '@mui/system'; - -export * from './alert-dialog'; -export * from './appbar-tab'; -export * from './beacons'; -export * from './color-manager'; -export * from './confirmation-dialog'; -export * from './doors'; -export * from './error-overlay'; -export * from './form-inputs'; -export * from './header-bar'; -export * from './lifts'; -export * from './loading'; -export * from './locale'; -export * from './logo-button'; -export * from './map'; -export * from './navigation-bar'; -export * from './place'; -export * from './robots'; -export * from './simple-info'; -export * from './spotlight-accordion'; -export * from './stack-navigator'; -export * from './status-label'; -export * from './svg-text'; -export * from './tasks'; -export * from './themes'; -export * from './tooltip'; -export * from './transfer-list'; -export * from './use-async'; -export * from './utils'; -export * from './window'; -export * from './workcells'; diff --git a/packages/react-components/lib/info-card.stories.tsx b/packages/react-components/lib/info-card.stories.tsx deleted file mode 100644 index 996c6b817..000000000 --- a/packages/react-components/lib/info-card.stories.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import { styled } from '@mui/material'; -import { Meta, StoryObj } from '@storybook/react'; - -import { SimpleInfo } from '../lib'; - -const classes = { - background: 'info-card-root', -}; - -const InfoCardRoot = styled('div')(({ theme }) => ({ - [`&.${classes.background}`]: { - backgroundColor: theme.palette.background.paper, - color: theme.palette.text.primary, - }, -})); - -export default { - title: 'Simple Info', - component: SimpleInfo, - argTypes: { - stringDisplayName: { - name: 'String Display Name', - }, - stringValue: { - name: 'String Value', - }, - numberDisplayName: { - name: 'Number Display Name', - }, - numberValue: { - name: 'Number Value', - }, - }, -} satisfies Meta; - -type Story = StoryObj; - -export const StringData: Story = { - render: (args) => ( - - - - ), -}; - -export const ArrayData: Story = { - render: (args) => ( - - - - ), -}; diff --git a/packages/react-components/lib/lifts/index.ts b/packages/react-components/lib/lifts/index.ts deleted file mode 100644 index 86555bb91..000000000 --- a/packages/react-components/lib/lifts/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from './lift-card'; -export * from './lift-controls'; -export * from './lift-request-dialog'; -export * from './lift-table-datagrid'; -export * from './lift-utils'; diff --git a/packages/react-components/lib/logo-button.spec.tsx b/packages/react-components/lib/logo-button.spec.tsx deleted file mode 100644 index 6e75e0627..000000000 --- a/packages/react-components/lib/logo-button.spec.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { cleanup, fireEvent, render, screen } from '@testing-library/react'; - -import { LogoButton } from './logo-button'; - -describe('LogoButton', () => { - it('renders and is clickable', () => { - const mockOnClick = vi.fn(); - render( - , - ); - expect(screen.getAllByRole('button').length).toBe(1); - expect(screen.getByAltText('logo')).toBeTruthy(); - fireEvent.click(screen.getByRole('button')); - expect(mockOnClick).toHaveBeenCalled(); - cleanup(); - }); -}); diff --git a/packages/react-components/lib/logo-button.stories.tsx b/packages/react-components/lib/logo-button.stories.tsx deleted file mode 100644 index e94bae080..000000000 --- a/packages/react-components/lib/logo-button.stories.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; - -import { LogoButton } from './logo-button'; - -export default { - title: 'Logo Button', - component: LogoButton, -} satisfies Meta; - -type Story = StoryObj; - -export const Default: Story = { - storyName: 'Logo Button', - render: () => , -}; diff --git a/packages/react-components/lib/logo-button.tsx b/packages/react-components/lib/logo-button.tsx deleted file mode 100644 index 061263984..000000000 --- a/packages/react-components/lib/logo-button.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import { ButtonBase, ButtonBaseProps, styled } from '@mui/material'; -import clsx from 'clsx'; - -const classes = { - logoBtn: 'logo-button-root', - logoImg: 'logo-button-image', -}; -const StyledButtonBase = styled((props: ButtonBaseProps) => )( - ({ theme }) => ({ - [`&.${classes.logoBtn}`]: { - padding: `${theme.spacing(1)} ${theme.spacing(2)}`, - boxSizing: 'border-box', - }, - [`& .${classes.logoImg}`]: { - width: '100%', - height: '100%', - }, - }), -); - -export interface LogoButtonProps extends ButtonBaseProps { - src: string; - alt?: string; -} - -export const LogoButton = ({ - src, - alt, - className, - ...otherProps -}: LogoButtonProps): JSX.Element => { - return ( - - {alt} - - ); -}; diff --git a/packages/react-components/lib/map/index.tsx b/packages/react-components/lib/map/index.tsx deleted file mode 100644 index 608ae8b83..000000000 --- a/packages/react-components/lib/map/index.tsx +++ /dev/null @@ -1,10 +0,0 @@ -export * from './circle-shape'; -export * from './cube-maker'; -export * from './door-three-maker'; -export * from './image-maker'; -export * from './lift-three-maker'; -export * from './robot-three-maker'; -export * from './shape-three-rendering'; -export * from './text-maker'; -export * from './utils'; -export * from './wall-maker'; diff --git a/packages/react-components/lib/navigation-bar.spec.tsx b/packages/react-components/lib/navigation-bar.spec.tsx deleted file mode 100644 index 657ac2eb2..000000000 --- a/packages/react-components/lib/navigation-bar.spec.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { Tab } from '@mui/material'; -import { cleanup, render, screen } from '@testing-library/react'; - -import { NavigationBar } from './navigation-bar'; - -describe('Banner Tab', () => { - it('renders correctly', () => { - const mockOnTabChange = vi.fn(); - render( - - - - , - ); - expect(screen.getByText('Building')).toBeTruthy(); - cleanup(); - }); -}); diff --git a/packages/react-components/lib/navigation-bar.tsx b/packages/react-components/lib/navigation-bar.tsx deleted file mode 100644 index 3a41ca26a..000000000 --- a/packages/react-components/lib/navigation-bar.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { styled } from '@mui/material'; -import Tabs, { TabsProps } from '@mui/material/Tabs'; -import React from 'react'; - -const classes = { - tabsContainer: 'navigation-bar-root', -}; -const StyledTabs = styled((props: TabsProps) => )(() => ({ - [`&.${classes.tabsContainer}`]: { - flexGrow: 4, - }, -})); - -export interface NavigationBarProps { - value?: string; - onTabChange?(event: React.ChangeEvent, newValue: unknown): void; - children?: React.ReactNode; -} - -export const NavigationBar = (props: NavigationBarProps): JSX.Element => { - const { value, onTabChange, children } = props; - return ( - - {children} - - ); -}; diff --git a/packages/react-components/lib/react-three-fiber-hack.d.ts b/packages/react-components/lib/react-three-fiber-hack.d.ts deleted file mode 100644 index f0d7d64bc..000000000 --- a/packages/react-components/lib/react-three-fiber-hack.d.ts +++ /dev/null @@ -1,22 +0,0 @@ -// hack to export only the intrinsic elements that we use -import { ThreeElements } from '@react-three/fiber'; - -declare global { - namespace JSX { - interface IntrinsicElements - extends Pick< - ThreeElements, - | 'mesh' - | 'planeGeometry' - | 'meshStandardMaterial' - | 'meshBasicMaterial' - | 'group' - | 'boxGeometry' - | 'shaderMaterial' - | 'instancedMesh' - | 'meshPhysicalMaterial' - | 'pointsMaterial' - | 'points' - > {} - } -} diff --git a/packages/react-components/lib/robots/index.ts b/packages/react-components/lib/robots/index.ts deleted file mode 100644 index e02ff838d..000000000 --- a/packages/react-components/lib/robots/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from './mutex-group-table'; -export * from './robot-info'; -export * from './robot-table-datagrid'; -export * from './utils'; diff --git a/packages/react-components/lib/simple-info.tsx b/packages/react-components/lib/simple-info.tsx deleted file mode 100644 index 562d97d0d..000000000 --- a/packages/react-components/lib/simple-info.tsx +++ /dev/null @@ -1,197 +0,0 @@ -import { styled } from '@mui/material'; -import List from '@mui/material/List'; -import ListItem from '@mui/material/ListItem'; -import Typography from '@mui/material/Typography'; -import clsx from 'clsx'; -import React from 'react'; - -type DataValueTypePrimitive = number | string; -type DataValueTypeArray = DataValueTypePrimitive[]; -type DataValueType = DataValueTypePrimitive | DataValueTypeArray; - -/** - * @param name label of the row - * @param value value of the row - * @param className add and override styles - * @param className.value adds and style to the value - * @param className.overrideValue overrides the style of the value. - * @param className.overrideArrayItemValue overrides the style of the value - * in case the value is an array - * @param disabled adds the disabled style - * @param wrap wraps the context of the text - */ -export interface SimpleInfoData { - name: string; - value: T; - className?: { - value?: T extends DataValueTypeArray ? string | string[] : string; - overrideValue?: string; - overrideArrayItemValue?: string; - }; - disabled?: boolean; - wrap?: boolean; -} - -const classes = { - container: 'simpleinfo-container', - tableRow: 'simpleinfo-table-row', - displayName: 'simpleinfo-display-name', - value: 'simpleinfo-value', - arrayListItem: 'simpleinfo-array-list-item', - arrayItemValue: 'simpleinfo-array-item-value', - disabled: 'simpleinfo-disabled', -}; - -const StyledDiv = styled('div')(({ theme }) => ({ - [`& .${classes.container}`]: { - display: 'table', - borderCollapse: 'collapse', - width: '100%', - overflowX: 'auto', - }, - [`& .${classes.tableRow}`]: { - display: 'table-row', - }, - [`& .${classes.displayName}`]: { - display: 'table-cell', - borderBottom: '1px solid', - borderBottomColor: theme.palette.divider, - borderTop: '1px solid', - borderTopColor: theme.palette.divider, - background: theme.palette.action.hover, - padding: theme.spacing(0.25, 2), - width: '30%', - }, - [`& .${classes.value}`]: { - display: 'table-cell', - textAlign: 'end', - borderBottom: '1px solid', - borderBottomColor: theme.palette.divider, - borderTop: '1px solid', - borderTopColor: theme.palette.divider, - padding: theme.spacing(0.25, 2), - }, - [`& .${classes.arrayListItem}`]: { - justifyContent: 'flex-end', - }, - [`& .${classes.arrayItemValue}`]: { - textAlign: 'end', - }, - [`& .${classes.disabled}`]: { - color: theme.palette.action.disabled, - }, -})); - -export interface SimpleInfoProps - extends React.DetailedHTMLProps, HTMLDivElement> { - infoData: SimpleInfoData[]; - overrideStyle?: { - container?: string; - tableRow?: string; - }; -} - -export const SimpleInfo = (props: SimpleInfoProps): JSX.Element => { - const { infoData, overrideStyle, ...otherProps } = props; - - const renderPrimitive = ({ - name, - value, - className, - disabled, - wrap, - }: SimpleInfoData) => ( - <> - - {name} - - - {value} - - - ); - - const renderArray = ({ - name, - value, - className, - disabled, - }: SimpleInfoData) => { - const arrayItemValueStyle = className?.overrideArrayItemValue - ? className?.overrideArrayItemValue - : classes.arrayItemValue; - const valueStyle = className?.overrideValue ? className?.overrideValue : classes.value; - return ( - <> - - {name} - - - {value.map((item, i) => ( - - - {item} - - - ))} - - - ); - }; - - const renderLine = (data: SimpleInfoData) => { - switch (typeof data.value) { - case 'object': - if (Array.isArray(data.value)) { - return renderArray(data as SimpleInfoData); - } else { - throw Error('nested object is not supported'); - } - break; - case 'function': - case 'symbol': - break; - default: - return renderPrimitive(data as SimpleInfoData); - } - }; - - return ( - -
- {infoData.map((item) => ( - -
- {renderLine(item)} -
-
- ))} -
-
- ); -}; - -export default SimpleInfoProps; diff --git a/packages/react-components/lib/spotlight-accordion.tsx b/packages/react-components/lib/spotlight-accordion.tsx deleted file mode 100644 index 339788cb3..000000000 --- a/packages/react-components/lib/spotlight-accordion.tsx +++ /dev/null @@ -1,95 +0,0 @@ -import { AccordionProps } from '@mui/material'; -import React, { MutableRefObject } from 'react'; - -type ManagedProps = 'onChange' | 'expanded'; - -export interface SpotlightHandle { - spotlight(): void; -} - -export type SpotlightAccordionProps

> = Omit< - P, - ManagedProps ->; - -type OptionalChildren> = Omit & { - children?: T['children']; -}; - -/** - * Given an Accordion component, add support for putting it on "spotlight". This customize the - * component so that it returns a ref with a `spotlight` method. Calling that method will scroll - * the component into view and expand it. - * - * This overrides the `onChange` and `expanded` props so those are removed from the public interface. - * @param BaseAccordion - */ -export function withSpotlight

>( - BaseAccordion: React.ComponentType

, -): React.ForwardRefExoticComponent< - React.PropsWithoutRef> & React.RefAttributes -> { - return React.forwardRef((props: SpotlightAccordionProps

, ref: React.Ref) => { - const [expanded, setExpanded] = React.useState(false); - const innerRef = React.useRef(); - - React.useImperativeHandle(ref, () => { - return { - spotlight: () => { - setExpanded(true); - innerRef.current?.scrollIntoView({ behavior: 'smooth' }); - }, - }; - }); - - return ( - setExpanded(newExpanded)} - {...(props as P)} - > - {props.children} - - ); - }); -} - -export interface SpotlightRef { - ref: React.RefCallback; - spotlight: () => void; -} - -/** - * Allows a spotlight to be called even when the component is not mounted. The spotlight will be - * deferred until the component is mounted. - */ -export function createSpotlightRef(): SpotlightRef { - const ref: MutableRefObject = { - current: null, - }; - const spotlightDefer: MutableRefObject = { - current: false, - }; - - const doSpotlight = () => { - if (ref.current) { - ref.current.spotlight(); - } else { - spotlightDefer.current = true; - } - }; - - const refCb: React.RefCallback = (newRef) => { - if (spotlightDefer.current) { - newRef?.spotlight(); - spotlightDefer.current = false; - } - ref.current = newRef; - }; - - return { ref: refCb, spotlight: doSpotlight }; -} - -export function useSpotlightRef(): React.MutableRefObject { - return React.useRef(createSpotlightRef()); -} diff --git a/packages/react-components/lib/stack-navigator.spec.ts b/packages/react-components/lib/stack-navigator.spec.ts deleted file mode 100644 index b6d545d81..000000000 --- a/packages/react-components/lib/stack-navigator.spec.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { renderHook, RenderHookResult } from '@testing-library/react'; -import { act } from 'react'; - -import { StackNavigatorDispatch, useStackNavigator } from '../lib'; - -describe('useStackNavigator', () => { - let hookResult: RenderHookResult< - ReturnType>, - Parameters> - >['result']; - let stackDispatch: StackNavigatorDispatch; - - beforeEach(() => { - hookResult = renderHook(() => useStackNavigator([0], 0)).result; - stackDispatch = hookResult.current[1]; - }); - - it('push', () => { - act(() => stackDispatch.push(10)); - const stack = hookResult.current; - expect(stack).toHaveLength(2); - expect(stack[0][0]).toBe(0); - expect(stack[0][1]).toBe(10); - }); - - it('pop does not remove last item', () => { - act(() => { - stackDispatch.push(2); - stackDispatch.pop(); - stackDispatch.pop(); - }); - const stack = hookResult.current[0]; - expect(stack).toHaveLength(1); - expect(stack[0]).toBe(0); - }); - - it('reset returns the stack to the initial state', () => { - act(() => { - stackDispatch.push(2); - stackDispatch.push(3); - }); - expect(hookResult.current[0]).toHaveLength(3); - act(() => { - stackDispatch.reset(); - }); - expect(hookResult.current[0]).toHaveLength(1); - expect(hookResult.current[0][0]).toBe(0); - }); - - it('home pushes the home view onto the stack', () => { - act(() => { - stackDispatch.push(2); - stackDispatch.push(3); - }); - expect(hookResult.current[0]).toHaveLength(3); - act(() => { - stackDispatch.home(); - }); - expect(hookResult.current[0]).toHaveLength(4); - expect(hookResult.current[0][0]).toBe(0); - }); -}); diff --git a/packages/react-components/lib/stack-navigator.ts b/packages/react-components/lib/stack-navigator.ts deleted file mode 100644 index e481b62b1..000000000 --- a/packages/react-components/lib/stack-navigator.ts +++ /dev/null @@ -1,45 +0,0 @@ -import React from 'react'; - -export interface StackNavigatorDispatch { - /** - * Push a new view into the stack, this triggers a re-render. - */ - push(view: KeyType): void; - /** - * Remove the top element of the stack, this triggers a re-render. - * If the stack only has one item remaining, this is a no-op. - */ - pop(): void; - /** - * Sets the top of the stack to the home view, this triggers a re-render. - */ - home(): void; - /** - * Resets the state to the initial state, this triggers a re-render. - */ - reset(): void; -} - -/** - * A reducer hook that helps manage a stack of views. - * @param initialState - * @param homeView - */ -export function useStackNavigator( - initialState: KeyType[], - homeView: KeyType, -): [KeyType[], StackNavigatorDispatch] { - const [stack, setStack] = React.useState(initialState); - const dispatch = React.useMemo( - () => ({ - push: (viewId: KeyType) => setStack((prev) => [...prev, viewId]), - pop: () => setStack((prev) => (prev.length > 1 ? prev.slice(0, prev.length - 1) : prev)), - home: () => setStack((prev) => [...prev, homeView]), - reset: () => setStack(initialState), - }), - [homeView, initialState], - ); - return [stack, dispatch]; -} - -export default useStackNavigator; diff --git a/packages/react-components/lib/status-label.spec.tsx b/packages/react-components/lib/status-label.spec.tsx deleted file mode 100644 index 891462405..000000000 --- a/packages/react-components/lib/status-label.spec.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import { render } from '@testing-library/react'; - -import { StatusLabel } from './status-label'; - -describe('variant === unknown', () => { - it('text is "N/A" regardless of the prop', () => { - const root = render(); - expect(root.queryByText('N/A')).toBeTruthy(); - }); - - it('border color is different for unknown variant', () => { - const normal = render(); - const unknown = render(); - const normalColor = window.getComputedStyle(normal.getByTestId('normal')).borderColor; - const unknownColor = window.getComputedStyle(unknown.getByTestId('unknown')).borderColor; - expect(normalColor).not.toBe(unknownColor); - }); -}); diff --git a/packages/react-components/lib/status-label.tsx b/packages/react-components/lib/status-label.tsx deleted file mode 100644 index 1b8d0b8df..000000000 --- a/packages/react-components/lib/status-label.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import { styled, Typography } from '@mui/material'; -import clsx from 'clsx'; - -const classes = { - status: 'status-label-root', - unknown: 'status-label-unknown', -}; -const StyledDiv = styled('div')(({ theme }) => ({ - [`&.${classes.status}`]: { - borderColor: theme.palette.primary.main, - borderRadius: theme.shape.borderRadius, - borderStyle: 'solid', - borderWidth: '2px', - padding: '5px', - width: '4rem', - textAlign: 'center', - flexShrink: 0, - }, - [`&.${classes.unknown}`]: { - borderColor: theme.palette.grey[500], - }, -})); - -export interface StatusLabelProps { - /** - * The text to show on the label. Because the label has a fixed width, the string should not - * have more than 6-9 characters, depending on the font and character width. - */ - text?: string; - className?: string; - - /** - * Defaults to `normal`. - * - * The `unknown` variant should be used when displaying an unknown status. When using the - * `unknown` variant, the `borderColor` css and `text` props are ignored. - */ - variant?: 'normal' | 'unknown'; -} - -export const StatusLabel = (props: StatusLabelProps): JSX.Element => { - const { text = '', className, variant = 'normal', ...otherProps } = props; - return ( - - - {variant === 'unknown' ? 'N/A' : text} - - - ); -}; diff --git a/packages/react-components/lib/svg-text.tsx b/packages/react-components/lib/svg-text.tsx deleted file mode 100644 index e47b1713f..000000000 --- a/packages/react-components/lib/svg-text.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import React from 'react'; - -export interface SvgTextProps extends React.SVGProps { - text: string; - targetWidth: number; -} - -/** - * A wrapper to `` element that attempts to fix text into a given width, ellipsing it if it - * is too long. Unlike the `textLength` attribute, this does not "compress" or "expand" the text. - * @param props - */ -export const SvgText = (props: SvgTextProps): JSX.Element => { - const { text, targetWidth, ...otherProps } = props; - const callbackRef = (textElem: SVGTextElement | null) => { - if (!textElem) { - return; - } - - // svg text does not support auto ellipses, this workaround by testing the text length and - // truncate it bit by bit until it fits the icon. It's a bit hacky but it shouldn't be too bad - // unless the robot name is mega long. - for (textElem.textContent = text; textElem.getComputedTextLength() > targetWidth; ) { - textElem.textContent = textElem.textContent.slice(0, textElem.textContent.length - 6) + '…'; - } - }; - - return ; -}; - -export default SvgText; diff --git a/packages/react-components/lib/tasks/index.ts b/packages/react-components/lib/tasks/index.ts deleted file mode 100644 index 8c767d92e..000000000 --- a/packages/react-components/lib/tasks/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -export * from './booking-label'; -export * from './create-task'; -export * from './task-booking-label-utils'; -export * from './task-info'; -export * from './task-logs'; -export * from './task-schedule-event-edit-delete-popup'; -export * from './task-table'; -export * from './task-table-datagrid'; -export * from './task-timeline'; -export * from './types'; -export * from './utils'; diff --git a/packages/react-components/lib/tasks/task-logs.spec.tsx b/packages/react-components/lib/tasks/task-logs.spec.tsx deleted file mode 100644 index ed66bdf25..000000000 --- a/packages/react-components/lib/tasks/task-logs.spec.tsx +++ /dev/null @@ -1,74 +0,0 @@ -import { render } from '@testing-library/react'; - -import { TaskLogs } from './task-logs'; -import { makeTaskLog } from './test-data.spec'; - -describe('TaskLogs', () => { - it('shows all event logs', () => { - const logs = makeTaskLog('task'); - const root = render( - `Event ${eventId}`} - eventStatus={() => 'completed'} - />, - ); - Object.values(logs.phases!).forEach((p) => { - Object.values(p.events!).forEach((e) => { - e.forEach((l) => { - expect(root.getAllByText(l.text).length).toBeGreaterThan(0); - }); - }); - }); - }); - - it('placeholder is shown when an event has no logs', () => { - const root = render( - 'test_event'} - eventStatus={() => 'completed'} - />, - ); - expect(() => root.getByText('No Logs')).not.toThrow(); - }); - - it('placeholder is shown when there are no events', () => { - const root = render( - 'test_event'} - eventStatus={() => 'completed'} - />, - ); - expect(() => root.getByText('No Event Logs')).not.toThrow(); - }); - - it('placeholder is shown where there are no phases', () => { - const root = render( - 'test_event'} - eventStatus={() => 'completed'} - />, - ); - expect(() => root.getByText('No logs to be shown')).not.toThrow(); - }); -}); diff --git a/packages/react-components/lib/tasks/task-logs.stories.tsx b/packages/react-components/lib/tasks/task-logs.stories.tsx deleted file mode 100644 index 3b7644870..000000000 --- a/packages/react-components/lib/tasks/task-logs.stories.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; - -import { TaskLogs } from './task-logs'; -import { makeTaskLog } from './test-data.spec'; - -export default { - title: 'Tasks/Logs', - component: TaskLogs, -} satisfies Meta; - -type Story = StoryObj; - -export const Logs: Story = { - args: { - taskLog: makeTaskLog('task'), - eventName: (_phaseId, eventId) => `Event ${eventId}`, - eventStatus: () => 'completed', - }, -}; diff --git a/packages/react-components/lib/tasks/task-logs.tsx b/packages/react-components/lib/tasks/task-logs.tsx deleted file mode 100644 index 2a6eba616..000000000 --- a/packages/react-components/lib/tasks/task-logs.tsx +++ /dev/null @@ -1,160 +0,0 @@ -import { Divider, Grid, Paper, PaperProps, styled, Typography, useTheme } from '@mui/material'; -import type { EventStateOutput as EventState, TaskEventLog } from 'api-client'; -import React from 'react'; - -type EventStatus = Required['status']; - -const prefix = 'task-logs'; -const classes = { - root: `${prefix}-root`, -}; - -export interface TaskLogsProps { - taskLog: TaskEventLog; - eventName: (phaseId: string, eventId: string) => string; - eventStatus: (phaseId: string, eventId: string) => EventStatus | undefined; -} - -const StyledPaper = styled((props: PaperProps) => )( - ({ theme }) => ({ - [`&.${classes.root}`]: { - padding: theme.spacing(1), - width: '100%', - flex: '0 0 auto', - maxHeight: '100%', - overflow: 'auto', - }, - }), -); - -export const TaskLogs: React.FC = ({ taskLog, eventName, eventStatus }) => { - const theme = useTheme(); - - function mapEventColor(eventStatus?: EventStatus) { - // TODO(MXG): We should make this color selection consistent with the color - // selection that's done for task states. - if (eventStatus == null) return theme.palette.warning.light; - - switch (eventStatus) { - case 'uninitialized': - case 'blocked': - case 'error': - case 'failed': - return theme.palette.error.dark; - - case 'queued': - case 'standby': - return theme.palette.info.light; - - case 'underway': - return theme.palette.success.light; - - case 'delayed': - return theme.palette.warning.main; - - case 'skipped': - case 'canceled': - case 'killed': - return theme.palette.error.light; - - case 'completed': - return theme.palette.info.light; - - default: - return theme.palette.error.dark; - } - } - - return ( - - - {taskLog.task_id} - - - {taskLog.phases ? ( - Object.entries(taskLog.phases).map(([phaseId, phase]) => ( - - - Phase - {phaseId} - - - - {phase.events ? ( - Object.entries(phase.events).map(([eventId, event]) => { - return ( -

- - {eventName(phaseId, eventId)} - - {event.length > 0 ? ( - event.map((log, idx) => ( - - - - {new Date(log.unix_millis_time).toLocaleString()} - - - - {log.text} - - - )) - ) : ( - - No Logs - - )} -
- ); - }) - ) : ( - - No Event Logs - - )} - - )) - ) : ( -
- - No logs to be shown - -
- )} - - ); -}; diff --git a/packages/react-components/lib/tasks/utils.ts b/packages/react-components/lib/tasks/utils.ts deleted file mode 100644 index 6a7c6ed40..000000000 --- a/packages/react-components/lib/tasks/utils.ts +++ /dev/null @@ -1,236 +0,0 @@ -import type { Priority, TaskRequest, TaskStateOutput as TaskState } from 'api-client'; -import { TaskType as RmfTaskType } from 'rmf-models/ros/rmf_task_msgs/msg'; - -export function taskTypeToStr(taskType: number): string { - switch (taskType) { - case RmfTaskType.TYPE_CHARGE_BATTERY: - return 'Charge'; - case RmfTaskType.TYPE_CLEAN: - return 'Clean'; - case RmfTaskType.TYPE_DELIVERY: - return 'Delivery'; - case RmfTaskType.TYPE_LOOP: - return 'Loop'; - case RmfTaskType.TYPE_PATROL: - return 'Patrol'; - case RmfTaskType.TYPE_STATION: - return 'Station'; - default: - return 'Unknown'; - } -} - -function parsePhaseDetail(phases: TaskState['phases'], category?: string) { - if (phases) { - if (category === 'Loop') { - const startPhase = phases['1']; - const endPhase = phases['2']; - const from = startPhase.category?.split('[place:')[1].split(']')[0]; - const to = endPhase.category?.split('[place:')[1].split(']')[0]; - return { to, from }; - } - } - return {}; -} - -export function parseTaskDetail( - task: TaskState, - category?: string, -): { to: string; from: string } | {} { - if (category?.includes('Loop')) return parsePhaseDetail(task.phases, category); - if (category?.includes('Delivery')) { - const from = category?.split('[place:')[1].split(']')[0]; - const to = category?.split('[place:')[2].split(']')[0]; - return { to, from }; - } else { - return {}; - } -} - -export function parseCategory(state?: TaskState, request?: TaskRequest): string { - if (request && request.category.toLowerCase() === 'patrol') { - return 'Patrol'; - } - - const supportedDeliveries = [ - 'delivery_pickup', - 'delivery_sequential_lot_pickup', - 'delivery_area_pickup', - ]; - if ( - request && - request.description['category'] && - supportedDeliveries.includes(request.description['category']) - ) { - return request.description['category']; - } - - if (state && state.category) { - return state.category; - } - return 'n/a'; -} - -export function parsePickup(request?: TaskRequest): string { - if (request === undefined || request.category.toLowerCase() === 'patrol') { - return 'n/a'; - } - - // custom deliveries - const supportedDeliveries = [ - 'delivery_pickup', - 'delivery_sequential_lot_pickup', - 'delivery_area_pickup', - ]; - if ( - !request.description['category'] || - !supportedDeliveries.includes(request.description['category']) - ) { - return 'n/a'; - } - - // TODO(ac): use schemas - try { - const deliveryType: string = request.description['category']; - const perform_action_description = - request.description['phases'][0]['activity']['description']['activities'][1]['description'][ - 'description' - ]; - - switch (deliveryType) { - case 'delivery_pickup': { - const pickup_lot: string = perform_action_description['pickup_lot']; - return pickup_lot; - } - case 'delivery_sequential_lot_pickup': - case 'delivery_area_pickup': { - const pickup_zone: string = perform_action_description['pickup_zone']; - return pickup_zone; - } - default: - return 'n/a'; - } - } catch (e) { - console.error(`Failed to parse pickup lot/zone from task request: ${(e as Error).message}`); - } - - return 'n/a'; -} - -export function parseCartId(request?: TaskRequest): string { - if (request === undefined || request.category.toLowerCase() === 'patrol') { - return 'n/a'; - } - - // custom deliveries - const supportedDeliveries = [ - 'delivery_pickup', - 'delivery_sequential_lot_pickup', - 'delivery_area_pickup', - ]; - if ( - !request.description['category'] || - !supportedDeliveries.includes(request.description['category']) - ) { - return 'n/a'; - } - - // TODO(ac): use schemas - try { - const perform_action_description = - request.description['phases'][0]['activity']['description']['activities'][1]['description'][ - 'description' - ]; - const cartId: string = perform_action_description['cart_id']; - return cartId; - } catch (e) { - console.error(`Failed to parse cart ID from task request: ${(e as Error).message}`); - } - - return 'n/a'; -} - -export function parseDestination(state?: TaskState, request?: TaskRequest): string { - if (!state && !request) { - return 'n/a'; - } - - // patrol - if ( - request && - request.category.toLowerCase() === 'patrol' && - request.description['places'] !== undefined && - request.description['places'].length > 0 - ) { - return request.description['places'].at(-1); - } - - // custom deliveries - const supportedDeliveries = [ - 'delivery_pickup', - 'delivery_sequential_lot_pickup', - 'delivery_area_pickup', - ]; - if ( - !request || - !request.description['category'] || - !supportedDeliveries.includes((request.description['category'] as string).toLowerCase()) - ) { - return 'n/a'; - } - - // TODO(ac): use schemas - try { - const destination = - request.description['phases'][1]['activity']['description']['activities'][0]['description']; - return destination; - } catch (e) { - console.error(`Failed to parse destination from task request: ${(e as Error).message}`); - } - - // automated tasks that can only be parsed with state - if (state && state.category && state.category === 'Charge Battery') { - try { - const charge_phase = state['phases'] ? state['phases']['1'] : undefined; - const charge_events = charge_phase ? charge_phase.events : undefined; - const charge_event_name = charge_events ? charge_events['1'].name : undefined; - if (charge_event_name === undefined) { - console.error('Unable to parse charging event name.'); - return 'n/a'; - } - - const charging_place = charge_event_name?.split('[place:')[1].split(']')[0]; - if (!charging_place) { - throw Error('Cannot find charging place'); - } - return charging_place; - } catch (e) { - console.error(`Failed to parse charging point from task state: ${(e as Error).message}`); - } - } - - return 'n/a'; -} - -export function createTaskPriority(prioritize: boolean): Priority { - return { type: 'binary', value: prioritize ? 1 : 0 }; -} - -// FIXME(ac): This method of parsing is crude, and will be fixed using schemas -// when we migrate to jsonforms. -export function parseTaskPriority(priority: Priority | null | undefined): boolean { - if (!priority) { - return false; - } - - if ( - typeof priority == 'object' && - 'type' in priority && - priority['type'] === 'binary' && - 'value' in priority && - typeof priority['value'] == 'number' - ) { - return (priority['value'] as number) > 0; - } - return false; -} diff --git a/packages/react-components/lib/test/locale.tsx b/packages/react-components/lib/test/locale.tsx deleted file mode 100644 index a1b5cc093..000000000 --- a/packages/react-components/lib/test/locale.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns'; -import { LocalizationProvider as MuiLocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider'; -import React from 'react'; - -export const TestLocalizationProvider: React.FC = ({ children }) => { - return {children}; -}; diff --git a/packages/react-components/lib/themes/common-theme.tsx b/packages/react-components/lib/themes/common-theme.tsx deleted file mode 100644 index c13ebe963..000000000 --- a/packages/react-components/lib/themes/common-theme.tsx +++ /dev/null @@ -1,35 +0,0 @@ -const commonTheme = { - secondary: { - // Smitten, Cyclamen, Pansy Purple - main: '#BC477B', - light: '#F178AA', - dark: '#880E4F', - }, - success: { - // Apple Green, Inchworm, Avocado - main: '#7FB800', - light: '#B3EB49', - dark: '#6dff6f', - }, - error: { - // Radical Red, Salmon Pink, Red NCS - main: '#EF5264', - light: '#FF8591', - dark: '#B7153A', - }, - warning: { - // Honey Yellow, Minion Yellow, Harvest Gold - main: '#FFB400', - light: '#FFE64C', - dark: '#C68500', - }, - info: { - // Sky Blue Crayola, Electric Blue, Viridian Green - // used in admin/information/indicators - main: '#64D4EE', - light: '#64E9EE', - dark: '#009FAF', - }, -}; - -export default commonTheme; diff --git a/packages/react-components/lib/themes/index.ts b/packages/react-components/lib/themes/index.ts deleted file mode 100644 index 18c537c26..000000000 --- a/packages/react-components/lib/themes/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './rmf-dark'; -export * from './rmf-light'; diff --git a/packages/react-components/lib/themes/rmf-dark.tsx b/packages/react-components/lib/themes/rmf-dark.tsx deleted file mode 100644 index ff7736e0e..000000000 --- a/packages/react-components/lib/themes/rmf-dark.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import { createTheme } from '@mui/material/styles'; - -import commonTheme from './common-theme'; - -const base = createTheme({ - palette: { - mode: 'dark', - ...commonTheme, - primary: { - //Charcoal, Rich Black Fogra 29, Cadet - main: '#37474F', - dark: '#102027', - light: '#62727B', - }, - background: { - //Rich Black Fogra 29, Cadet - default: '#102027', - paper: '#62727B', - }, - }, -}); - -export const rmfDark = createTheme( - { - components: { - MuiTableCell: { - styleOverrides: { - stickyHeader: { - backgroundColor: base.palette.primary.main, - }, - }, - }, - }, - }, - base, -); diff --git a/packages/react-components/lib/themes/rmf-light.tsx b/packages/react-components/lib/themes/rmf-light.tsx deleted file mode 100644 index 24089833f..000000000 --- a/packages/react-components/lib/themes/rmf-light.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { createTheme } from '@mui/material/styles'; - -import commonTheme from './common-theme'; - -export const base = createTheme({ - //Light Grey, Cultured, Silver Sand - palette: { - ...commonTheme, - mode: 'light', - primary: { - main: '#1FD8DC ', - light: '#ECEFF1', - dark: '#B0BEC5', - }, - background: { - //Cultured, White - default: '#EEEEEE', - paper: '#FFFFFF', - }, - }, -}); - -export const rmfLight = createTheme({ - ...base, - components: { - MuiTableCell: { - styleOverrides: { - stickyHeader: { - backgroundColor: base.palette.primary.main, - }, - }, - }, - }, -}); diff --git a/packages/react-components/lib/tooltip.spec.tsx b/packages/react-components/lib/tooltip.spec.tsx deleted file mode 100644 index e85424aa2..000000000 --- a/packages/react-components/lib/tooltip.spec.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { Typography } from '@mui/material'; -import { fireEvent, render, screen } from '@testing-library/react'; - -import Tooltip from './tooltip'; - -describe('Tooltip', () => { - it('renders the tooltip', () => { - render( - - Tooltip is enabled - , - ); - - fireEvent.mouseEnter(screen.getByRole('heading')); - - expect(screen.getByTestId('test-tooltip')).toBeTruthy(); - }); - - it('does not render the tooltip when disabled', () => { - render( - - Tooltip is disabled - , - ); - - fireEvent.mouseEnter(screen.getByRole('heading')); - - expect(screen.queryByTestId('test-tooltip')).toBeNull(); - }); -}); diff --git a/packages/react-components/lib/tooltip.stories.tsx b/packages/react-components/lib/tooltip.stories.tsx deleted file mode 100644 index e8b721cf2..000000000 --- a/packages/react-components/lib/tooltip.stories.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { Typography } from '@mui/material'; -import { Meta, StoryObj } from '@storybook/react'; - -import { Tooltip } from './tooltip'; - -export default { - title: 'Tooltip', - component: Tooltip, -} satisfies Meta; - -type Story = StoryObj; - -export const SimpleTooltip: Story = { - args: { - title: 'This is a tooltip', - }, - render: (args) => ( - - Hover over me - - ), -}; diff --git a/packages/react-components/lib/tooltip.tsx b/packages/react-components/lib/tooltip.tsx deleted file mode 100644 index 4f9035f08..000000000 --- a/packages/react-components/lib/tooltip.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import { styled, Tooltip as MuiTooltip } from '@mui/material'; - -export interface TooltipProps { - title: string; - id: string; - enabled: boolean; //this prop allows you to enabled / disable the use of tooltips - children: JSX.Element; -} - -const classes = { - tooltipWidth: 'tooltip-width', -}; -const StyledDiv = styled('div')(() => ({ - [`& .${classes.tooltipWidth}`]: { - maxWidth: 200, - }, -})); - -export const Tooltip = (props: TooltipProps): JSX.Element => { - const { title, id, enabled } = props; - return ( - - {enabled && ( - - {props.children} - - )} - {!enabled && props.children} - - ); -}; - -export default Tooltip; diff --git a/packages/react-components/lib/ts-utils.ts b/packages/react-components/lib/ts-utils.ts deleted file mode 100644 index c0e740898..000000000 --- a/packages/react-components/lib/ts-utils.ts +++ /dev/null @@ -1,34 +0,0 @@ -// This is unused now but could be useful in the future. The `defaultProps` is the preferred way -// to specify default properties for class components, while it does work for functional components, -// it does not work for forwardRef functional components. (Technically it works but the typescript -// support does not give the correct types.) -/** - * Extracts the optional props that should be defined in a component's `defaultProps` property. - * - * This extracts all the optional properties of a given type and make them required. - */ -export type DefaultPropsType = { - [K2 in Exclude< - /** - * if `T extends Record>`, it means T[K] is NOT a optional property, - * this works because T[K] returns the type disregarding the optional identifier. - * - * For example, given - * interface Foo { - * bar?: string; - * }, - * T[K] would result in `string` and NOT `string | undefined`; - * - * Because T[K] takes the type specified, `T extends Record` (note: without - * the `Exclude`), given - * interface Foo { - * bar: string | undefined; - * } - * It will return `string | undefined` and `T extends Record` would return - * TRUE even though `bar` is technically optional. - * So we need to extra `Exclude` to take this situation into account. - */ - { [K in keyof T]: T extends Record> ? never : K }[keyof T], - undefined - >]: T[K2]; -}; diff --git a/packages/react-components/lib/utils/index.ts b/packages/react-components/lib/utils/index.ts deleted file mode 100644 index 53a6e970e..000000000 --- a/packages/react-components/lib/utils/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './geometry'; -export * from './item-table'; -export * from './misc'; diff --git a/packages/react-components/package.json b/packages/react-components/package.json deleted file mode 100644 index 8cdc7204b..000000000 --- a/packages/react-components/package.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "name": "react-components", - "version": "0.1.0", - "description": "Reusable react components for building Open-RMF frontends", - "type": "module", - "main": "lib/index.ts", - "scripts": { - "lint": "tsc --build && eslint --max-warnings 0 lib", - "prepack": "pnpm run lint && vitest --run", - "start": "storybook dev -p 6006", - "test": "vitest", - "test:coverage": "vitest --coverage" - }, - "author": "koonpeng@openrobotics.org", - "license": "Apache-2.0", - "dependencies": { - "@date-io/core": "^3.0.0", - "@date-io/date-fns": "^2.17.0", - "@emotion/react": "^11.13.0", - "@emotion/styled": "^11.13.0", - "@mui/icons-material": "^5.8.3", - "@mui/lab": "5.0.0-alpha.172", - "@mui/material": "^5.8.3", - "@mui/system": "^5.8.3", - "@mui/x-data-grid": "^5.12.1", - "@mui/x-date-pickers": "^6.19.0", - "@react-three/drei": "^9.103.0", - "@react-three/fiber": "^8.16.1", - "@types/crc": "^3.4.0", - "@types/rbush": "^3.0.0", - "@types/react-grid-layout": "^1.3.2", - "@types/shallowequal": "^1.1.1", - "@types/three": "^0.166.0", - "api-client": "workspace:*", - "clsx": "^1.1.1", - "crc": "^3.8.0", - "date-fns": "^2.30.0", - "debug": "^4.2.0", - "eventemitter3": "^4.0.7", - "node-vibrant": "^3.1.6", - "rbush": "^3.0.1", - "react": "^18.2.0", - "react-customizable-progressbar": "^1.2.0", - "react-dom": "^18.2.0", - "react-grid-layout": "^1.3.4", - "react-router": "^6.14.1", - "react-router-dom": "^6.14.1", - "react-virtualized-auto-sizer": "^1.0.24", - "react-window": "^1.8.6", - "rmf-models": "workspace:*", - "shallowequal": "^1.1.0", - "three": "^0.166.1" - }, - "devDependencies": { - "@fontsource/roboto": "^4.3.0", - "@jsdevtools/coverage-istanbul-loader": "^3.0.5", - "@storybook/addon-essentials": "^8.2.6", - "@storybook/addon-interactions": "^8.2.6", - "@storybook/addon-links": "^8.2.6", - "@storybook/addon-onboarding": "^8.2.6", - "@storybook/blocks": "^8.2.6", - "@storybook/react": "^8.2.6", - "@storybook/react-vite": "^8.2.6", - "@storybook/test": "^8.2.6", - "@testing-library/dom": "^9.3.4", - "@testing-library/react": "^14.2.2", - "@testing-library/user-event": "^14.5.2", - "@types/debug": "^4.1.5", - "@types/react": "^18.2.14", - "@types/react-dom": "^18.2.6", - "@types/react-grid-layout": "^1.3.2", - "@types/react-virtualized-auto-sizer": "^1.0.1", - "@types/react-window": "^1.8.5", - "@vitest/coverage-v8": "^2.0.4", - "concurrently": "^8.2.2", - "eslint": "^8.57.0", - "eslint-plugin-react": "^7.35.0", - "eslint-plugin-react-hooks": "^4.6.2", - "file-loader": "^6.2.0", - "identity-obj-proxy": "^3.0.0", - "jsdom": "^24.1.1", - "process": "0.11.10", - "puppeteer": "*", - "require-from-string": "^2.0.2", - "storybook": "^8.2.6", - "typescript": "~5.5.4", - "typescript-eslint": "^7.5.0", - "vitest": "^2.0.4" - } -} diff --git a/packages/react-components/tsconfig.json b/packages/react-components/tsconfig.json deleted file mode 100644 index d008603f3..000000000 --- a/packages/react-components/tsconfig.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "compilerOptions": { - "composite": true, - "target": "ES2020", - "useDefineForClassFields": true, - "lib": ["ES2020", "DOM", "DOM.Iterable"], - "types": ["vitest/globals"], - "module": "ESNext", - "skipLibCheck": true, - - /* Bundler mode */ - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "resolveJsonModule": true, - "isolatedModules": true, - "moduleDetection": "force", - "noEmit": true, - "jsx": "react-jsx", - - /* Linting */ - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true - }, - "include": ["lib/"] -} diff --git a/packages/react-components/vite.config.ts b/packages/react-components/vite.config.ts deleted file mode 100644 index c43805ee1..000000000 --- a/packages/react-components/vite.config.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { defineConfig } from 'vitest/config'; - -export default defineConfig({ - test: { globals: true, environment: 'jsdom', passWithNoTests: true }, -}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9568a5a43..58000d7fb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -107,12 +107,18 @@ importers: '@mui/icons-material': specifier: ^5.8.3 version: 5.16.1(@mui/material@5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) + '@mui/lab': + specifier: 5.0.0-alpha.172 + version: 5.0.0-alpha.172(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@mui/material@5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.8.3 version: 5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/system': specifier: ^5.8.3 version: 5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) + '@mui/x-data-grid': + specifier: ^5.12.1 + version: 5.17.26(@mui/material@5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mui/system@5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/x-date-pickers': specifier: ^6.19.0 version: 6.19.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@mui/material@5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mui/system@5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(date-fns@2.30.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -122,6 +128,9 @@ importers: '@react-three/fiber': specifier: ^8.16.1 version: 8.16.8(patch_hash=72hazlorpk2kzn3denlucgiftu)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(three@0.166.1) + '@types/crc': + specifier: ^3.4.0 + version: 3.8.3 '@types/debug': specifier: ^4.1.5 version: 4.1.12 @@ -134,6 +143,15 @@ importers: '@types/react-grid-layout': specifier: ^1.3.2 version: 1.3.5 + '@types/react-virtualized-auto-sizer': + specifier: ^1.0.1 + version: 1.0.4 + '@types/react-window': + specifier: ^1.8.5 + version: 1.8.8 + '@types/shallowequal': + specifier: ^1.1.1 + version: 1.1.5 '@types/three': specifier: ^0.166.0 version: 0.166.0 @@ -146,6 +164,12 @@ importers: canvas: specifier: ^2.11.2 version: 2.11.2 + clsx: + specifier: ^1.1.1 + version: 1.2.1 + crc: + specifier: ^3.8.0 + version: 3.8.0 date-fns: specifier: ^2.30.0 version: 2.30.0 @@ -158,12 +182,15 @@ importers: keycloak-js: specifier: ^25.0.2 version: 25.0.2 + node-vibrant: + specifier: ^3.1.6 + version: 3.1.6(debug@4.3.5) react: specifier: ^18.2.0 version: 18.3.1 - react-components: - specifier: workspace:* - version: link:../react-components + react-customizable-progressbar: + specifier: ^1.2.0 + version: 1.2.0(react@18.3.1) react-dom: specifier: ^18.2.0 version: 18.3.1(react@18.3.1) @@ -179,12 +206,21 @@ importers: react-router-dom: specifier: ^6.14.1 version: 6.24.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-virtualized-auto-sizer: + specifier: ^1.0.24 + version: 1.0.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-window: + specifier: ^1.8.6 + version: 1.8.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rmf-models: specifier: workspace:* version: link:../rmf-models/dist rxjs: specifier: ^7.5.5 version: 7.8.1 + shallowequal: + specifier: ^1.1.0 + version: 1.1.0 three: specifier: ^0.166.1 version: 0.166.1 @@ -210,6 +246,9 @@ importers: '@storybook/react': specifier: ^8.0.5 version: 8.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(typescript@5.5.4) + '@storybook/react-vite': + specifier: ^8.2.6 + version: 8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.19.0)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(typescript@5.5.4)(vite@5.3.5(@types/node@20.14.12)(terser@5.31.6)) '@storybook/test': specifier: ^8.0.5 version: 8.2.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.14.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@20.14.12)(typescript@5.5.4)))(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(vitest@2.0.4(@types/node@20.14.12)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6)) @@ -298,217 +337,6 @@ importers: specifier: ~5.5.4 version: 5.5.4 - packages/react-components: - dependencies: - '@date-io/core': - specifier: ^3.0.0 - version: 3.0.0 - '@date-io/date-fns': - specifier: ^2.17.0 - version: 2.17.0(date-fns@2.30.0) - '@emotion/react': - specifier: ^11.13.0 - version: 11.13.0(@types/react@18.3.3)(react@18.3.1) - '@emotion/styled': - specifier: ^11.13.0 - version: 11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) - '@mui/icons-material': - specifier: ^5.8.3 - version: 5.16.1(@mui/material@5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) - '@mui/lab': - specifier: 5.0.0-alpha.172 - version: 5.0.0-alpha.172(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@mui/material@5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mui/material': - specifier: ^5.8.3 - version: 5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mui/system': - specifier: ^5.8.3 - version: 5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) - '@mui/x-data-grid': - specifier: ^5.12.1 - version: 5.17.26(@mui/material@5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mui/system@5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mui/x-date-pickers': - specifier: ^6.19.0 - version: 6.19.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@mui/material@5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mui/system@5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(date-fns@2.30.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-three/drei': - specifier: ^9.103.0 - version: 9.108.3(@react-three/fiber@8.16.8(patch_hash=72hazlorpk2kzn3denlucgiftu)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(three@0.166.1))(@types/react@18.3.3)(@types/three@0.166.0)(immer@9.0.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(three@0.166.1) - '@react-three/fiber': - specifier: ^8.16.1 - version: 8.16.8(patch_hash=72hazlorpk2kzn3denlucgiftu)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(three@0.166.1) - '@types/crc': - specifier: ^3.4.0 - version: 3.8.3 - '@types/rbush': - specifier: ^3.0.0 - version: 3.0.3 - '@types/react-grid-layout': - specifier: ^1.3.2 - version: 1.3.5 - '@types/shallowequal': - specifier: ^1.1.1 - version: 1.1.5 - '@types/three': - specifier: ^0.166.0 - version: 0.166.0 - api-client: - specifier: workspace:* - version: link:../api-client - clsx: - specifier: ^1.1.1 - version: 1.2.1 - crc: - specifier: ^3.8.0 - version: 3.8.0 - date-fns: - specifier: ^2.30.0 - version: 2.30.0 - debug: - specifier: ^4.2.0 - version: 4.3.5 - eventemitter3: - specifier: ^4.0.7 - version: 4.0.7 - node-vibrant: - specifier: ^3.1.6 - version: 3.1.6(debug@4.3.5) - rbush: - specifier: ^3.0.1 - version: 3.0.1 - react: - specifier: ^18.2.0 - version: 18.3.1 - react-customizable-progressbar: - specifier: ^1.2.0 - version: 1.2.0(react@18.3.1) - react-dom: - specifier: ^18.2.0 - version: 18.3.1(react@18.3.1) - react-grid-layout: - specifier: ^1.3.4 - version: 1.4.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-router: - specifier: ^6.14.1 - version: 6.24.1(react@18.3.1) - react-router-dom: - specifier: ^6.14.1 - version: 6.24.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-virtualized-auto-sizer: - specifier: ^1.0.24 - version: 1.0.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-window: - specifier: ^1.8.6 - version: 1.8.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rmf-models: - specifier: workspace:* - version: link:../rmf-models/dist - shallowequal: - specifier: ^1.1.0 - version: 1.1.0 - three: - specifier: ^0.166.1 - version: 0.166.1 - devDependencies: - '@fontsource/roboto': - specifier: ^4.3.0 - version: 4.5.8 - '@jsdevtools/coverage-istanbul-loader': - specifier: ^3.0.5 - version: 3.0.5 - '@storybook/addon-essentials': - specifier: ^8.2.6 - version: 8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/addon-interactions': - specifier: ^8.2.6 - version: 8.2.6(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)))(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(vitest@2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6)) - '@storybook/addon-links': - specifier: ^8.2.6 - version: 8.2.6(react@18.3.1)(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/addon-onboarding': - specifier: ^8.2.6 - version: 8.2.6(react@18.3.1)(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/blocks': - specifier: ^8.2.6 - version: 8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/react': - specifier: ^8.2.6 - version: 8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(typescript@5.5.4) - '@storybook/react-vite': - specifier: ^8.2.6 - version: 8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.19.0)(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(typescript@5.5.4)(vite@5.3.5(@types/node@22.2.0)(terser@5.31.6)) - '@storybook/test': - specifier: ^8.2.6 - version: 8.2.6(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)))(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(vitest@2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6)) - '@testing-library/dom': - specifier: ^9.3.4 - version: 9.3.4 - '@testing-library/react': - specifier: ^14.2.2 - version: 14.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@testing-library/user-event': - specifier: ^14.5.2 - version: 14.5.2(@testing-library/dom@9.3.4) - '@types/debug': - specifier: ^4.1.5 - version: 4.1.12 - '@types/react': - specifier: ^18.2.14 - version: 18.3.3 - '@types/react-dom': - specifier: ^18.2.6 - version: 18.3.0 - '@types/react-virtualized-auto-sizer': - specifier: ^1.0.1 - version: 1.0.4 - '@types/react-window': - specifier: ^1.8.5 - version: 1.8.8 - '@vitest/coverage-v8': - specifier: ^2.0.4 - version: 2.0.4(vitest@2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6)) - concurrently: - specifier: ^8.2.2 - version: 8.2.2 - eslint: - specifier: ^8.57.0 - version: 8.57.0 - eslint-plugin-react: - specifier: ^7.35.0 - version: 7.35.0(eslint@8.57.0) - eslint-plugin-react-hooks: - specifier: ^4.6.2 - version: 4.6.2(eslint@8.57.0) - file-loader: - specifier: ^6.2.0 - version: 6.2.0(webpack@5.93.0(@swc/core@1.5.7)(esbuild@0.21.5)) - identity-obj-proxy: - specifier: ^3.0.0 - version: 3.0.0 - jsdom: - specifier: ^24.1.1 - version: 24.1.1(canvas@2.11.2) - process: - specifier: 0.11.10 - version: 0.11.10 - puppeteer: - specifier: '*' - version: 22.13.0(typescript@5.5.4) - require-from-string: - specifier: ^2.0.2 - version: 2.0.2 - storybook: - specifier: ^8.2.6 - version: 8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)) - typescript: - specifier: ~5.5.4 - version: 5.5.4 - typescript-eslint: - specifier: ^7.5.0 - version: 7.16.0(eslint@8.57.0)(typescript@5.5.4) - vitest: - specifier: ^2.0.4 - version: 2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6) - packages/rmf-models: devDependencies: ts-node: @@ -1247,20 +1075,6 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - '@date-io/core@2.17.0': - resolution: {integrity: sha512-+EQE8xZhRM/hsY0CDTVyayMDDY5ihc4MqXCrPxooKw19yAzUIC6uUqsZeaOFNL9YKTNxYKrJP5DFgE8o5xRCOw==} - - '@date-io/core@3.0.0': - resolution: {integrity: sha512-S3j+IAQVBYNkQzchVVhX40eBkGDreBpScy9RXwTS5j2+k07+62pMVPisQ44Gq76Rqy5AOG/EZXCwBpY/jbemvA==} - - '@date-io/date-fns@2.17.0': - resolution: {integrity: sha512-L0hWZ/mTpy3Gx/xXJ5tq5CzHo0L7ry6KEO9/w/JWiFWFLZgiNVo3ex92gOl3zmzjHqY/3Ev+5sehAr8UnGLEng==} - peerDependencies: - date-fns: ^2.0.0 - peerDependenciesMeta: - date-fns: - optional: true - '@emotion/babel-plugin@11.12.0': resolution: {integrity: sha512-y2WQb+oP8Jqvvclh8Q55gLUyb7UFvgv7eJfsj7td5TToBrIUtPay2kMrZi4xjq9qw2vD0ZR5fSho0yqoFgX7Rw==} @@ -1681,9 +1495,6 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@jsdevtools/coverage-istanbul-loader@3.0.5': - resolution: {integrity: sha512-EUCPEkaRPvmHjWAAZkWMT7JDzpw7FKB00WTISaiXsbNOd5hCHg77XLA8sLYLFDo1zepYLo2w7GstN8YBqRXZfA==} - '@lukeed/csprng@1.1.0': resolution: {integrity: sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==} engines: {node: '>=8'} @@ -1945,11 +1756,6 @@ packages: '@popperjs/core@2.11.8': resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} - '@puppeteer/browsers@2.2.3': - resolution: {integrity: sha512-bJ0UBsk0ESOs6RFcLXOt99a3yTDcOKlzfjad+rhFwdaG1Lu/Wzq58GHYCDTlZ9z6mldf4g+NTb+TXEfe0PpnsQ==} - engines: {node: '>=18'} - hasBin: true - '@react-spring/animated@9.6.1': resolution: {integrity: sha512-ls/rJBrAqiAYozjLo5EPPLLOb1LM0lNVQcXODTC1SMtS6DbuBCPaKco5svFUQFMP2dso3O+qcC4k9FsKc0KxMQ==} peerDependencies: @@ -2135,71 +1941,36 @@ packages: peerDependencies: storybook: ^8.2.2 - '@storybook/addon-actions@8.2.6': - resolution: {integrity: sha512-iCsf3V28/jJ95w2zd8aSvR4denoA2UYV3fpNCTGOURqICyKOG3cyVxvqKp8Hhcwn7trNOsK+HlL6q5gpv56ViA==} - peerDependencies: - storybook: ^8.2.6 - '@storybook/addon-backgrounds@8.2.2': resolution: {integrity: sha512-m/xJe7uKL+kfJx7pQcHwAeIvJ3tdLIpDGrMAVDNDJHcAxfe44cFjIInaV/1HKf3y5Awap+DZFW66ekkxuI9zzA==} peerDependencies: storybook: ^8.2.2 - '@storybook/addon-backgrounds@8.2.6': - resolution: {integrity: sha512-61NFowA6EmCw+Eyzp0U4fat9MlPDdnT7aoDyzqSImLwWLITY9IvmWuTeo7XKJZN3fe22z1r7cZseKdYrtaHcKw==} - peerDependencies: - storybook: ^8.2.6 - '@storybook/addon-controls@8.2.2': resolution: {integrity: sha512-y241aOANGzT5XBADUIvALwG/xF5eC6UItzmWJaFvOzSBCq74GIA0+Hu9atyFdvFQbXOrdvPWC4jR+9iuBFRxAA==} peerDependencies: storybook: ^8.2.2 - '@storybook/addon-controls@8.2.6': - resolution: {integrity: sha512-EHUwHy+oZZv3pXzN7fuXWrS/meHFjqcELY3RBvOyEkGf21agl6co6R1tnf6d5N5QoYAGfIbDO7dkauSL2RfNAw==} - peerDependencies: - storybook: ^8.2.6 - '@storybook/addon-docs@8.2.2': resolution: {integrity: sha512-qk/yjAR9RpsSrKLLbeCgb6u58c8TmYqyJSnXgbAozZZNKHBWlIpvZ/hTNYud8qo0coPlxnLdjnZf32TykWGlAg==} peerDependencies: storybook: ^8.2.2 - '@storybook/addon-docs@8.2.6': - resolution: {integrity: sha512-qe7hxntaezqjKdU9QS+Q9NFL6i/uNdBxdvOnCKgPhBAY/zY6yhk5t3sOvonynPK5nkaNAowfSNPIzNxAXlJ1sA==} - peerDependencies: - storybook: ^8.2.6 - '@storybook/addon-essentials@8.2.2': resolution: {integrity: sha512-yN//BFMbSvNV0+Sll2hcKmgJX06TUKQDm6pZimUjkXczFtOmK7K/UdDmKjWS+qjhfJdWpxdRoEpxoHvvRmNfsA==} peerDependencies: storybook: ^8.2.2 - '@storybook/addon-essentials@8.2.6': - resolution: {integrity: sha512-diGjGZcZNov+RCAVQBTm8JKP2kUtMRuJIQFBeXdPWpu6hYBk6lw1FlAf2GywWGCvdny1pJT90hfoD33qUMNuDg==} - peerDependencies: - storybook: ^8.2.6 - '@storybook/addon-highlight@8.2.2': resolution: {integrity: sha512-yDTRzzL+IJAymgY32xoZl09BGBVmPOUV2wVNGYcZkkBLvz2GSQMTfUe1/7F4jAx//+rFBu48/MQzsTC7Bk8kPw==} peerDependencies: storybook: ^8.2.2 - '@storybook/addon-highlight@8.2.6': - resolution: {integrity: sha512-03cV9USsfP3bS4wYV06DYcIaGPfoheQe53Q0Jr1B2yJUVyIPKvmO2nGjLBsqzeL3Wl7vSfLQn0/dUdxCcbqLsw==} - peerDependencies: - storybook: ^8.2.6 - '@storybook/addon-interactions@8.2.2': resolution: {integrity: sha512-zRRuUwm/l41JtTUgjIoQTUgLT99Hsdz9cqKca/8NYo1MGBdEcKE41DH4aBIzKaOKFu7p9q00/o/X1EqYX4LMUA==} peerDependencies: storybook: ^8.2.2 - '@storybook/addon-interactions@8.2.6': - resolution: {integrity: sha512-YXpHf8jWPz9HJV+Fw4GaunaCWeE6uqF24aLXdAd8xuhN1UfWJeNV6AwAvFQ0hTLqvmz0yMhX/5JXDKeKESoYDA==} - peerDependencies: - storybook: ^8.2.6 - '@storybook/addon-links@8.2.2': resolution: {integrity: sha512-eGh7O7SgTJMtnuXC0HlRPOegu1njcJS2cnVqjbzjvjxsPSBhbHpdYMi9Q9E7al/FKuqMUOjIR9YLIlmK1AJaqA==} peerDependencies: @@ -2209,65 +1980,31 @@ packages: react: optional: true - '@storybook/addon-links@8.2.6': - resolution: {integrity: sha512-CUuU3nk8wyZ3bljCmOG/OCKazan+bPuNbCph8N763zyzdEx5M/CbBxV9d3pi3zjYpix7txlqrl2/YdMCejfyFw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.2.6 - peerDependenciesMeta: - react: - optional: true - '@storybook/addon-measure@8.2.2': resolution: {integrity: sha512-3rCo/aMltt5FrBVdr2dYlD8HlE2q9TLKGJZnwh9on4QyL6ArHbdYw0LmyHe/LrFahJ49w1XQZBMSJcAdRkkS7w==} peerDependencies: storybook: ^8.2.2 - '@storybook/addon-measure@8.2.6': - resolution: {integrity: sha512-neI8YeSOAtOmzasLxo6O8ZLr2ebMaD7XVF+kYatl5+SpyuwwvUGcP9NkKe5S+mB8V2zxFUIsXS74XrhmQhRoaQ==} - peerDependencies: - storybook: ^8.2.6 - '@storybook/addon-onboarding@8.2.2': resolution: {integrity: sha512-dCdE8Mt/JW6cq6dY7co35Sul/bAkUT3ixaxBrUagFUYUQ/PTYM6p4/B+45RURD5S9z8LVHH1rVgmEeScm3U78w==} peerDependencies: storybook: ^8.2.2 - '@storybook/addon-onboarding@8.2.6': - resolution: {integrity: sha512-udON3COEbi0f8A8+kdQxER6zueVMW2J4ES7ZrYyk7Z6LzzgAhfxmhdFTqEgY08jBEhuyskA2bA656GWk7X01EQ==} - peerDependencies: - storybook: ^8.2.6 - '@storybook/addon-outline@8.2.2': resolution: {integrity: sha512-Y+PQtfTNO8GLX5nz+3x5AMfHNvdGvBXazJ29+Rl1ygYN1+Q9ZhRJDE1kAK0wLxb7CG14peAgdYEaQb3Rduv7HQ==} peerDependencies: storybook: ^8.2.2 - '@storybook/addon-outline@8.2.6': - resolution: {integrity: sha512-uAlPtqDWlq7MQQ4zJT80qdjbSdLF/zsvtPhidX6h9cjLKNPWAv79xJQ14AJHaMv+Hzy5xKnM4wdEhgPbzKabQg==} - peerDependencies: - storybook: ^8.2.6 - '@storybook/addon-toolbars@8.2.2': resolution: {integrity: sha512-JGOueOc3EPljlCl9dVSQee0aMYoqGNvN0UH+R6wYJ3bDZ+tUG/iYpsZVPUOvS8vzp3Imk5Is1kzQbQYJtzdGLg==} peerDependencies: storybook: ^8.2.2 - '@storybook/addon-toolbars@8.2.6': - resolution: {integrity: sha512-0JmRirMpxHS6VZzBk0kY871xWTpkk3TN4S1sxoFf5fcnCfVTHDjEJ5Ws/QWru1RJlIZHuJKRdQIA6Vuq5X+KfQ==} - peerDependencies: - storybook: ^8.2.6 - '@storybook/addon-viewport@8.2.2': resolution: {integrity: sha512-gkZ8bsjGGP0NuevkT2iKC+szezSy+w4BrBDknf490mRU2K/B2e7TGojf/j/AtxzILMzD4IKzKUXbE/zwcqjZvA==} peerDependencies: storybook: ^8.2.2 - '@storybook/addon-viewport@8.2.6': - resolution: {integrity: sha512-IAxH9H8tVFzSmZhKf5E+EALiAdkp19RzGqP/rWluD8LH7oW5HumQE/4oN0ZhVMy1RxYsCKFYjWyAp7AuxeMRSw==} - peerDependencies: - storybook: ^8.2.6 - '@storybook/blocks@8.2.2': resolution: {integrity: sha512-av0Tryg4toDl2L/d1ABErtsAk9wvM1su6+M4wq5/Go50sk5IjGTldhbZFa9zNOohxLkZwaj0Q5xAgJ1Y+m5KrQ==} peerDependencies: @@ -2280,18 +2017,6 @@ packages: react-dom: optional: true - '@storybook/blocks@8.2.6': - resolution: {integrity: sha512-nMlZJjVTyfOJ6xwORptsNuS1AZZlDbJUVXc2R8uukGd5GIXxxCdrPk4NvUsjfQslMT9LhYuFld3z62FATsM2rw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.2.6 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - '@storybook/builder-vite@8.2.6': resolution: {integrity: sha512-3PrsPZAedpQUbzRBEl23Fi1zG5bkQD76JsygVwmfiSm4Est4K8kW2AIB2ht9cIfKXh3mfQkyQlxXKHeQEHeQwQ==} peerDependencies: @@ -2311,9 +2036,6 @@ packages: '@storybook/codemod@8.2.2': resolution: {integrity: sha512-wRUVKLHVUhbLJYKW3QOufUxJGwaUT4jTCD8+HOGpHPdJO3NrwXu186xt4tuPZO2Y/NnacPeCQPsaK5ok4O8o7A==} - '@storybook/codemod@8.2.6': - resolution: {integrity: sha512-+mFJ6R+JhJLpU7VPDlXU5Yn6nqIBq745GaEosnIiFOdNo3jaxJ58wq/sGhbQvoCHPUxMA+sDQvR7pS62YFoLRQ==} - '@storybook/components@8.2.6': resolution: {integrity: sha512-H8ckH1AnLkHtMtvJ3J8LxnmDtHxkJ7NJacGctHMRrsBIvdKTVwlT4su5nAVVJlan/PrEou+jESfw+OjjBYE5PA==} peerDependencies: @@ -2322,9 +2044,6 @@ packages: '@storybook/core@8.2.2': resolution: {integrity: sha512-L4ojYI+Os/i5bCReDIlFgEDQSS94mbJlNU9WRzEGZpqNC5/hbFEC9Tip7P1MiRx9NrewkzU7b+UCP7mi3e4drQ==} - '@storybook/core@8.2.6': - resolution: {integrity: sha512-XY71g3AcpD6IiER9k9Lt+vlUMYfPIYgWekd7e0Ggzz2gJkPuLunKEdQccLGDSHf5OFAobHhrTJc7ZsvWhmDMag==} - '@storybook/csf-plugin@8.2.2': resolution: {integrity: sha512-3K2RUpDDvq3DT46qAIj2VBC+fzTTebRUcZUsRfS6G1AzaX9p25iClEHiwcJacFkgQKhkci8A/Ly3Z4JJ3b4Pgw==} peerDependencies: @@ -2356,11 +2075,6 @@ packages: peerDependencies: storybook: ^8.2.2 - '@storybook/instrumenter@8.2.6': - resolution: {integrity: sha512-RxtpcMTUSq8/wPM6cR6EXVrPEiNuRbC71cIFVFZagOFYvnnOKwSPV+GOLPK0wxMbGB4c5/+Xe8ADefmZTvxOsA==} - peerDependencies: - storybook: ^8.2.6 - '@storybook/manager-api@8.2.6': resolution: {integrity: sha512-uv36h/b5RhlajWtEg4cVPBYV8gZs6juux0nIE+6G9i7vt8Ild6gM9tW1KNabgZcaHFiyWJYCNWxJZoKjgUmXDg==} peerDependencies: @@ -2423,11 +2137,6 @@ packages: peerDependencies: storybook: ^8.2.2 - '@storybook/test@8.2.6': - resolution: {integrity: sha512-nTzNxReBcMRlX1+8PNU/MuA9ArFbeQhfZXMBIwJJoHOhnNe1knYpyn1++xINxAHKOh0BBhQ0NIMoKdcGmW3V6w==} - peerDependencies: - storybook: ^8.2.6 - '@storybook/theming@8.2.6': resolution: {integrity: sha512-ICnYuLIVsYifVCMQljdHgrp+5vAquNybHxDGWiPeOxBicotwHF8rLhTckD2CdVQbMp0jk6r6jetvjXbFJ2MbvQ==} peerDependencies: @@ -2557,9 +2266,6 @@ packages: '@tokenizer/token@0.3.0': resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} - '@tootallnate/quickjs-emscripten@0.23.0': - resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} - '@tsconfig/node10@1.0.11': resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} @@ -2632,12 +2338,6 @@ packages: '@types/escodegen@0.0.6': resolution: {integrity: sha512-AjwI4MvWx3HAOaZqYsjKWyEObT9lcVV0Y0V8nXo6cXzN8ZiMxVhf6F3d/UNvXVGKrEzL/Dluc5p+y9GkzlTWig==} - '@types/eslint-scope@3.7.7': - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} - - '@types/eslint@9.6.0': - resolution: {integrity: sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==} - '@types/estree@0.0.51': resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} @@ -2764,9 +2464,6 @@ packages: '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/rbush@3.0.3': - resolution: {integrity: sha512-lX55lR0iYCgapxD3IrgujpQA1zDxwZI5qMRelKvmKAsSMplFVr7wmMpG7/6+Op2tjrgEex8o3vjg8CRDrRNYxg==} - '@types/react-dom@18.3.0': resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} @@ -3041,67 +2738,16 @@ packages: '@wdio/spec-reporter@7.10.1': resolution: {integrity: sha512-Yo/XvBY3OkOhs3m32KcbeilJowVO4Ii0ZeNtn4KPPV6Z4pYglV8vYdTDJ/BIinuBBJWJPbS6EFLZtrsaSuuFYg==} engines: {node: '>=12.0.0'} - peerDependencies: - '@wdio/cli': ^7.0.0 - - '@wdio/types@7.10.1': - resolution: {integrity: sha512-wEDmdux2VCGO4wWVj7v9UbVRqQG7liHnDVPYJuQURPj3hJMiQQTIHwRi7EmwYfbJ9/mRoHBOGeZt7nSvtcjeaQ==} - engines: {node: '>=12.0.0'} - - '@wdio/utils@7.11.0': - resolution: {integrity: sha512-0n5mZha2QktV0181nMhw+IQ8MgYrqyvVDjP20P7JEnl6hehSkyXTAYQcYuKaw5AAVqipV3Eh96JBi5CnhpsoKQ==} - engines: {node: '>=12.0.0'} - - '@webassemblyjs/ast@1.12.1': - resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} - - '@webassemblyjs/floating-point-hex-parser@1.11.6': - resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} - - '@webassemblyjs/helper-api-error@1.11.6': - resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} - - '@webassemblyjs/helper-buffer@1.12.1': - resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} - - '@webassemblyjs/helper-numbers@1.11.6': - resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} - - '@webassemblyjs/helper-wasm-bytecode@1.11.6': - resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} - - '@webassemblyjs/helper-wasm-section@1.12.1': - resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} - - '@webassemblyjs/ieee754@1.11.6': - resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} - - '@webassemblyjs/leb128@1.11.6': - resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} - - '@webassemblyjs/utf8@1.11.6': - resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} - - '@webassemblyjs/wasm-edit@1.12.1': - resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} - - '@webassemblyjs/wasm-gen@1.12.1': - resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} - - '@webassemblyjs/wasm-opt@1.12.1': - resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} - - '@webassemblyjs/wasm-parser@1.12.1': - resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} - - '@webassemblyjs/wast-printer@1.12.1': - resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + peerDependencies: + '@wdio/cli': ^7.0.0 - '@xtuc/ieee754@1.2.0': - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + '@wdio/types@7.10.1': + resolution: {integrity: sha512-wEDmdux2VCGO4wWVj7v9UbVRqQG7liHnDVPYJuQURPj3hJMiQQTIHwRi7EmwYfbJ9/mRoHBOGeZt7nSvtcjeaQ==} + engines: {node: '>=12.0.0'} - '@xtuc/long@4.2.2': - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + '@wdio/utils@7.11.0': + resolution: {integrity: sha512-0n5mZha2QktV0181nMhw+IQ8MgYrqyvVDjP20P7JEnl6hehSkyXTAYQcYuKaw5AAVqipV3Eh96JBi5CnhpsoKQ==} + engines: {node: '>=12.0.0'} '@yarnpkg/fslib@2.10.3': resolution: {integrity: sha512-41H+Ga78xT9sHvWLlFOZLIhtU6mTGZ20pZ29EiZa97vnxdohJD2AF42rCoAoWfqUz486xY6fhjMH+DYEM9r14A==} @@ -3121,11 +2767,6 @@ packages: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} - acorn-import-attributes@1.9.5: - resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} - peerDependencies: - acorn: ^8 - acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -3157,11 +2798,6 @@ packages: resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} engines: {node: '>= 14'} - ajv-keywords@3.5.2: - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} - peerDependencies: - ajv: ^6.9.1 - ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -3313,10 +2949,6 @@ packages: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} - ast-types@0.13.4: - resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} - engines: {node: '>=4'} - ast-types@0.16.1: resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} engines: {node: '>=4'} @@ -3346,9 +2978,6 @@ packages: axios@1.7.4: resolution: {integrity: sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==} - b4a@1.6.6: - resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} - babel-core@7.0.0-bridge.0: resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==} peerDependencies: @@ -3401,34 +3030,12 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - bare-events@2.4.2: - resolution: {integrity: sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==} - - bare-fs@2.3.1: - resolution: {integrity: sha512-W/Hfxc/6VehXlsgFtbB5B4xFcsCl+pAh30cYhoFyXErf6oGrwjh8SwiPAdHgpmWonKuYpZgGywN0SXt7dgsADA==} - - bare-os@2.4.0: - resolution: {integrity: sha512-v8DTT08AS/G0F9xrhyLtepoo9EJBJ85FRSMbu1pQUlAf6A8T0tEEQGMVObWeqpjhSPXsE0VGlluFBJu2fdoTNg==} - - bare-path@2.1.3: - resolution: {integrity: sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==} - - bare-stream@2.1.3: - resolution: {integrity: sha512-tiDAH9H/kP+tvNO5sczyn9ZAA7utrSMobyDchsnyyXBuUe2FSQWbxhtuHB8jwpHYYevVo2UJpcmvvjrbHboUUQ==} - base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - basic-ftp@5.0.5: - resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} - engines: {node: '>=10.0.0'} - bidi-js@1.0.3: resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==} - big.js@5.2.2: - resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} - binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} @@ -3630,15 +3237,6 @@ packages: resolution: {integrity: sha512-Nk8DUCIfPR6p9WClPPFeP2ztpAdkT8xueoiDS03csea1uoJjm4w0p5Oy1hjykyjT1EQ0MMrEshLD3C8gHXyiZw==} engines: {node: '>=12.13.0'} - chrome-trace-event@1.0.4: - resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} - engines: {node: '>=6.0'} - - chromium-bidi@0.6.0: - resolution: {integrity: sha512-VnxVrpGojAjkiGFN2I+KtsDILFAjiGWVEDizOEnKzEDkT93eQT1cqTfUkqmOyLq33i1q4a1KDYbH+52CUe4Ufw==} - peerDependencies: - devtools-protocol: '*' - ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} @@ -3835,15 +3433,6 @@ packages: resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} engines: {node: '>=10'} - cosmiconfig@9.0.0: - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - crc-32@1.2.2: resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} engines: {node: '>=0.8'} @@ -3899,10 +3488,6 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - data-uri-to-buffer@6.0.2: - resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} - engines: {node: '>= 14'} - data-urls@5.0.0: resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} engines: {node: '>=18'} @@ -3952,15 +3537,6 @@ packages: supports-color: optional: true - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.3.5: resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} engines: {node: '>=6.0'} @@ -4043,10 +3619,6 @@ packages: defu@6.1.4: resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} - degenerator@5.0.1: - resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} - engines: {node: '>= 14'} - delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -4081,9 +3653,6 @@ packages: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} - devtools-protocol@0.0.1299070: - resolution: {integrity: sha512-+qtL3eX50qsJ7c+qVyagqi7AWMoQCBGNfoyJZMwm/NSXVqLYbuitrWEEIzxfUmTNy7//Xe8yhMmQ+elj3uAqSg==} - devtools-protocol@0.0.901419: resolution: {integrity: sha512-4INMPwNm9XRpBukhNbF7OB6fNTTCaI8pzy/fXg0xQzAy5h3zL1P8xT3QazgKqBrb/hAYwIBizqDBZ7GtJE74QQ==} @@ -4183,10 +3752,6 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - emojis-list@3.0.0: - resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} - engines: {node: '>= 4'} - encodeurl@1.0.2: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} @@ -4201,18 +3766,10 @@ packages: resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} engines: {node: '>=10.0.0'} - enhanced-resolve@5.17.1: - resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} - engines: {node: '>=10.13.0'} - entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} - envinfo@7.13.0: resolution: {integrity: sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==} engines: {node: '>=4'} @@ -4263,11 +3820,6 @@ packages: peerDependencies: esbuild: '>=0.12 <1' - esbuild-register@3.6.0: - resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} - peerDependencies: - esbuild: '>=0.12 <1' - esbuild@0.21.5: resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} engines: {node: '>=12'} @@ -4385,10 +3937,6 @@ packages: eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} - events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - execa@0.7.0: resolution: {integrity: sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==} engines: {node: '>=4'} @@ -4445,9 +3993,6 @@ packages: fast-equals@4.0.3: resolution: {integrity: sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==} - fast-fifo@1.3.2: - resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} - fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} @@ -4490,12 +4035,6 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} - file-loader@6.2.0: - resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} - engines: {node: '>= 10.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - file-type@16.5.4: resolution: {integrity: sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==} engines: {node: '>=10'} @@ -4673,10 +4212,6 @@ packages: resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} - get-uri@6.0.3: - resolution: {integrity: sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==} - engines: {node: '>= 14'} - gifwrap@0.9.4: resolution: {integrity: sha512-MDMwbhASQuVeD4JKd1fKgNgCRL3fGqMM4WaqpNhWO0JiMOAjbQdumbs4BbBZEy9/M00EHEjKN3HieVhCUlwjeQ==} @@ -4701,9 +4236,6 @@ packages: peerDependencies: glob: ^7.1.6 - glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - glob@10.4.5: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true @@ -4770,9 +4302,6 @@ packages: resolution: {integrity: sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==} engines: {node: '>=4.x'} - harmony-reflect@1.6.2: - resolution: {integrity: sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==} - has-ansi@2.0.0: resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} engines: {node: '>=0.10.0'} @@ -4898,10 +4427,6 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} - identity-obj-proxy@3.0.0: - resolution: {integrity: sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==} - engines: {node: '>=4'} - ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -4957,10 +4482,6 @@ packages: resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} - ip-address@9.0.5: - resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} - engines: {node: '>= 12'} - ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} @@ -5178,10 +4699,6 @@ packages: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} - istanbul-lib-instrument@4.0.3: - resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} - engines: {node: '>=8'} - istanbul-lib-instrument@5.2.1: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} @@ -5368,10 +4885,6 @@ packages: resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} - jest-worker@29.7.0: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5403,9 +4916,6 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - jsbn@1.1.0: - resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} - jscodeshift@0.15.2: resolution: {integrity: sha512-FquR7Okgmc4Sd0aEDwqho3rEiKR3BdvuG9jfdHjLJ6JQoWSMpavug3AoIfnfWhxFlf+5pzQh8qjqz0DWFrNQzA==} hasBin: true @@ -5520,14 +5030,6 @@ packages: resolution: {integrity: sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==} engines: {node: '>=0.10.0'} - loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} - engines: {node: '>=6.11.5'} - - loader-utils@2.0.4: - resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} - engines: {node: '>=8.9.0'} - locate-path@3.0.0: resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} engines: {node: '>=6'} @@ -5617,14 +5119,6 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - - lru-cache@7.18.3: - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} - engines: {node: '>=12'} - lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true @@ -5695,9 +5189,6 @@ packages: merge-descriptors@1.0.1: resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} - merge-source-map@1.1.0: - resolution: {integrity: sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==} - merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -5809,9 +5300,6 @@ packages: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} - mitt@3.0.1: - resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} - mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true @@ -5864,10 +5352,6 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - netmask@2.0.2: - resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} - engines: {node: '>= 0.4.0'} - node-dir@0.1.17: resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==} engines: {node: '>= 0.10.5'} @@ -6045,14 +5529,6 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - pac-proxy-agent@7.0.2: - resolution: {integrity: sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==} - engines: {node: '>= 14'} - - pac-resolver@7.0.1: - resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==} - engines: {node: '>= 14'} - package-json-from-dist@1.0.0: resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} @@ -6259,11 +5735,6 @@ packages: engines: {node: '>=14'} hasBin: true - prettier@3.3.3: - resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} - engines: {node: '>=14'} - hasBin: true - pretty-format@27.5.1: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -6291,10 +5762,6 @@ packages: resolution: {integrity: sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==} engines: {node: '>=0.4.0'} - progress@2.0.3: - resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} - engines: {node: '>=0.4.0'} - promise-worker-transferable@1.0.4: resolution: {integrity: sha512-bN+0ehEnrXfxV2ZQvU2PetO0n4gqBD4ulq3MI1WOPLgr7/Mg9yRQkX5+0v1vagr74ZTsl7XtzlaYDo2EuCeYJw==} @@ -6309,10 +5776,6 @@ packages: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} - proxy-agent@6.4.0: - resolution: {integrity: sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==} - engines: {node: '>= 14'} - proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} @@ -6341,15 +5804,6 @@ packages: resolution: {integrity: sha512-KU8zyb7AIOqNjLCN3wkrFXxh+EVaG+zrs2P03ATNjc3iwSxHsu5/EvZiREpQ/IJiT9xfQbDVgKcsvRuzLCxglQ==} engines: {node: '>=10.18.1'} - puppeteer-core@22.13.0: - resolution: {integrity: sha512-ZkpRX8nm/S39BnpcCverMzIc6oGWBPOUeOeaWRLKHqiKVCZ1l28HxPTYLitJlDiB16xZATSKpjul+sl+ZEm0HQ==} - engines: {node: '>=18'} - - puppeteer@22.13.0: - resolution: {integrity: sha512-nmICzeHTBtZiu+y4vs0fboe/NKIFwH5W8RZuxmEVAKNfBQg/8u5FEQAvPlWmyVpJoAVM5kXD5PEl3GlK3F9pPA==} - engines: {node: '>=18'} - hasBin: true - pure-rand@6.1.0: resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} @@ -6375,16 +5829,10 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - queue-tick@1.0.1: - resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} - quick-lru@5.1.1: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} - quickselect@2.0.0: - resolution: {integrity: sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==} - randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} @@ -6400,9 +5848,6 @@ packages: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} engines: {node: '>= 0.8'} - rbush@3.0.1: - resolution: {integrity: sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==} - rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true @@ -6763,14 +6208,6 @@ packages: scheduler@0.23.2: resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} - schema-utils@2.7.1: - resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==} - engines: {node: '>= 8.9.0'} - - schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} - engines: {node: '>= 10.13.0'} - semver@5.7.2: resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} hasBin: true @@ -6779,11 +6216,6 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.6.0: - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} - engines: {node: '>=10'} - hasBin: true - semver@7.6.2: resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} engines: {node: '>=10'} @@ -6805,9 +6237,6 @@ packages: serialize-javascript@6.0.0: resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} - serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - serve-handler@6.1.3: resolution: {integrity: sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w==} @@ -6898,10 +6327,6 @@ packages: resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} engines: {node: '>=18'} - smart-buffer@4.2.0: - resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} - engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - socket.io-client@4.7.5: resolution: {integrity: sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==} engines: {node: '>=10.0.0'} @@ -6910,14 +6335,6 @@ packages: resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} engines: {node: '>=10.0.0'} - socks-proxy-agent@8.0.4: - resolution: {integrity: sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==} - engines: {node: '>= 14'} - - socks@2.8.3: - resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} - engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} - source-map-js@1.2.0: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} @@ -6963,9 +6380,6 @@ packages: sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - sprintf-js@1.1.3: - resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} - stack-utils@2.0.6: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} @@ -6994,10 +6408,6 @@ packages: resolution: {integrity: sha512-xDT9gyzAEFQNeK7P+Mj/8bNzN+fbm6/4D6ihdSzmczayjydpNjMs74HDHMY6S4Bfu6tRVyEK2ALPGnr6ZVofBA==} hasBin: true - storybook@8.2.6: - resolution: {integrity: sha512-8j30wDxQmkcqI0fWcSYFsUCjErsY1yTWbTW+yjbwM8DyW18Cud6CwbFRCxjFsH+2M0CjP6Pqs/m1PGI0vcQscQ==} - hasBin: true - stream-buffers@3.0.3: resolution: {integrity: sha512-pqMqwQCso0PBJt2PQmDO0cFj0lyqmiwOMiMSkVtRokl7e+ZTRYgDHKnuZNbqjiJXgsg4nuqtD/zxuo9KqTp0Yw==} engines: {node: '>= 0.10.0'} @@ -7005,9 +6415,6 @@ packages: stream-combiner@0.0.4: resolution: {integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==} - streamx@2.18.0: - resolution: {integrity: sha512-LLUC1TWdjVdn1weXGcSxyTR3T4+acB6tVGXT95y0nGbca4t4o/ng1wKAGTljm9VicuCVLvRlqFYXYy5GwgM7sQ==} - string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} @@ -7151,23 +6558,13 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} - tar-fs@2.0.0: resolution: {integrity: sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==} - tar-fs@3.0.5: - resolution: {integrity: sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==} - tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} - tar-stream@3.1.7: - resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} - tar@6.2.1: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} @@ -7195,22 +6592,6 @@ packages: resolution: {integrity: sha512-7dPUZQGy/+m3/wjVz3ZW5dobSoD/02NxJpoXUX0WIyjfVS3l0c+b/+9phIDFA7FHzkYtwtMFgeGZ/Y8jVTeqQQ==} engines: {node: '>=4'} - terser-webpack-plugin@5.3.10: - resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true - terser@5.31.6: resolution: {integrity: sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==} engines: {node: '>=10'} @@ -7224,9 +6605,6 @@ packages: resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} engines: {node: '>=18'} - text-decoder@1.1.1: - resolution: {integrity: sha512-8zll7REEv4GDD3x4/0pW+ppIxSNs7H1J10IKFZsuOMscumCdM2a+toDGLPA3T+1+fLBql4zbt5z83GEQGGV5VA==} - text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} @@ -7465,9 +6843,6 @@ packages: unbzip2-stream@1.3.3: resolution: {integrity: sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==} - unbzip2-stream@1.4.3: - resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} - undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} @@ -7541,9 +6916,6 @@ packages: url@0.11.3: resolution: {integrity: sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==} - urlpattern-polyfill@10.0.0: - resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} - use-sync-external-store@1.2.0: resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} peerDependencies: @@ -7656,10 +7028,6 @@ packages: walker@1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - watchpack@2.4.2: - resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} - engines: {node: '>=10.13.0'} - wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} @@ -7691,16 +7059,6 @@ packages: webpack-virtual-modules@0.6.2: resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} - webpack@5.93.0: - resolution: {integrity: sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - whatwg-encoding@3.1.1: resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} engines: {node: '>=18'} @@ -7916,9 +7274,6 @@ packages: resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==} engines: {node: '>= 10'} - zod@3.23.8: - resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} - zustand@3.7.2: resolution: {integrity: sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==} engines: {node: '>=12.7.0'} @@ -8997,16 +8352,6 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@date-io/core@2.17.0': {} - - '@date-io/core@3.0.0': {} - - '@date-io/date-fns@2.17.0(date-fns@2.30.0)': - dependencies: - '@date-io/core': 2.17.0 - optionalDependencies: - date-fns: 2.30.0 - '@emotion/babel-plugin@11.12.0': dependencies: '@babel/helper-module-imports': 7.24.7 @@ -9293,42 +8638,6 @@ snapshots: - ts-node optional: true - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4))': - dependencies: - '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.2.0 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - ci-info: 3.9.0 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)) - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-resolve-dependencies: 29.7.0 - jest-runner: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - jest-watcher: 29.7.0 - micromatch: 4.0.7 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-ansi: 6.0.1 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - ts-node - optional: true - '@jest/environment@29.7.0': dependencies: '@jest/fake-timers': 29.7.0 @@ -9555,13 +8864,13 @@ snapshots: '@babel/runtime': 7.24.8 regenerator-runtime: 0.13.11 - '@joshwooding/vite-plugin-react-docgen-typescript@0.3.1(typescript@5.5.4)(vite@5.3.5(@types/node@22.2.0)(terser@5.31.6))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.3.1(typescript@5.5.4)(vite@5.3.5(@types/node@20.14.12)(terser@5.31.6))': dependencies: glob: 7.2.3 glob-promise: 4.2.2(glob@7.2.3) magic-string: 0.27.0 react-docgen-typescript: 2.2.2(typescript@5.5.4) - vite: 5.3.5(@types/node@22.2.0)(terser@5.31.6) + vite: 5.3.5(@types/node@20.14.12)(terser@5.31.6) optionalDependencies: typescript: 5.5.4 @@ -9579,6 +8888,7 @@ snapshots: dependencies: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 + optional: true '@jridgewell/sourcemap-codec@1.5.0': {} @@ -9592,16 +8902,6 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@jsdevtools/coverage-istanbul-loader@3.0.5': - dependencies: - convert-source-map: 1.9.0 - istanbul-lib-instrument: 4.0.3 - loader-utils: 2.0.4 - merge-source-map: 1.1.0 - schema-utils: 2.7.1 - transitivePeerDependencies: - - supports-color - '@lukeed/csprng@1.1.0': {} '@mapbox/node-pre-gyp@1.0.11': @@ -9637,7 +8937,7 @@ snapshots: '@babel/runtime': 7.24.8 '@floating-ui/react-dom': 2.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/types': 7.2.15(@types/react@18.3.3) - '@mui/utils': 5.16.1(@types/react@18.3.3)(react@18.3.1) + '@mui/utils': 5.16.4(@types/react@18.3.3)(react@18.3.1) '@popperjs/core': 2.11.8 clsx: 2.1.1 prop-types: 15.8.1 @@ -9663,7 +8963,7 @@ snapshots: '@mui/material': 5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/system': 5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) '@mui/types': 7.2.15(@types/react@18.3.3) - '@mui/utils': 5.16.1(@types/react@18.3.3)(react@18.3.1) + '@mui/utils': 5.16.4(@types/react@18.3.3)(react@18.3.1) clsx: 2.1.1 prop-types: 15.8.1 react: 18.3.1 @@ -9872,19 +9172,6 @@ snapshots: '@popperjs/core@2.11.8': {} - '@puppeteer/browsers@2.2.3': - dependencies: - debug: 4.3.4 - extract-zip: 2.0.1 - progress: 2.0.3 - proxy-agent: 6.4.0 - semver: 7.6.0 - tar-fs: 3.0.5 - unbzip2-stream: 1.4.3 - yargs: 17.7.2 - transitivePeerDependencies: - - supports-color - '@react-spring/animated@9.6.1(react@18.3.1)': dependencies: '@react-spring/shared': 9.6.1(react@18.3.1) @@ -10059,15 +9346,6 @@ snapshots: storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) uuid: 9.0.1 - '@storybook/addon-actions@8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': - dependencies: - '@storybook/global': 5.0.0 - '@types/uuid': 9.0.8 - dequal: 2.0.3 - polished: 4.3.1 - storybook: 8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)) - uuid: 9.0.1 - '@storybook/addon-backgrounds@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': dependencies: '@storybook/global': 5.0.0 @@ -10075,13 +9353,6 @@ snapshots: storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) ts-dedent: 2.2.0 - '@storybook/addon-backgrounds@8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': - dependencies: - '@storybook/global': 5.0.0 - memoizerific: 1.11.3 - storybook: 8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)) - ts-dedent: 2.2.0 - '@storybook/addon-controls@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': dependencies: dequal: 2.0.3 @@ -10089,13 +9360,6 @@ snapshots: storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) ts-dedent: 2.2.0 - '@storybook/addon-controls@8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': - dependencies: - dequal: 2.0.3 - lodash: 4.17.21 - storybook: 8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)) - ts-dedent: 2.2.0 - '@storybook/addon-docs@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': dependencies: '@babel/core': 7.24.8 @@ -10115,25 +9379,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/addon-docs@8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': - dependencies: - '@babel/core': 7.24.8 - '@mdx-js/react': 3.0.1(@types/react@18.3.3)(react@18.3.1) - '@storybook/blocks': 8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/csf-plugin': 8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/global': 5.0.0 - '@storybook/react-dom-shim': 8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@types/react': 18.3.3 - fs-extra: 11.2.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - rehype-external-links: 3.0.0 - rehype-slug: 6.0.0 - storybook: 8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)) - ts-dedent: 2.2.0 - transitivePeerDependencies: - - supports-color - '@storybook/addon-essentials@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': dependencies: '@storybook/addon-actions': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) @@ -10150,32 +9395,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/addon-essentials@8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': - dependencies: - '@storybook/addon-actions': 8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/addon-backgrounds': 8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/addon-controls': 8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/addon-docs': 8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/addon-highlight': 8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/addon-measure': 8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/addon-outline': 8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/addon-toolbars': 8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/addon-viewport': 8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - storybook: 8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)) - ts-dedent: 2.2.0 - transitivePeerDependencies: - - supports-color - '@storybook/addon-highlight@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': dependencies: '@storybook/global': 5.0.0 storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) - '@storybook/addon-highlight@8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': - dependencies: - '@storybook/global': 5.0.0 - storybook: 8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)) - '@storybook/addon-interactions@8.2.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.14.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@20.14.12)(typescript@5.5.4)))(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(vitest@2.0.4(@types/node@20.14.12)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6))': dependencies: '@storybook/global': 5.0.0 @@ -10191,21 +9415,6 @@ snapshots: - jest - vitest - '@storybook/addon-interactions@8.2.6(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)))(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(vitest@2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6))': - dependencies: - '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/test': 8.2.6(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)))(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(vitest@2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6)) - polished: 4.3.1 - storybook: 8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)) - ts-dedent: 2.2.0 - transitivePeerDependencies: - - '@jest/globals' - - '@types/bun' - - '@types/jest' - - jest - - vitest - '@storybook/addon-links@8.2.2(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': dependencies: '@storybook/csf': 0.1.11 @@ -10215,25 +9424,10 @@ snapshots: optionalDependencies: react: 18.3.1 - '@storybook/addon-links@8.2.6(react@18.3.1)(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': - dependencies: - '@storybook/csf': 0.1.11 - '@storybook/global': 5.0.0 - storybook: 8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)) - ts-dedent: 2.2.0 - optionalDependencies: - react: 18.3.1 - - '@storybook/addon-measure@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': - dependencies: - '@storybook/global': 5.0.0 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) - tiny-invariant: 1.3.3 - - '@storybook/addon-measure@8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': + '@storybook/addon-measure@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) tiny-invariant: 1.3.3 '@storybook/addon-onboarding@8.2.2(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': @@ -10243,43 +9437,21 @@ snapshots: transitivePeerDependencies: - react - '@storybook/addon-onboarding@8.2.6(react@18.3.1)(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': - dependencies: - react-confetti: 6.1.0(react@18.3.1) - storybook: 8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)) - transitivePeerDependencies: - - react - '@storybook/addon-outline@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': dependencies: '@storybook/global': 5.0.0 storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) ts-dedent: 2.2.0 - '@storybook/addon-outline@8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': - dependencies: - '@storybook/global': 5.0.0 - storybook: 8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)) - ts-dedent: 2.2.0 - '@storybook/addon-toolbars@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': dependencies: storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) - '@storybook/addon-toolbars@8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': - dependencies: - storybook: 8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)) - '@storybook/addon-viewport@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': dependencies: memoizerific: 1.11.3 storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) - '@storybook/addon-viewport@8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': - dependencies: - memoizerific: 1.11.3 - storybook: 8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)) - '@storybook/blocks@8.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': dependencies: '@storybook/csf': 0.1.11 @@ -10301,30 +9473,9 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/blocks@8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': - dependencies: - '@storybook/csf': 0.1.11 - '@storybook/global': 5.0.0 - '@storybook/icons': 1.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@types/lodash': 4.17.6 - color-convert: 2.0.1 - dequal: 2.0.3 - lodash: 4.17.21 - markdown-to-jsx: 7.4.7(react@18.3.1) - memoizerific: 1.11.3 - polished: 4.3.1 - react-colorful: 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - storybook: 8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)) - telejson: 7.2.0 - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - optionalDependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@storybook/builder-vite@8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(typescript@5.5.4)(vite@5.3.5(@types/node@22.2.0)(terser@5.31.6))': + '@storybook/builder-vite@8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(typescript@5.5.4)(vite@5.3.5(@types/node@20.14.12)(terser@5.31.6))': dependencies: - '@storybook/csf-plugin': 8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8))) + '@storybook/csf-plugin': 8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) '@types/find-cache-dir': 3.2.1 browser-assert: 1.2.1 es-module-lexer: 1.5.4 @@ -10332,9 +9483,9 @@ snapshots: find-cache-dir: 3.3.2 fs-extra: 11.2.0 magic-string: 0.30.10 - storybook: 8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) ts-dedent: 2.2.0 - vite: 5.3.5(@types/node@22.2.0)(terser@5.31.6) + vite: 5.3.5(@types/node@20.14.12)(terser@5.31.6) optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: @@ -10360,29 +9511,9 @@ snapshots: - supports-color - utf-8-validate - '@storybook/codemod@8.2.6': - dependencies: - '@babel/core': 7.24.8 - '@babel/preset-env': 7.24.8(@babel/core@7.24.8) - '@babel/types': 7.24.9 - '@storybook/core': 8.2.6 - '@storybook/csf': 0.1.11 - '@types/cross-spawn': 6.0.6 - cross-spawn: 7.0.3 - globby: 14.0.2 - jscodeshift: 0.15.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) - lodash: 4.17.21 - prettier: 3.3.3 - recast: 0.23.9 - tiny-invariant: 1.3.3 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - - '@storybook/components@8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': + '@storybook/components@8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': dependencies: - storybook: 8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) '@storybook/core@8.2.2': dependencies: @@ -10402,32 +9533,14 @@ snapshots: - supports-color - utf-8-validate - '@storybook/core@8.2.6': - dependencies: - '@storybook/csf': 0.1.11 - '@types/express': 4.17.21 - '@types/node': 18.19.42 - browser-assert: 1.2.1 - esbuild: 0.21.5 - esbuild-register: 3.6.0(esbuild@0.21.5) - express: 4.19.2 - process: 0.11.10 - recast: 0.23.9 - util: 0.12.5 - ws: 8.18.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - '@storybook/csf-plugin@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': dependencies: storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) unplugin: 1.11.0 - '@storybook/csf-plugin@8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': + '@storybook/csf-plugin@8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': dependencies: - storybook: 8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) unplugin: 1.11.0 '@storybook/csf@0.0.1': @@ -10452,20 +9565,13 @@ snapshots: storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) util: 0.12.5 - '@storybook/instrumenter@8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': - dependencies: - '@storybook/global': 5.0.0 - '@vitest/utils': 1.6.0 - storybook: 8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)) - util: 0.12.5 - - '@storybook/manager-api@8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': + '@storybook/manager-api@8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': dependencies: - storybook: 8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) - '@storybook/preview-api@8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': + '@storybook/preview-api@8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': dependencies: - storybook: 8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) '@storybook/react-dom-shim@8.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': dependencies: @@ -10473,27 +9579,27 @@ snapshots: react-dom: 18.3.1(react@18.3.1) storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) - '@storybook/react-dom-shim@8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': + '@storybook/react-dom-shim@8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - storybook: 8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) - '@storybook/react-vite@8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.19.0)(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(typescript@5.5.4)(vite@5.3.5(@types/node@22.2.0)(terser@5.31.6))': + '@storybook/react-vite@8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.19.0)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(typescript@5.5.4)(vite@5.3.5(@types/node@20.14.12)(terser@5.31.6))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.1(typescript@5.5.4)(vite@5.3.5(@types/node@22.2.0)(terser@5.31.6)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.1(typescript@5.5.4)(vite@5.3.5(@types/node@20.14.12)(terser@5.31.6)) '@rollup/pluginutils': 5.1.0(rollup@4.19.0) - '@storybook/builder-vite': 8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(typescript@5.5.4)(vite@5.3.5(@types/node@22.2.0)(terser@5.31.6)) - '@storybook/react': 8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(typescript@5.5.4) + '@storybook/builder-vite': 8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(typescript@5.5.4)(vite@5.3.5(@types/node@20.14.12)(terser@5.31.6)) + '@storybook/react': 8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(typescript@5.5.4) find-up: 5.0.0 magic-string: 0.30.10 react: 18.3.1 react-docgen: 7.0.3 react-dom: 18.3.1(react@18.3.1) resolve: 1.22.8 - storybook: 8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) tsconfig-paths: 4.2.0 - vite: 5.3.5(@types/node@22.2.0)(terser@5.31.6) + vite: 5.3.5(@types/node@20.14.12)(terser@5.31.6) transitivePeerDependencies: - '@preact/preset-vite' - rollup @@ -10526,14 +9632,14 @@ snapshots: optionalDependencies: typescript: 5.5.4 - '@storybook/react@8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(typescript@5.5.4)': + '@storybook/react@8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(typescript@5.5.4)': dependencies: - '@storybook/components': 8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8))) + '@storybook/components': 8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) '@storybook/global': 5.0.0 - '@storybook/manager-api': 8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/preview-api': 8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/react-dom-shim': 8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/theming': 8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8))) + '@storybook/manager-api': 8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) + '@storybook/preview-api': 8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) + '@storybook/react-dom-shim': 8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) + '@storybook/theming': 8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) '@types/escodegen': 0.0.6 '@types/estree': 0.0.51 '@types/node': 18.19.42 @@ -10548,7 +9654,7 @@ snapshots: react-dom: 18.3.1(react@18.3.1) react-element-to-jsx-string: 15.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) semver: 7.6.3 - storybook: 8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) ts-dedent: 2.2.0 type-fest: 2.19.0 util-deprecate: 1.0.2 @@ -10573,27 +9679,9 @@ snapshots: - jest - vitest - '@storybook/test@8.2.6(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)))(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(vitest@2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6))': - dependencies: - '@storybook/csf': 0.1.11 - '@storybook/instrumenter': 8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@testing-library/dom': 10.1.0 - '@testing-library/jest-dom': 6.4.5(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)))(vitest@2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6)) - '@testing-library/user-event': 14.5.2(@testing-library/dom@10.1.0) - '@vitest/expect': 1.6.0 - '@vitest/spy': 1.6.0 - storybook: 8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)) - util: 0.12.5 - transitivePeerDependencies: - - '@jest/globals' - - '@types/bun' - - '@types/jest' - - jest - - vitest - - '@storybook/theming@8.2.6(storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': + '@storybook/theming@8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': dependencies: - storybook: 8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) '@swc/core-darwin-arm64@1.5.7': optional: true @@ -10689,22 +9777,6 @@ snapshots: jest: 29.7.0(@types/node@20.14.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@20.14.12)(typescript@5.5.4)) vitest: 2.0.4(@types/node@20.14.12)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6) - '@testing-library/jest-dom@6.4.5(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)))(vitest@2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6))': - dependencies: - '@adobe/css-tools': 4.4.0 - '@babel/runtime': 7.24.8 - aria-query: 5.3.0 - chalk: 3.0.0 - css.escape: 1.5.1 - dom-accessibility-api: 0.6.3 - lodash: 4.17.21 - redent: 3.0.0 - optionalDependencies: - '@jest/globals': 29.7.0 - '@types/jest': 29.5.12 - jest: 29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)) - vitest: 2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6) - '@testing-library/react@14.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.24.8 @@ -10723,8 +9795,6 @@ snapshots: '@tokenizer/token@0.3.0': {} - '@tootallnate/quickjs-emscripten@0.23.0': {} - '@tsconfig/node10@1.0.11': {} '@tsconfig/node12@1.0.11': {} @@ -10802,16 +9872,6 @@ snapshots: '@types/escodegen@0.0.6': {} - '@types/eslint-scope@3.7.7': - dependencies: - '@types/eslint': 9.6.0 - '@types/estree': 1.0.5 - - '@types/eslint@9.6.0': - dependencies: - '@types/estree': 1.0.5 - '@types/json-schema': 7.0.15 - '@types/estree@0.0.51': {} '@types/estree@1.0.5': {} @@ -10932,6 +9992,7 @@ snapshots: '@types/node@22.2.0': dependencies: undici-types: 6.13.0 + optional: true '@types/object-inspect@1.13.0': {} @@ -10945,8 +10006,6 @@ snapshots: '@types/range-parser@1.2.7': {} - '@types/rbush@3.0.3': {} - '@types/react-dom@18.3.0': dependencies: '@types/react': 18.3.3 @@ -11217,24 +10276,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@2.0.4(vitest@2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6))': - dependencies: - '@ampproject/remapping': 2.3.0 - '@bcoe/v8-coverage': 0.2.3 - debug: 4.3.5 - istanbul-lib-coverage: 3.2.2 - istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 5.0.6 - istanbul-reports: 3.1.7 - magic-string: 0.30.10 - magicast: 0.3.4 - std-env: 3.7.0 - test-exclude: 7.0.1 - tinyrainbow: 1.2.0 - vitest: 2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6) - transitivePeerDependencies: - - supports-color - '@vitest/expect@1.6.0': dependencies: '@vitest/spy': 1.6.0 @@ -11426,86 +10467,6 @@ snapshots: '@wdio/types': 7.10.1 p-iteration: 1.1.8 - '@webassemblyjs/ast@1.12.1': - dependencies: - '@webassemblyjs/helper-numbers': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - - '@webassemblyjs/floating-point-hex-parser@1.11.6': {} - - '@webassemblyjs/helper-api-error@1.11.6': {} - - '@webassemblyjs/helper-buffer@1.12.1': {} - - '@webassemblyjs/helper-numbers@1.11.6': - dependencies: - '@webassemblyjs/floating-point-hex-parser': 1.11.6 - '@webassemblyjs/helper-api-error': 1.11.6 - '@xtuc/long': 4.2.2 - - '@webassemblyjs/helper-wasm-bytecode@1.11.6': {} - - '@webassemblyjs/helper-wasm-section@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/wasm-gen': 1.12.1 - - '@webassemblyjs/ieee754@1.11.6': - dependencies: - '@xtuc/ieee754': 1.2.0 - - '@webassemblyjs/leb128@1.11.6': - dependencies: - '@xtuc/long': 4.2.2 - - '@webassemblyjs/utf8@1.11.6': {} - - '@webassemblyjs/wasm-edit@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/helper-wasm-section': 1.12.1 - '@webassemblyjs/wasm-gen': 1.12.1 - '@webassemblyjs/wasm-opt': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - '@webassemblyjs/wast-printer': 1.12.1 - - '@webassemblyjs/wasm-gen@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/ieee754': 1.11.6 - '@webassemblyjs/leb128': 1.11.6 - '@webassemblyjs/utf8': 1.11.6 - - '@webassemblyjs/wasm-opt@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/wasm-gen': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - - '@webassemblyjs/wasm-parser@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-api-error': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/ieee754': 1.11.6 - '@webassemblyjs/leb128': 1.11.6 - '@webassemblyjs/utf8': 1.11.6 - - '@webassemblyjs/wast-printer@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@xtuc/long': 4.2.2 - - '@xtuc/ieee754@1.2.0': {} - - '@xtuc/long@4.2.2': {} - '@yarnpkg/fslib@2.10.3': dependencies: '@yarnpkg/libzip': 2.3.0 @@ -11525,10 +10486,6 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-import-attributes@1.9.5(acorn@8.12.1): - dependencies: - acorn: 8.12.1 - acorn-jsx@5.3.2(acorn@7.4.1): dependencies: acorn: 7.4.1 @@ -11559,10 +10516,6 @@ snapshots: transitivePeerDependencies: - supports-color - ajv-keywords@3.5.2(ajv@6.12.6): - dependencies: - ajv: 6.12.6 - ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -11751,10 +10704,6 @@ snapshots: assertion-error@2.0.1: {} - ast-types@0.13.4: - dependencies: - tslib: 2.6.3 - ast-types@0.16.1: dependencies: tslib: 2.6.3 @@ -11787,8 +10736,6 @@ snapshots: transitivePeerDependencies: - debug - b4a@1.6.6: {} - babel-core@7.0.0-bridge.0(@babel/core@7.24.8): dependencies: '@babel/core': 7.24.8 @@ -11885,39 +10832,12 @@ snapshots: balanced-match@1.0.2: {} - bare-events@2.4.2: - optional: true - - bare-fs@2.3.1: - dependencies: - bare-events: 2.4.2 - bare-path: 2.1.3 - bare-stream: 2.1.3 - optional: true - - bare-os@2.4.0: - optional: true - - bare-path@2.1.3: - dependencies: - bare-os: 2.4.0 - optional: true - - bare-stream@2.1.3: - dependencies: - streamx: 2.18.0 - optional: true - base64-js@1.5.1: {} - basic-ftp@5.0.5: {} - bidi-js@1.0.3: dependencies: require-from-string: 2.0.2 - big.js@5.2.2: {} - binary-extensions@2.3.0: {} bl@4.1.0: @@ -11985,6 +10905,7 @@ snapshots: electron-to-chromium: 1.5.7 node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.3) + optional: true browserstack-local@1.5.5: dependencies: @@ -12075,7 +10996,8 @@ snapshots: caniuse-lite@1.0.30001641: {} - caniuse-lite@1.0.30001651: {} + caniuse-lite@1.0.30001651: + optional: true canvas@2.11.2: dependencies: @@ -12190,15 +11112,6 @@ snapshots: transitivePeerDependencies: - supports-color - chrome-trace-event@1.0.4: {} - - chromium-bidi@0.6.0(devtools-protocol@0.0.1299070): - dependencies: - devtools-protocol: 0.0.1299070 - mitt: 3.0.1 - urlpattern-polyfill: 10.0.0 - zod: 3.23.8 - ci-info@3.9.0: {} citty@0.1.6: @@ -12288,7 +11201,8 @@ snapshots: commander@12.1.0: {} - commander@2.20.3: {} + commander@2.20.3: + optional: true commander@6.2.1: {} @@ -12390,15 +11304,6 @@ snapshots: path-type: 4.0.0 yaml: 1.10.2 - cosmiconfig@9.0.0(typescript@5.5.4): - dependencies: - env-paths: 2.2.1 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - parse-json: 5.2.0 - optionalDependencies: - typescript: 5.5.4 - crc-32@1.2.2: {} crc32-stream@4.0.3: @@ -12426,22 +11331,6 @@ snapshots: - ts-node optional: true - create-jest@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)): - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)) - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - optional: true - create-require@1.1.1: {} cross-env@7.0.3: @@ -12481,8 +11370,6 @@ snapshots: csstype@3.1.3: {} - data-uri-to-buffer@6.0.2: {} - data-urls@5.0.0: dependencies: whatwg-mimetype: 4.0.0 @@ -12526,10 +11413,6 @@ snapshots: optionalDependencies: supports-color: 8.1.1 - debug@4.3.4: - dependencies: - ms: 2.1.2 - debug@4.3.5: dependencies: ms: 2.1.2 @@ -12608,12 +11491,6 @@ snapshots: defu@6.1.4: {} - degenerator@5.0.1: - dependencies: - ast-types: 0.13.4 - escodegen: 2.1.0 - esprima: 4.0.1 - delayed-stream@1.0.0: {} delegates@1.0.0: {} @@ -12635,8 +11512,6 @@ snapshots: detect-newline@3.1.0: optional: true - devtools-protocol@0.0.1299070: {} - devtools-protocol@0.0.901419: {} devtools-protocol@0.0.915197: {} @@ -12722,7 +11597,8 @@ snapshots: electron-to-chromium@1.4.827: {} - electron-to-chromium@1.5.7: {} + electron-to-chromium@1.5.7: + optional: true emittery@0.13.1: optional: true @@ -12733,8 +11609,6 @@ snapshots: emoji-regex@9.2.2: {} - emojis-list@3.0.0: {} - encodeurl@1.0.2: {} end-of-stream@1.4.4: @@ -12755,15 +11629,8 @@ snapshots: engine.io-parser@5.2.3: {} - enhanced-resolve@5.17.1: - dependencies: - graceful-fs: 4.2.11 - tapable: 2.2.1 - entities@4.5.0: {} - env-paths@2.2.1: {} - envinfo@7.13.0: {} error-ex@1.3.2: @@ -12883,13 +11750,6 @@ snapshots: transitivePeerDependencies: - supports-color - esbuild-register@3.6.0(esbuild@0.21.5): - dependencies: - debug: 4.3.5 - esbuild: 0.21.5 - transitivePeerDependencies: - - supports-color - esbuild@0.21.5: optionalDependencies: '@esbuild/aix-ppc64': 0.21.5 @@ -13074,8 +11934,6 @@ snapshots: eventemitter3@5.0.1: {} - events@3.3.0: {} - execa@0.7.0: dependencies: cross-spawn: 5.1.0 @@ -13205,8 +12063,6 @@ snapshots: fast-equals@4.0.3: {} - fast-fifo@1.3.2: {} - fast-glob@3.3.2: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -13254,12 +12110,6 @@ snapshots: dependencies: flat-cache: 3.2.0 - file-loader@6.2.0(webpack@5.93.0(@swc/core@1.5.7)(esbuild@0.21.5)): - dependencies: - loader-utils: 2.0.4 - schema-utils: 3.3.0 - webpack: 5.93.0(@swc/core@1.5.7)(esbuild@0.21.5) - file-type@16.5.4: dependencies: readable-web-to-node-stream: 3.0.2 @@ -13438,19 +12288,10 @@ snapshots: get-stream@8.0.1: {} get-symbol-description@1.0.2: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - - get-uri@6.0.3: - dependencies: - basic-ftp: 5.0.5 - data-uri-to-buffer: 6.0.2 - debug: 4.3.5 - fs-extra: 11.2.0 - transitivePeerDependencies: - - supports-color + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 gifwrap@0.9.4: dependencies: @@ -13483,8 +12324,6 @@ snapshots: '@types/glob': 7.2.0 glob: 7.2.3 - glob-to-regexp@0.4.1: {} - glob@10.4.5: dependencies: foreground-child: 3.2.1 @@ -13589,8 +12428,6 @@ snapshots: growl@1.10.5: {} - harmony-reflect@1.6.2: {} - has-ansi@2.0.0: dependencies: ansi-regex: 2.1.1 @@ -13717,10 +12554,6 @@ snapshots: dependencies: safer-buffer: 2.1.2 - identity-obj-proxy@3.0.0: - dependencies: - harmony-reflect: 1.6.2 - ieee754@1.2.1: {} ignore@5.3.1: {} @@ -13784,11 +12617,6 @@ snapshots: hasown: 2.0.2 side-channel: 1.0.6 - ip-address@9.0.5: - dependencies: - jsbn: 1.1.0 - sprintf-js: 1.1.3 - ipaddr.js@1.9.1: {} is-absolute-url@4.0.1: {} @@ -13957,15 +12785,6 @@ snapshots: istanbul-lib-coverage@3.2.2: {} - istanbul-lib-instrument@4.0.3: - dependencies: - '@babel/core': 7.24.8 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.2 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - istanbul-lib-instrument@5.2.1: dependencies: '@babel/core': 7.25.2 @@ -14105,26 +12924,6 @@ snapshots: - ts-node optional: true - jest-cli@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)): - dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)) - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)) - exit: 0.1.2 - import-local: 3.2.0 - jest-config: 29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)) - jest-util: 29.7.0 - jest-validate: 29.7.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - optional: true - jest-config@29.7.0(@types/node@20.14.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@20.14.12)(typescript@5.5.4)): dependencies: '@babel/core': 7.25.2 @@ -14189,38 +12988,6 @@ snapshots: - supports-color optional: true - jest-config@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)): - dependencies: - '@babel/core': 7.25.2 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.25.2) - chalk: 4.1.2 - ci-info: 3.9.0 - deepmerge: 4.3.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-circus: 29.7.0(babel-plugin-macros@3.1.0) - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.7 - parse-json: 5.2.0 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 22.2.0 - ts-node: 10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4) - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - optional: true - jest-diff@28.1.3: dependencies: chalk: 4.1.2 @@ -14486,12 +13253,6 @@ snapshots: string-length: 4.0.2 optional: true - jest-worker@27.5.1: - dependencies: - '@types/node': 22.2.0 - merge-stream: 2.0.0 - supports-color: 8.1.1 - jest-worker@29.7.0: dependencies: '@types/node': 22.2.0 @@ -14513,19 +13274,6 @@ snapshots: - ts-node optional: true - jest@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)): - dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)) - '@jest/types': 29.6.3 - import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)) - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - optional: true - jpeg-js@0.4.4: {} js-sha256@0.11.0: {} @@ -14542,8 +13290,6 @@ snapshots: dependencies: argparse: 2.0.1 - jsbn@1.1.0: {} - jscodeshift@0.15.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)): dependencies: '@babel/core': 7.24.8 @@ -14716,14 +13462,6 @@ snapshots: pinkie-promise: 2.0.1 strip-bom: 2.0.0 - loader-runner@4.3.0: {} - - loader-utils@2.0.4: - dependencies: - big.js: 5.2.2 - emojis-list: 3.0.0 - json5: 2.2.3 - locate-path@3.0.0: dependencies: p-locate: 3.0.0 @@ -14805,12 +13543,6 @@ snapshots: dependencies: yallist: 3.1.1 - lru-cache@6.0.0: - dependencies: - yallist: 4.0.0 - - lru-cache@7.18.3: {} - lz-string@1.5.0: {} maath@0.10.8(@types/three@0.166.0)(three@0.166.1): @@ -14874,10 +13606,6 @@ snapshots: merge-descriptors@1.0.1: {} - merge-source-map@1.1.0: - dependencies: - source-map: 0.6.1 - merge-stream@2.0.0: {} merge2@1.4.1: {} @@ -14964,8 +13692,6 @@ snapshots: minipass: 3.3.6 yallist: 4.0.0 - mitt@3.0.1: {} - mkdirp@0.5.6: dependencies: minimist: 1.2.8 @@ -15026,8 +13752,6 @@ snapshots: neo-async@2.6.2: {} - netmask@2.0.2: {} - node-dir@0.1.17: dependencies: minimatch: 3.1.2 @@ -15045,7 +13769,8 @@ snapshots: node-releases@2.0.14: {} - node-releases@2.0.18: {} + node-releases@2.0.18: + optional: true node-vibrant@3.1.6(debug@4.3.5): dependencies: @@ -15214,24 +13939,6 @@ snapshots: p-try@2.2.0: {} - pac-proxy-agent@7.0.2: - dependencies: - '@tootallnate/quickjs-emscripten': 0.23.0 - agent-base: 7.1.1 - debug: 4.3.5 - get-uri: 6.0.3 - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.5 - pac-resolver: 7.0.1 - socks-proxy-agent: 8.0.4 - transitivePeerDependencies: - - supports-color - - pac-resolver@7.0.1: - dependencies: - degenerator: 5.0.1 - netmask: 2.0.2 - package-json-from-dist@1.0.0: {} pako@1.0.11: {} @@ -15391,8 +14098,6 @@ snapshots: prettier@3.3.2: {} - prettier@3.3.3: {} - pretty-format@27.5.1: dependencies: ansi-regex: 5.0.1 @@ -15422,8 +14127,6 @@ snapshots: progress@2.0.1: {} - progress@2.0.3: {} - promise-worker-transferable@1.0.4: dependencies: is-promise: 2.2.2 @@ -15445,19 +14148,6 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 - proxy-agent@6.4.0: - dependencies: - agent-base: 7.1.1 - debug: 4.3.5 - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.5 - lru-cache: 7.18.3 - pac-proxy-agent: 7.0.2 - proxy-from-env: 1.1.0 - socks-proxy-agent: 8.0.4 - transitivePeerDependencies: - - supports-color - proxy-from-env@1.1.0: {} ps-tree@1.2.0: @@ -15496,30 +14186,6 @@ snapshots: - supports-color - utf-8-validate - puppeteer-core@22.13.0: - dependencies: - '@puppeteer/browsers': 2.2.3 - chromium-bidi: 0.6.0(devtools-protocol@0.0.1299070) - debug: 4.3.5 - devtools-protocol: 0.0.1299070 - ws: 8.18.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - - puppeteer@22.13.0(typescript@5.5.4): - dependencies: - '@puppeteer/browsers': 2.2.3 - cosmiconfig: 9.0.0(typescript@5.5.4) - devtools-protocol: 0.0.1299070 - puppeteer-core: 22.13.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - typescript - - utf-8-validate - pure-rand@6.1.0: optional: true @@ -15541,12 +14207,8 @@ snapshots: queue-microtask@1.2.3: {} - queue-tick@1.0.1: {} - quick-lru@5.1.1: {} - quickselect@2.0.0: {} - randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 @@ -15562,10 +14224,6 @@ snapshots: iconv-lite: 0.4.24 unpipe: 1.0.0 - rbush@3.0.1: - dependencies: - quickselect: 2.0.0 - rc@1.2.8: dependencies: deep-extend: 0.6.0 @@ -15991,26 +14649,10 @@ snapshots: dependencies: loose-envify: 1.4.0 - schema-utils@2.7.1: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) - - schema-utils@3.3.0: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) - semver@5.7.2: {} semver@6.3.1: {} - semver@7.6.0: - dependencies: - lru-cache: 6.0.0 - semver@7.6.2: {} semver@7.6.3: {} @@ -16041,10 +14683,6 @@ snapshots: dependencies: randombytes: 2.1.0 - serialize-javascript@6.0.2: - dependencies: - randombytes: 2.1.0 - serve-handler@6.1.3: dependencies: bytes: 3.0.0 @@ -16156,8 +14794,6 @@ snapshots: ansi-styles: 6.2.1 is-fullwidth-code-point: 5.0.0 - smart-buffer@4.2.0: {} - socket.io-client@4.7.5: dependencies: '@socket.io/component-emitter': 3.1.2 @@ -16176,19 +14812,6 @@ snapshots: transitivePeerDependencies: - supports-color - socks-proxy-agent@8.0.4: - dependencies: - agent-base: 7.1.1 - debug: 4.3.5 - socks: 2.8.3 - transitivePeerDependencies: - - supports-color - - socks@2.8.3: - dependencies: - ip-address: 9.0.5 - smart-buffer: 4.2.0 - source-map-js@1.2.0: {} source-map-support@0.5.13: @@ -16235,8 +14858,6 @@ snapshots: sprintf-js@1.0.3: optional: true - sprintf-js@1.1.3: {} - stack-utils@2.0.6: dependencies: escape-string-regexp: 2.0.0 @@ -16293,56 +14914,12 @@ snapshots: - supports-color - utf-8-validate - storybook@8.2.6(@babel/preset-env@7.24.8(@babel/core@7.24.8)): - dependencies: - '@babel/core': 7.24.8 - '@babel/types': 7.24.9 - '@storybook/codemod': 8.2.6 - '@storybook/core': 8.2.6 - '@types/semver': 7.5.8 - '@yarnpkg/fslib': 2.10.3 - '@yarnpkg/libzip': 2.3.0 - chalk: 4.1.2 - commander: 6.2.1 - cross-spawn: 7.0.3 - detect-indent: 6.1.0 - envinfo: 7.13.0 - execa: 5.1.1 - fd-package-json: 1.2.0 - find-up: 5.0.0 - fs-extra: 11.2.0 - giget: 1.2.3 - globby: 14.0.2 - jscodeshift: 0.15.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) - leven: 3.1.0 - ora: 5.4.1 - prettier: 3.3.3 - prompts: 2.4.2 - semver: 7.6.3 - strip-json-comments: 3.1.1 - tempy: 3.1.0 - tiny-invariant: 1.3.3 - ts-dedent: 2.2.0 - transitivePeerDependencies: - - '@babel/preset-env' - - bufferutil - - supports-color - - utf-8-validate - stream-buffers@3.0.3: {} stream-combiner@0.0.4: dependencies: duplexer: 0.1.2 - streamx@2.18.0: - dependencies: - fast-fifo: 1.3.2 - queue-tick: 1.0.1 - text-decoder: 1.1.1 - optionalDependencies: - bare-events: 2.4.2 - string-argv@0.3.2: {} string-length@4.0.2: @@ -16495,8 +15072,6 @@ snapshots: symbol-tree@3.2.4: {} - tapable@2.2.1: {} - tar-fs@2.0.0: dependencies: chownr: 1.1.4 @@ -16504,14 +15079,6 @@ snapshots: pump: 3.0.0 tar-stream: 2.2.0 - tar-fs@3.0.5: - dependencies: - pump: 3.0.0 - tar-stream: 3.1.7 - optionalDependencies: - bare-fs: 2.3.1 - bare-path: 2.1.3 - tar-stream@2.2.0: dependencies: bl: 4.1.0 @@ -16520,12 +15087,6 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 - tar-stream@3.1.7: - dependencies: - b4a: 1.6.6 - fast-fifo: 1.3.2 - streamx: 2.18.0 - tar@6.2.1: dependencies: chownr: 2.0.0 @@ -16560,24 +15121,13 @@ snapshots: dependencies: execa: 0.7.0 - terser-webpack-plugin@5.3.10(@swc/core@1.5.7)(esbuild@0.21.5)(webpack@5.93.0(@swc/core@1.5.7)(esbuild@0.21.5)): - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - jest-worker: 27.5.1 - schema-utils: 3.3.0 - serialize-javascript: 6.0.2 - terser: 5.31.6 - webpack: 5.93.0(@swc/core@1.5.7)(esbuild@0.21.5) - optionalDependencies: - '@swc/core': 1.5.7 - esbuild: 0.21.5 - terser@5.31.6: dependencies: '@jridgewell/source-map': 0.3.6 acorn: 8.12.1 commander: 2.20.3 source-map-support: 0.5.21 + optional: true test-exclude@6.0.0: dependencies: @@ -16592,10 +15142,6 @@ snapshots: glob: 10.4.5 minimatch: 9.0.5 - text-decoder@1.1.1: - dependencies: - b4a: 1.6.6 - text-table@0.2.0: {} three-mesh-bvh@0.7.6(three@0.166.1): @@ -16728,27 +15274,6 @@ snapshots: '@swc/core': 1.5.7 optional: true - ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 22.2.0 - acorn: 8.12.1 - acorn-walk: 8.3.3 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.5.4 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - optionalDependencies: - '@swc/core': 1.5.7 - optional: true - ts-node@9.1.1(typescript@5.5.4): dependencies: arg: 4.1.3 @@ -16886,14 +15411,10 @@ snapshots: buffer: 5.7.1 through: 2.3.8 - unbzip2-stream@1.4.3: - dependencies: - buffer: 5.7.1 - through: 2.3.8 - undici-types@5.26.5: {} - undici-types@6.13.0: {} + undici-types@6.13.0: + optional: true unicode-canonical-property-names-ecmascript@2.0.0: {} @@ -16951,6 +15472,7 @@ snapshots: browserslist: 4.23.3 escalade: 3.1.2 picocolors: 1.0.1 + optional: true update-check@1.5.2: dependencies: @@ -16971,8 +15493,6 @@ snapshots: punycode: 1.4.1 qs: 6.12.3 - urlpattern-polyfill@10.0.0: {} - use-sync-external-store@1.2.0(react@18.3.1): dependencies: react: 18.3.1 @@ -17146,11 +15666,6 @@ snapshots: makeerror: 1.0.12 optional: true - watchpack@2.4.2: - dependencies: - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - wcwidth@1.0.1: dependencies: defaults: 1.0.4 @@ -17215,37 +15730,6 @@ snapshots: webpack-virtual-modules@0.6.2: {} - webpack@5.93.0(@swc/core@1.5.7)(esbuild@0.21.5): - dependencies: - '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.5 - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/wasm-edit': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - acorn: 8.12.1 - acorn-import-attributes: 1.9.5(acorn@8.12.1) - browserslist: 4.23.3 - chrome-trace-event: 1.0.4 - enhanced-resolve: 5.17.1 - es-module-lexer: 1.5.4 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.0 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 3.3.0 - tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.5.7)(esbuild@0.21.5)(webpack@5.93.0(@swc/core@1.5.7)(esbuild@0.21.5)) - watchpack: 2.4.2 - webpack-sources: 3.2.3 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - whatwg-encoding@3.1.1: dependencies: iconv-lite: 0.6.3 @@ -17459,8 +15943,6 @@ snapshots: compress-commons: 4.1.2 readable-stream: 3.6.2 - zod@3.23.8: {} - zustand@3.7.2(react@18.3.1): optionalDependencies: react: 18.3.1 From 4a7da8c945dace552edfa21af12d6a661e8d22af Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Fri, 30 Aug 2024 06:29:32 +0000 Subject: [PATCH 02/30] migrate storybook Signed-off-by: Teo Koon Peng --- packages/dashboard/.storybook/main.ts | 2 +- packages/dashboard/.storybook/preview.tsx | 25 +- packages/dashboard/app-config.json | 42 --- packages/dashboard/app-config.schema.json | 241 ------------------ packages/dashboard/index.html | 18 -- packages/dashboard/package.json | 3 +- packages/dashboard/src/app-config.test.ts | 19 -- packages/dashboard/src/app-config.ts | 140 ---------- packages/dashboard/src/app.css | 8 - packages/dashboard/src/app.tsx | 103 -------- .../admin/add-permission-dialog.stories.tsx | 2 +- .../admin/create-role-dialog.stories.tsx | 2 +- .../admin/create-user-dialog.stories.tsx | 2 +- .../src/components/admin/drawer.stories.tsx | 2 +- .../admin/manage-roles-dialog.stories.tsx | 2 +- .../admin/permissions-card.stories.tsx | 2 +- .../admin/role-list-card.stories.tsx | 2 +- .../admin/user-list-card.stories.tsx | 2 +- .../components/admin/user-profile.stories.tsx | 2 +- .../beacons/beacon-table-datagrid.stories.tsx | 2 +- .../beacons/beacon-table-datagrid.test.tsx | 2 +- ...{test-utils.spec.ts => test-utils.test.ts} | 0 .../confirmation-dialog.stories.tsx | 2 +- .../doors/door-table-datagrid.stories.tsx | 28 +- .../lifts/lift-request-dialog.test.tsx | 2 +- .../lifts/lift-table-datagrid.stories.tsx | 30 ++- .../lifts/lift-table-datagrid.test.tsx | 2 +- ...{test-utils.spec.ts => test-utils.test.ts} | 0 .../src/components/login-card.stories.tsx | 2 +- .../robots/mutex-group-table.stories.tsx | 30 ++- .../components/robots/robot-info.stories.tsx | 2 +- ...obot-info.spec.tsx => robot-info.test.tsx} | 0 .../robots/robot-table-datagrid.stories.tsx | 80 +++--- .../robots/robot-table-datagrid.test.tsx | 2 +- ...{test-utils.spec.ts => test-utils.test.ts} | 0 .../components/tasks/task-info.stories.tsx | 2 +- .../src/components/transfer-list.stories.tsx | 2 +- ...{test-utils.spec.ts => test-utils.test.ts} | 0 ...{test-utils.spec.ts => test-utils.test.ts} | 0 .../workcells/workcell-panel.stories.tsx | 2 +- .../workcells/workcell-panel.test.tsx | 2 +- .../workcells/workcell-table.test.tsx | 2 +- packages/dashboard/src/index.tsx | 6 - .../src/pages/login-page.stories.tsx | 6 +- .../dashboard/src/utils/test-utils.test.tsx | 7 +- packages/dashboard/src/vite-env.d.ts | 6 - packages/dashboard/tsconfig.app.json | 3 +- packages/dashboard/tsconfig.gen.json | 7 - packages/dashboard/tsconfig.node.json | 2 +- packages/dashboard/vite.config.ts | 60 +---- 50 files changed, 166 insertions(+), 744 deletions(-) delete mode 100644 packages/dashboard/app-config.json delete mode 100644 packages/dashboard/app-config.schema.json delete mode 100644 packages/dashboard/index.html delete mode 100644 packages/dashboard/src/app-config.test.ts delete mode 100644 packages/dashboard/src/app-config.ts delete mode 100644 packages/dashboard/src/app.css delete mode 100644 packages/dashboard/src/app.tsx rename packages/dashboard/src/components/beacons/{test-utils.spec.ts => test-utils.test.ts} (100%) rename packages/dashboard/src/components/lifts/{test-utils.spec.ts => test-utils.test.ts} (100%) rename packages/dashboard/src/components/robots/{robot-info.spec.tsx => robot-info.test.tsx} (100%) rename packages/dashboard/src/components/robots/{test-utils.spec.ts => test-utils.test.ts} (100%) rename packages/dashboard/src/components/window/{test-utils.spec.ts => test-utils.test.ts} (100%) rename packages/dashboard/src/components/workcells/{test-utils.spec.ts => test-utils.test.ts} (100%) delete mode 100644 packages/dashboard/src/index.tsx delete mode 100644 packages/dashboard/src/vite-env.d.ts delete mode 100644 packages/dashboard/tsconfig.gen.json diff --git a/packages/dashboard/.storybook/main.ts b/packages/dashboard/.storybook/main.ts index 8218eaff2..18bbba442 100644 --- a/packages/dashboard/.storybook/main.ts +++ b/packages/dashboard/.storybook/main.ts @@ -1,7 +1,7 @@ import type { StorybookConfig } from '@storybook/react-vite'; const config: StorybookConfig = { - stories: ['../lib/**/*.stories.@(js|jsx|mjs|ts|tsx)'], + stories: ['../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'], addons: [ '@storybook/addon-onboarding', '@storybook/addon-links', diff --git a/packages/dashboard/.storybook/preview.tsx b/packages/dashboard/.storybook/preview.tsx index ad6dd8a9a..9f74cc1a2 100644 --- a/packages/dashboard/.storybook/preview.tsx +++ b/packages/dashboard/.storybook/preview.tsx @@ -1,5 +1,6 @@ +import { CssBaseline } from '@mui/material'; import { Decorator, Preview } from '@storybook/react'; -import React from 'react'; +import { TestProviders } from 'rmf-dashboard/utils/test-utils.test'; import { LocalizationProvider } from '../src/components/locale'; @@ -16,25 +17,15 @@ const preview: Preview = { export default preview; -const withLocalization: Decorator = (Story, context) => { +const withBaseProviders: Decorator = (Story, context) => { return ( - + + + + ); }; -export const decorators = [withLocalization]; - -export const globalTypes = { - theme: { - name: 'Theme', - description: 'Global theme for components', - defaultValue: 'rmf-light', - toolbar: { - icon: 'circlehollow', - // Array of plain string values or MenuItem shape (see below) - items: ['material-default', 'rmf-light', 'rmf-dark'], - }, - }, -}; +export const decorators = [withBaseProviders]; diff --git a/packages/dashboard/app-config.json b/packages/dashboard/app-config.json deleted file mode 100644 index e77f0a0d6..000000000 --- a/packages/dashboard/app-config.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "$schema": "./app-config.schema.json", - "rmfServerUrl": "http://localhost:8000", - "trajectoryServerUrl": "ws://localhost:8006", - "authConfig": {}, - "helpLink": "https://osrf.github.io/ros2multirobotbook/rmf-core.html", - "reportIssue": "https://github.com/open-rmf/rmf-web/issues", - "pickupZones": [], - "defaultZoom": 20, - "defaultRobotZoom": 6, - "attributionPrefix": "OSRC-SG", - "defaultMapLevel": "L1", - "allowedTasks": [ - { - "taskDefinitionId": "patrol" - }, - { - "taskDefinitionId": "delivery" - }, - { - "taskDefinitionId": "compose-clean" - }, - { - "taskDefinitionId": "custom_compose" - } - ], - "resources": { - "default": { - "fleets": {}, - "logos": { - "header": "/resources/defaultLogo.png" - } - } - }, - "cartIds": [], - "buildConfig": { - "baseUrl": "/", - "authProvider": "stub", - "customTabs": false, - "adminTab": false - } -} diff --git a/packages/dashboard/app-config.schema.json b/packages/dashboard/app-config.schema.json deleted file mode 100644 index 08d4ddfd0..000000000 --- a/packages/dashboard/app-config.schema.json +++ /dev/null @@ -1,241 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "definitions": { - "AllowedTask": { - "properties": { - "displayName": { - "description": "Configure the display name for the task definition.", - "type": "string" - }, - "scheduleEventColor": { - "description": "The color of the event when rendered on the task scheduler in the form of a CSS color string.", - "type": "string" - }, - "taskDefinitionId": { - "description": "The task definition to configure.", - "enum": [ - "compose-clean", - "custom_compose", - "delivery", - "patrol" - ], - "type": "string" - } - }, - "required": [ - "taskDefinitionId" - ], - "type": "object" - }, - "BuildConfig": { - "description": "These will be injected at build time, they CANNOT be changed after the bundle is built.", - "properties": { - "adminTab": { - "description": "Whether the admin tab should be enabled, defaults to false.", - "type": "boolean" - }, - "authProvider": { - "enum": [ - "keycloak", - "stub" - ], - "type": "string" - }, - "baseUrl": { - "description": "The base url that the app is served from, this MUST end with a slash.", - "type": "string" - }, - "customTabs": { - "description": "Whether custom tabs should be enabled, defaults to false.", - "type": "boolean" - } - }, - "required": [ - "authProvider", - "baseUrl" - ], - "type": "object" - }, - "FleetResource": { - "properties": { - "default": { - "$ref": "#/definitions/RobotResource" - } - }, - "required": [ - "default" - ], - "type": "object" - }, - "KeycloakAuthConfig": { - "properties": { - "clientId": { - "type": "string" - }, - "realm": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "clientId", - "realm", - "url" - ], - "type": "object" - }, - "LogoResource": { - "properties": { - "header": { - "description": "Path to an image to be used as the logo on the app bar.", - "type": "string" - } - }, - "required": [ - "header" - ], - "type": "object" - }, - "Resources": { - "properties": { - "fleets": { - "additionalProperties": { - "$ref": "#/definitions/FleetResource" - }, - "type": "object" - }, - "logos": { - "$ref": "#/definitions/LogoResource" - } - }, - "required": [ - "fleets", - "logos" - ], - "type": "object" - }, - "RobotResource": { - "properties": { - "icon": { - "description": "Path to an image to be used as the robot's icon.", - "type": "string" - }, - "scale": { - "description": "Scale of the image to match the robot's dimensions.", - "type": "number" - } - }, - "type": "object" - }, - "StubAuthConfig": { - "type": "object" - } - }, - "properties": { - "alertAudioPath": { - "description": "Url to a file to be played when an alert occurs on the dashboard.", - "type": "string" - }, - "allowedTasks": { - "description": "List of allowed tasks that can be requested", - "items": { - "$ref": "#/definitions/AllowedTask" - }, - "type": "array" - }, - "attributionPrefix": { - "description": "Branding to be shown on the corner of the map.", - "type": "string" - }, - "authConfig": { - "anyOf": [ - { - "$ref": "#/definitions/StubAuthConfig" - }, - { - "$ref": "#/definitions/KeycloakAuthConfig" - } - ], - "description": "Config for the authentication provider." - }, - "buildConfig": { - "$ref": "#/definitions/BuildConfig" - }, - "cartIds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "defaultMapLevel": { - "description": "The default level to be selected when the map is initially loaded.", - "type": "string" - }, - "defaultRobotZoom": { - "description": "The default zoom level when a robot is focused on the map.", - "type": "number" - }, - "defaultZoom": { - "description": "The default zoom level when the map is initially loaded.", - "type": "number" - }, - "helpLink": { - "description": "Url to be linked for the \"help\" button.", - "type": "string" - }, - "pickupZones": { - "description": "List of available pickup zones used for delivery tasks.", - "items": { - "type": "string" - }, - "type": "array" - }, - "reportIssue": { - "description": "Url to be linked for the \"report issue\" button.", - "type": "string" - }, - "resources": { - "additionalProperties": { - "$ref": "#/definitions/Resources" - }, - "description": "Set various resources (icons, logo etc) used. Different resource can be used based on the theme, `default` is always required.", - "properties": { - "default": { - "$ref": "#/definitions/Resources" - } - }, - "required": [ - "default" - ], - "type": "object" - }, - "rmfServerUrl": { - "description": "Url of the RMF api server.", - "type": "string" - }, - "trajectoryServerUrl": { - "description": "Url of the RMF trajectory server.", - "type": "string" - } - }, - "required": [ - "allowedTasks", - "attributionPrefix", - "authConfig", - "buildConfig", - "cartIds", - "defaultMapLevel", - "defaultRobotZoom", - "defaultZoom", - "helpLink", - "pickupZones", - "reportIssue", - "resources", - "rmfServerUrl", - "trajectoryServerUrl" - ], - "type": "object" -} - diff --git a/packages/dashboard/index.html b/packages/dashboard/index.html deleted file mode 100644 index d78460273..000000000 --- a/packages/dashboard/index.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - RMF Dashboard - - -
- - - diff --git a/packages/dashboard/package.json b/packages/dashboard/package.json index 10b42cc86..8e7e16efe 100644 --- a/packages/dashboard/package.json +++ b/packages/dashboard/package.json @@ -8,11 +8,10 @@ "build-storybook": "storybook build", "gen-app-config-schema": "pnpm typescript-json-schema tsconfig.gen.json AppConfig --required -o app-config.schema.json", "lint": "tsc --build && eslint --max-warnings 0 src", - "start": "concurrently npm:start:rmf-server npm:start:react", + "start": "concurrently npm:start:rmf-server 'npm:start:example examples/demo'", "start:airport": "RMF_DASHBOARD_DEMO_MAP=airport_terminal.launch.xml pnpm run start:sim", "start:clinic": "RMF_DASHBOARD_DEMO_MAP=clinic.launch.xml pnpm run start:sim", "start:example": "vite -c examples/shared/vite.config.ts", - "start:react": "pnpm run --filter {.}^... build && vite", "start:rmf": "node scripts/start-rmf.js", "start:rmf-server": "RMF_SERVER_USE_SIM_TIME=true npm --prefix ../api-server start", "start:rmf-server:psql": "RMF_SERVER_USE_SIM_TIME=true npm run --prefix ../api-server start:psql", diff --git a/packages/dashboard/src/app-config.test.ts b/packages/dashboard/src/app-config.test.ts deleted file mode 100644 index 52e76c200..000000000 --- a/packages/dashboard/src/app-config.test.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * @vitest-environment node - */ - -import childProcess from 'child_process'; -import fs from 'fs'; -import { expect, it } from 'vitest'; - -it('app-config json schema is up to date', () => { - const curSchema = fs.readFileSync('app-config.schema.json'); - const newSchema = childProcess.execSync( - 'pnpm typescript-json-schema tsconfig.gen.json AppConfig --required', - ); - if (!newSchema.equals(curSchema)) { - expect.fail( - 'app config schema has changed, please run `pnpm gen-app-config-schema` to update it', - ); - } -}); diff --git a/packages/dashboard/src/app-config.ts b/packages/dashboard/src/app-config.ts deleted file mode 100644 index 311b1884b..000000000 --- a/packages/dashboard/src/app-config.ts +++ /dev/null @@ -1,140 +0,0 @@ -import testConfig from '../app-config.json'; -import { AllowedTask } from './components'; -import { Resources } from './hooks/use-resources'; -import { Authenticator } from './services/authenticator'; -import { KeycloakAuthenticator } from './services/keycloak'; -import { StubAuthenticator } from './services/stub-authenticator'; - -export interface StubAuthConfig {} - -export interface KeycloakAuthConfig { - url: string; - realm: string; - clientId: string; -} - -/** - * These config are exposed as a global variable. They can be changed after the bundle is built. - * To do so, use a placeholder value like `__RMF_SERVER_URL__` and do a search and replace on - * `index.html` before serving it. - */ -export interface RuntimeConfig { - /** - * Url of the RMF api server. - */ - rmfServerUrl: string; - - /** - * Url of the RMF trajectory server. - */ - trajectoryServerUrl: string; - - /** - * Config for the authentication provider. - */ - authConfig: KeycloakAuthConfig | StubAuthConfig; - - /** - * Url to be linked for the "help" button. - */ - helpLink: string; - - /** - * Url to be linked for the "report issue" button. - */ - reportIssue: string; - - /** - * List of available pickup zones used for delivery tasks. - */ - pickupZones: string[]; // FIXME(koonpeng): Should be part of task definition - - /** - * The default zoom level when the map is initially loaded. - */ - defaultZoom: number; - - /** - * The default zoom level when a robot is focused on the map. - */ - defaultRobotZoom: number; - - /** - * Branding to be shown on the corner of the map. - */ - attributionPrefix: string; - - /** - * The default level to be selected when the map is initially loaded. - */ - defaultMapLevel: string; - - /** - * List of allowed tasks that can be requested - */ - allowedTasks: AllowedTask[]; - - /** - * Url to a file to be played when an alert occurs on the dashboard. - */ - alertAudioPath?: string; - - /** - * Set various resources (icons, logo etc) used. Different resource can be used based on the theme, `default` is always required. - */ - resources: { [theme: string]: Resources; default: Resources }; - - cartIds: string[]; -} - -/** - * These will be injected at build time, they CANNOT be changed after the bundle is built. - */ -export interface BuildConfig { - /** - * The base url that the app is served from, this MUST end with a slash. - */ - baseUrl: string; - - authProvider: 'keycloak' | 'stub'; - - /** - * Whether custom tabs should be enabled, defaults to false. - */ - customTabs?: boolean; - - /** - * Whether the admin tab should be enabled, defaults to false. - */ - adminTab?: boolean; -} - -export interface AppConfig extends RuntimeConfig { - buildConfig: BuildConfig; -} - -declare const APP_CONFIG: AppConfig; - -export const appConfig: AppConfig = (() => { - if (import.meta.env.PROD) { - return APP_CONFIG; - } else { - // globals cannot be injected in tests so we need a fallback, this should be - // removed by terser in prod builds. - return testConfig as AppConfig; - } -})(); - -export const authenticator: Authenticator = (() => { - // must use if statement instead of switch for vite tree shaking to work - if (APP_CONFIG_AUTH_PROVIDER === 'keycloak') { - return new KeycloakAuthenticator( - APP_CONFIG.authConfig as KeycloakAuthConfig, - `${import.meta.env.BASE_URL}silent-check-sso.html`, - ); - } else if (APP_CONFIG_AUTH_PROVIDER === 'stub') { - return new StubAuthenticator(); - } else { - throw new Error('unknown auth provider'); - } -})(); diff --git a/packages/dashboard/src/app.css b/packages/dashboard/src/app.css deleted file mode 100644 index 2319b13e4..000000000 --- a/packages/dashboard/src/app.css +++ /dev/null @@ -1,8 +0,0 @@ -html, -body, -#root { - height: 100%; - width: 100%; - margin: 0; - padding: 0; -} diff --git a/packages/dashboard/src/app.tsx b/packages/dashboard/src/app.tsx deleted file mode 100644 index d35cef61b..000000000 --- a/packages/dashboard/src/app.tsx +++ /dev/null @@ -1,103 +0,0 @@ -import '@fontsource/roboto/300.css'; -import '@fontsource/roboto/400.css'; -import '@fontsource/roboto/500.css'; -import '@fontsource/roboto/700.css'; -import './app.css'; - -import { appConfig } from './app-config'; -import { RmfDashboard } from './components'; -import { InitialWindow, LocallyPersistentWorkspace, Workspace } from './components/workspace'; -import { MicroAppManifest } from './micro-apps'; -import doorsApp from './micro-apps/doors-app'; -import liftsApp from './micro-apps/lifts-app'; -import createMapApp from './micro-apps/map-app'; -import robotMutexGroupsApp from './micro-apps/robot-mutex-groups-app'; -import robotsApp from './micro-apps/robots-app'; -import tasksApp from './micro-apps/tasks-app'; -import StubAuthenticator from './services/stub-authenticator'; - -const mapApp = createMapApp({ - attributionPrefix: appConfig.attributionPrefix, - defaultMapLevel: appConfig.defaultMapLevel, - defaultRobotZoom: appConfig.defaultRobotZoom, - defaultZoom: appConfig.defaultZoom, -}); - -const appRegistry: MicroAppManifest[] = [ - mapApp, - doorsApp, - liftsApp, - robotsApp, - robotMutexGroupsApp, - tasksApp, -]; - -const homeWorkspace: InitialWindow[] = [ - { - layout: { x: 0, y: 0, w: 12, h: 6 }, - microApp: mapApp, - }, -]; - -const robotsWorkspace: InitialWindow[] = [ - { - layout: { x: 0, y: 0, w: 7, h: 4 }, - microApp: robotsApp, - }, - { layout: { x: 8, y: 0, w: 5, h: 8 }, microApp: mapApp }, - { layout: { x: 0, y: 0, w: 7, h: 4 }, microApp: doorsApp }, - { layout: { x: 0, y: 0, w: 7, h: 4 }, microApp: liftsApp }, - { layout: { x: 8, y: 0, w: 5, h: 4 }, microApp: robotMutexGroupsApp }, -]; - -const tasksWorkspace: InitialWindow[] = [ - { layout: { x: 0, y: 0, w: 7, h: 8 }, microApp: tasksApp }, - { layout: { x: 8, y: 0, w: 5, h: 8 }, microApp: mapApp }, -]; - -export default function App() { - return ( - , - }, - { - name: 'Robots', - route: 'robots', - element: , - }, - { - name: 'Tasks', - route: 'tasks', - element: , - }, - { - name: 'Custom', - route: 'custom', - element: ( - - ), - }, - ]} - /> - ); -} diff --git a/packages/dashboard/src/components/admin/add-permission-dialog.stories.tsx b/packages/dashboard/src/components/admin/add-permission-dialog.stories.tsx index 9d5558ff9..bd5ae2d21 100644 --- a/packages/dashboard/src/components/admin/add-permission-dialog.stories.tsx +++ b/packages/dashboard/src/components/admin/add-permission-dialog.stories.tsx @@ -10,7 +10,7 @@ export default { type Story = StoryObj; export const Default: Story = { - storyName: 'Add Permission Dialog', + name: 'Add Permission Dialog', render: (args) => ( ; export const Default: Story = { - storyName: 'Create Role Dialog', + name: 'Create Role Dialog', render: (args) => ( ; export const Default: Story = { - storyName: 'Create User Dialog', + name: 'Create User Dialog', render: (args) => ( ; export const Default: Story = { - storyName: 'Drawer', + name: 'Drawer', }; diff --git a/packages/dashboard/src/components/admin/manage-roles-dialog.stories.tsx b/packages/dashboard/src/components/admin/manage-roles-dialog.stories.tsx index 8f089a85e..05fb40bc8 100644 --- a/packages/dashboard/src/components/admin/manage-roles-dialog.stories.tsx +++ b/packages/dashboard/src/components/admin/manage-roles-dialog.stories.tsx @@ -15,7 +15,7 @@ for (let i = 0; i < 5; i++) { type Story = StoryObj; export const Default: Story = { - storyName: 'Manage Roles Card', + name: 'Manage Roles Card', args: { assignedRoles: ['role1'], }, diff --git a/packages/dashboard/src/components/admin/permissions-card.stories.tsx b/packages/dashboard/src/components/admin/permissions-card.stories.tsx index 84ad07cd3..e9df0e695 100644 --- a/packages/dashboard/src/components/admin/permissions-card.stories.tsx +++ b/packages/dashboard/src/components/admin/permissions-card.stories.tsx @@ -19,7 +19,7 @@ export default { type Story = StoryObj; export const Default: Story = { - storyName: 'Permissions Card', + name: 'Permissions Card', render: (args) => ( new Promise((res) => setTimeout(res, 100))} /> ), diff --git a/packages/dashboard/src/components/admin/role-list-card.stories.tsx b/packages/dashboard/src/components/admin/role-list-card.stories.tsx index ded434fa1..72825c2d9 100644 --- a/packages/dashboard/src/components/admin/role-list-card.stories.tsx +++ b/packages/dashboard/src/components/admin/role-list-card.stories.tsx @@ -11,7 +11,7 @@ export default { type Story = StoryObj; export const Default: Story = { - storyName: 'Role List Card', + name: 'Role List Card', render: (args) => ( ( ; export const Default: Story = { - storyName: 'User Profile Card', + name: 'User Profile Card', render: (args) => { const [user, setUser] = React.useState({ username: 'example', diff --git a/packages/dashboard/src/components/beacons/beacon-table-datagrid.stories.tsx b/packages/dashboard/src/components/beacons/beacon-table-datagrid.stories.tsx index 3e719eb91..35127766e 100644 --- a/packages/dashboard/src/components/beacons/beacon-table-datagrid.stories.tsx +++ b/packages/dashboard/src/components/beacons/beacon-table-datagrid.stories.tsx @@ -1,5 +1,5 @@ import { BeaconDataGridTable } from './beacon-table-datagrid'; -import { makeBeaconState } from './test-utils.spec'; +import { makeBeaconState } from './test-utils.test'; export default { title: 'BeaconDataGridTable', diff --git a/packages/dashboard/src/components/beacons/beacon-table-datagrid.test.tsx b/packages/dashboard/src/components/beacons/beacon-table-datagrid.test.tsx index 192a866b1..61069a37c 100644 --- a/packages/dashboard/src/components/beacons/beacon-table-datagrid.test.tsx +++ b/packages/dashboard/src/components/beacons/beacon-table-datagrid.test.tsx @@ -2,7 +2,7 @@ import { render } from '@testing-library/react'; import { describe, expect, it } from 'vitest'; import { BeaconDataGridTable } from './beacon-table-datagrid'; -import { makeBeaconState } from './test-utils.spec'; +import { makeBeaconState } from './test-utils.test'; describe('BeaconDataGridTable', () => { it('renders basic beacons data correctly', () => { diff --git a/packages/dashboard/src/components/beacons/test-utils.spec.ts b/packages/dashboard/src/components/beacons/test-utils.test.ts similarity index 100% rename from packages/dashboard/src/components/beacons/test-utils.spec.ts rename to packages/dashboard/src/components/beacons/test-utils.test.ts diff --git a/packages/dashboard/src/components/confirmation-dialog.stories.tsx b/packages/dashboard/src/components/confirmation-dialog.stories.tsx index 14c89b4dd..3f5f02099 100644 --- a/packages/dashboard/src/components/confirmation-dialog.stories.tsx +++ b/packages/dashboard/src/components/confirmation-dialog.stories.tsx @@ -14,7 +14,7 @@ export default { type Story = StoryObj; export const Default: Story = { - storyName: 'Confirmation Dialog', + name: 'Confirmation Dialog', render: (args) => ( = { title: 'DoorDataGridTable', + component: DoorDataGridTable, + decorators: [ + (Story) => ( +
+ +
+ ), + ], }; -export const Default = () => ; -export const Empty = () => ; +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: { + doors: mockDoors, + }, +}; + +export const Empty: Story = { + args: { + doors: [], + }, +}; diff --git a/packages/dashboard/src/components/lifts/lift-request-dialog.test.tsx b/packages/dashboard/src/components/lifts/lift-request-dialog.test.tsx index 52e5b0c38..96b15dd3d 100644 --- a/packages/dashboard/src/components/lifts/lift-request-dialog.test.tsx +++ b/packages/dashboard/src/components/lifts/lift-request-dialog.test.tsx @@ -4,7 +4,7 @@ import { describe, expect, it, vi } from 'vitest'; import { LiftRequestDialog } from './lift-request-dialog'; import { requestDoorModes, requestModes } from './lift-utils'; -import { makeLift, makeLiftState } from './test-utils.spec'; +import { makeLift, makeLiftState } from './test-utils.test'; describe('Lift request form', () => { it('destination is required', async () => { diff --git a/packages/dashboard/src/components/lifts/lift-table-datagrid.stories.tsx b/packages/dashboard/src/components/lifts/lift-table-datagrid.stories.tsx index ffaaf0f24..ebaa8da49 100644 --- a/packages/dashboard/src/components/lifts/lift-table-datagrid.stories.tsx +++ b/packages/dashboard/src/components/lifts/lift-table-datagrid.stories.tsx @@ -1,7 +1,8 @@ +import { Meta, StoryObj } from '@storybook/react'; import { LiftState as RmfLiftState } from 'rmf-models/ros/rmf_lift_msgs/msg'; import { LiftDataGridTable, LiftTableData } from './lift-table-datagrid'; -import { makeLift } from './test-utils.spec'; +import { makeLift } from './test-utils.test'; const lift = makeLift(); const mockLifts: LiftTableData[] = [ @@ -16,9 +17,30 @@ const mockLifts: LiftTableData[] = [ }, ]; -export default { +const meta: Meta = { title: 'LiftDataGridTable', + component: LiftDataGridTable, + decorators: [ + (Story) => ( +
+ +
+ ), + ], }; -export const Default = () => ; -export const Empty = () => ; +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: { + lifts: mockLifts, + }, +}; + +export const Empty: Story = { + args: { + lifts: [], + }, +}; diff --git a/packages/dashboard/src/components/lifts/lift-table-datagrid.test.tsx b/packages/dashboard/src/components/lifts/lift-table-datagrid.test.tsx index b8e8ed8f1..bddc523af 100644 --- a/packages/dashboard/src/components/lifts/lift-table-datagrid.test.tsx +++ b/packages/dashboard/src/components/lifts/lift-table-datagrid.test.tsx @@ -3,7 +3,7 @@ import { LiftState as RmfLiftState } from 'rmf-models/ros/rmf_lift_msgs/msg'; import { describe, expect, it } from 'vitest'; import { LiftDataGridTable, LiftTableData } from './lift-table-datagrid'; -import { makeLift } from './test-utils.spec'; +import { makeLift } from './test-utils.test'; describe('LiftDataGridTable', () => { const lift = makeLift(); diff --git a/packages/dashboard/src/components/lifts/test-utils.spec.ts b/packages/dashboard/src/components/lifts/test-utils.test.ts similarity index 100% rename from packages/dashboard/src/components/lifts/test-utils.spec.ts rename to packages/dashboard/src/components/lifts/test-utils.test.ts diff --git a/packages/dashboard/src/components/login-card.stories.tsx b/packages/dashboard/src/components/login-card.stories.tsx index 6aa2ea3fb..3abaa6833 100644 --- a/packages/dashboard/src/components/login-card.stories.tsx +++ b/packages/dashboard/src/components/login-card.stories.tsx @@ -20,6 +20,6 @@ export default { type Story = StoryObj; export const Default: Story = { - storyName: 'Login Card', + name: 'Login Card', render: (args) => , }; diff --git a/packages/dashboard/src/components/robots/mutex-group-table.stories.tsx b/packages/dashboard/src/components/robots/mutex-group-table.stories.tsx index b9dcfcd1f..18e8ec442 100644 --- a/packages/dashboard/src/components/robots/mutex-group-table.stories.tsx +++ b/packages/dashboard/src/components/robots/mutex-group-table.stories.tsx @@ -1,14 +1,26 @@ -import { Meta } from '@storybook/react'; +import { Meta, StoryObj } from '@storybook/react'; import { MutexGroupTable } from './mutex-group-table'; -export default { +const meta: Meta = { title: 'MutexGroupTable', -} satisfies Meta; + component: MutexGroupTable, + decorators: [ + (Story) => ( +
+ +
+ ), + ], +}; -export function Default() { - ; + +export const Default: Story = { + args: { + mutexGroups: [ { name: 'group1', lockedBy: 'fleet1/robot1', @@ -19,6 +31,6 @@ export function Default() { lockedBy: 'fleet1/robot1', requestedBy: ['fleet1/robot2'], }, - ]} - />; -} + ], + }, +}; diff --git a/packages/dashboard/src/components/robots/robot-info.stories.tsx b/packages/dashboard/src/components/robots/robot-info.stories.tsx index c098c1d7e..2097ae4b3 100644 --- a/packages/dashboard/src/components/robots/robot-info.stories.tsx +++ b/packages/dashboard/src/components/robots/robot-info.stories.tsx @@ -10,7 +10,7 @@ export default { type Story = StoryObj; export const Default: Story = { - storyName: 'Detailed Info', + name: 'Detailed Info', args: { robotName: 'Robot Name', assignedTask: 'mytask', diff --git a/packages/dashboard/src/components/robots/robot-info.spec.tsx b/packages/dashboard/src/components/robots/robot-info.test.tsx similarity index 100% rename from packages/dashboard/src/components/robots/robot-info.spec.tsx rename to packages/dashboard/src/components/robots/robot-info.test.tsx diff --git a/packages/dashboard/src/components/robots/robot-table-datagrid.stories.tsx b/packages/dashboard/src/components/robots/robot-table-datagrid.stories.tsx index 8080b6b62..35b0c189f 100644 --- a/packages/dashboard/src/components/robots/robot-table-datagrid.stories.tsx +++ b/packages/dashboard/src/components/robots/robot-table-datagrid.stories.tsx @@ -1,41 +1,51 @@ -import { Meta } from '@storybook/react'; +import { Meta, StoryObj } from '@storybook/react'; import { ApiServerModelsRmfApiRobotStateStatus as RobotStatus } from 'api-client'; import { RobotDataGridTable } from './robot-table-datagrid'; -export default { +const meta: Meta = { title: 'RobotDataGridTable', -} satisfies Meta; + component: RobotDataGridTable, + decorators: [ + (Story) => ( +
+ +
+ ), + ], +}; -export function Default() { - return ( - - ); -} +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: { + robots: [ + { + fleet: 'Fleet A', + name: 'Robot 1', + estFinishTime: new Date('2023-05-01T09:00:00').getTime(), + battery: 0.8, + lastUpdateTime: new Date('2023-05-01T08:30:00').getTime(), + status: RobotStatus.Working, + }, + { + fleet: 'Fleet B', + name: 'Robot 2', + estFinishTime: new Date('2023-05-01T10:30:00').getTime(), + battery: 0.6, + lastUpdateTime: new Date('2023-05-01T10:00:00').getTime(), + status: RobotStatus.Charging, + }, + { + fleet: 'Fleet A', + name: 'Robot 3', + estFinishTime: new Date('2023-05-01T11:45:00').getTime(), + battery: 0.9, + lastUpdateTime: new Date('2023-05-01T11:30:00').getTime(), + status: RobotStatus.Idle, + }, + ], + }, +}; diff --git a/packages/dashboard/src/components/robots/robot-table-datagrid.test.tsx b/packages/dashboard/src/components/robots/robot-table-datagrid.test.tsx index 2a804d7ec..57ad15f47 100644 --- a/packages/dashboard/src/components/robots/robot-table-datagrid.test.tsx +++ b/packages/dashboard/src/components/robots/robot-table-datagrid.test.tsx @@ -3,7 +3,7 @@ import { ApiServerModelsRmfApiRobotStateStatus as RobotStatus } from 'api-client import { describe, expect, it, vi } from 'vitest'; import { RobotDataGridTable, RobotTableData } from './robot-table-datagrid'; -import { makeRobot } from './test-utils.spec'; +import { makeRobot } from './test-utils.test'; const allStatuses = Object.values(RobotStatus) as RobotStatus[]; diff --git a/packages/dashboard/src/components/robots/test-utils.spec.ts b/packages/dashboard/src/components/robots/test-utils.test.ts similarity index 100% rename from packages/dashboard/src/components/robots/test-utils.spec.ts rename to packages/dashboard/src/components/robots/test-utils.test.ts diff --git a/packages/dashboard/src/components/tasks/task-info.stories.tsx b/packages/dashboard/src/components/tasks/task-info.stories.tsx index 70c8b9523..8bc7daebb 100644 --- a/packages/dashboard/src/components/tasks/task-info.stories.tsx +++ b/packages/dashboard/src/components/tasks/task-info.stories.tsx @@ -12,7 +12,7 @@ export default { type Story = StoryObj; export const Default: Story = { - storyName: 'Task Info', + name: 'Task Info', args: { task: makeTaskState('task'), }, diff --git a/packages/dashboard/src/components/transfer-list.stories.tsx b/packages/dashboard/src/components/transfer-list.stories.tsx index b779c64fa..cf379b83b 100644 --- a/packages/dashboard/src/components/transfer-list.stories.tsx +++ b/packages/dashboard/src/components/transfer-list.stories.tsx @@ -43,7 +43,7 @@ const numbers: Record = { }; export const TransferListStory: Story = { - storyName: 'Transfer List', + name: 'Transfer List', render: (args) => { const [leftItems, setLeftItems] = React.useState(['one', 'two', 'three', 'four']); const [rightItems, setRightItems] = React.useState(['five', 'six', 'seven', 'eight']); diff --git a/packages/dashboard/src/components/window/test-utils.spec.ts b/packages/dashboard/src/components/window/test-utils.test.ts similarity index 100% rename from packages/dashboard/src/components/window/test-utils.spec.ts rename to packages/dashboard/src/components/window/test-utils.test.ts diff --git a/packages/dashboard/src/components/workcells/test-utils.spec.ts b/packages/dashboard/src/components/workcells/test-utils.test.ts similarity index 100% rename from packages/dashboard/src/components/workcells/test-utils.spec.ts rename to packages/dashboard/src/components/workcells/test-utils.test.ts diff --git a/packages/dashboard/src/components/workcells/workcell-panel.stories.tsx b/packages/dashboard/src/components/workcells/workcell-panel.stories.tsx index bcab44e9e..634210575 100644 --- a/packages/dashboard/src/components/workcells/workcell-panel.stories.tsx +++ b/packages/dashboard/src/components/workcells/workcell-panel.stories.tsx @@ -1,6 +1,6 @@ import { Meta, StoryObj } from '@storybook/react'; -import { makeDispenser, makeDispenserState } from './test-utils.spec'; +import { makeDispenser, makeDispenserState } from './test-utils.test'; import { WorkcellPanel } from './workcell-panel'; export default { diff --git a/packages/dashboard/src/components/workcells/workcell-panel.test.tsx b/packages/dashboard/src/components/workcells/workcell-panel.test.tsx index 5c1f92a5e..e84ac7dd0 100644 --- a/packages/dashboard/src/components/workcells/workcell-panel.test.tsx +++ b/packages/dashboard/src/components/workcells/workcell-panel.test.tsx @@ -1,7 +1,7 @@ import { fireEvent, render } from '@testing-library/react'; import { beforeEach, describe, expect, it } from 'vitest'; -import { makeDispenser, makeDispenserState } from './test-utils.spec'; +import { makeDispenser, makeDispenserState } from './test-utils.test'; import { WorkcellPanel } from './workcell-panel'; function renderWorkcellPanel() { diff --git a/packages/dashboard/src/components/workcells/workcell-table.test.tsx b/packages/dashboard/src/components/workcells/workcell-table.test.tsx index 62809312e..b52667d32 100644 --- a/packages/dashboard/src/components/workcells/workcell-table.test.tsx +++ b/packages/dashboard/src/components/workcells/workcell-table.test.tsx @@ -2,7 +2,7 @@ import { render } from '@testing-library/react'; import { DispenserState as RmfDispenserState } from 'rmf-models/ros/rmf_dispenser_msgs/msg'; import { describe, expect, it } from 'vitest'; -import { makeDispenser, makeDispenserState } from './test-utils.spec'; +import { makeDispenser, makeDispenserState } from './test-utils.test'; import { WorkcellTable } from './workcell-table'; describe('Workcell table', () => { diff --git a/packages/dashboard/src/index.tsx b/packages/dashboard/src/index.tsx deleted file mode 100644 index 41cf0a62e..000000000 --- a/packages/dashboard/src/index.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import ReactDOM from 'react-dom/client'; - -import App from './app'; - -const root = ReactDOM.createRoot(document.getElementById('root') as HTMLElement); -root.render(); diff --git a/packages/dashboard/src/pages/login-page.stories.tsx b/packages/dashboard/src/pages/login-page.stories.tsx index c5f362bd3..97468ff6c 100644 --- a/packages/dashboard/src/pages/login-page.stories.tsx +++ b/packages/dashboard/src/pages/login-page.stories.tsx @@ -4,7 +4,7 @@ import { LoginCardProps } from '../components/login-card'; import { LoginPage } from './login-page'; export default { - title: 'Login', + title: 'Login Page', component: LoginPage, argTypes: { title: { @@ -21,6 +21,6 @@ export default { type Story = StoryObj; export const Default: Story = { - storyName: 'LoginPage', - render: (args: LoginCardProps) => , + name: 'LoginPage', + render: (args: LoginCardProps) => , }; diff --git a/packages/dashboard/src/utils/test-utils.test.tsx b/packages/dashboard/src/utils/test-utils.test.tsx index 15979e284..7f317f77c 100644 --- a/packages/dashboard/src/utils/test-utils.test.tsx +++ b/packages/dashboard/src/utils/test-utils.test.tsx @@ -33,7 +33,6 @@ import { import axios from 'axios'; import React from 'react'; import { Subject } from 'rxjs'; -import { vi } from 'vitest'; import { AppController, AppControllerProvider } from '../hooks/use-app-controller'; import { AuthenticatorProvider } from '../hooks/use-authenticator'; @@ -58,9 +57,9 @@ export const superUser: UserProfile = { export function makeMockAppController(): AppController { return { - updateSettings: vi.fn(), - showAlert: vi.fn(), - setExtraAppbarItems: vi.fn(), + updateSettings: () => {}, + showAlert: () => {}, + setExtraAppbarItems: () => {}, }; } diff --git a/packages/dashboard/src/vite-env.d.ts b/packages/dashboard/src/vite-env.d.ts deleted file mode 100644 index 9e2cf726b..000000000 --- a/packages/dashboard/src/vite-env.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -/// - -declare const APP_CONFIG_BASE_URL: string; -declare const APP_CONFIG_AUTH_PROVIDER: string; -declare const APP_CONFIG_ENABLE_CUSTOM_TABS: boolean; -declare const APP_CONFIG_ENABLE_ADMIN_TAB: boolean; diff --git a/packages/dashboard/tsconfig.app.json b/packages/dashboard/tsconfig.app.json index e61d21a5b..35af115c0 100644 --- a/packages/dashboard/tsconfig.app.json +++ b/packages/dashboard/tsconfig.app.json @@ -7,6 +7,7 @@ "lib": ["ES2020", "DOM", "DOM.Iterable"], "module": "ESNext", "skipLibCheck": true, + "types": ["vite/client"], /* Bundler mode */ "moduleResolution": "bundler", @@ -27,5 +28,5 @@ "rmf-dashboard/*": ["./src/*"] } }, - "include": ["src", "examples", "app-config.json"] + "include": ["src", "examples", ".storybook/*"] } diff --git a/packages/dashboard/tsconfig.gen.json b/packages/dashboard/tsconfig.gen.json deleted file mode 100644 index 94d1308f7..000000000 --- a/packages/dashboard/tsconfig.gen.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "./tsconfig.app.json", - "compilerOptions": { - "composite": false, - "tsBuildInfoFile": null - } -} diff --git a/packages/dashboard/tsconfig.node.json b/packages/dashboard/tsconfig.node.json index 3afdd6e38..674e12a27 100644 --- a/packages/dashboard/tsconfig.node.json +++ b/packages/dashboard/tsconfig.node.json @@ -9,5 +9,5 @@ "strict": true, "noEmit": true }, - "include": ["vite.config.ts"] + "include": ["vite.config.ts", "examples/shared/vite.config.ts"] } diff --git a/packages/dashboard/vite.config.ts b/packages/dashboard/vite.config.ts index 1db6ca3e6..7c1b8a085 100644 --- a/packages/dashboard/vite.config.ts +++ b/packages/dashboard/vite.config.ts @@ -1,58 +1,14 @@ -/// - import react from '@vitejs/plugin-react-swc'; -import { defineConfig, Plugin } from 'vite'; - -import appConfig from './app-config.json'; - -/** - * The goal of this plugin is to inject global variables to `index.html`, allowing - * a crude way to configure some variables after the bundle is built via `sed`. - * - * An example use case is building a dockerfile, because the domain in a dev or staging - * environment is typically different from prod, we would normally end up needing to build - * different images (which is really detrimental for staging). In such scenario, you can - * set the `rmfServerUrl` to a placeholder like `__RMF_SERVER_URL_PLACEHOLDER__` in - * `app-config.json`, then do a search and replace at the container entrypoint. - * - * The reason for doing this outside the app code is to avoid these variables from - * being modified by the bundler, and to reduce the chance that the search and replace modify - * unintended code. - */ -const injectGlobals: Plugin = { - name: 'injectRuntimeArgs', - transformIndexHtml: { - order: 'pre', // must be injected before the app - handler: () => { - return [ - { - tag: 'script', - injectTo: 'head', - children: `const APP_CONFIG=${JSON.stringify(appConfig)}`, - }, - ]; - }, - }, -}; - -function booleanToString(b: boolean | null | undefined) { - return b ? 'true' : 'false'; -} - -const buildConfig = appConfig.buildConfig; +import path from 'path'; +import { defineConfig } from 'vite'; // https://vitejs.dev/config/ export default defineConfig({ - base: buildConfig.baseUrl, - define: { - APP_CONFIG_AUTH_PROVIDER: `'${buildConfig.authProvider}'`, - APP_CONFIG_ENABLE_CUSTOM_TABS: `${booleanToString(buildConfig.customTabs)}`, - APP_CONFIG_ENABLE_ADMIN_TAB: `${booleanToString(buildConfig.adminTab)}`, - }, - plugins: [injectGlobals, react()], - test: { - environment: 'jsdom', - globals: true, - passWithNoTests: true, + plugins: [react()], + publicDir: path.resolve(__dirname, 'examples/shared/public'), + resolve: { + alias: { + 'rmf-dashboard': path.resolve(__dirname, './src'), + }, }, }); From 9ce8224284a6814b9740530638b2db733fad3cc3 Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Fri, 30 Aug 2024 07:27:05 +0000 Subject: [PATCH 03/30] fix tests Signed-off-by: Teo Koon Peng --- packages/dashboard/vite.config.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/dashboard/vite.config.ts b/packages/dashboard/vite.config.ts index 7c1b8a085..9a76ef21d 100644 --- a/packages/dashboard/vite.config.ts +++ b/packages/dashboard/vite.config.ts @@ -1,3 +1,5 @@ +/// + import react from '@vitejs/plugin-react-swc'; import path from 'path'; import { defineConfig } from 'vite'; @@ -11,4 +13,9 @@ export default defineConfig({ 'rmf-dashboard': path.resolve(__dirname, './src'), }, }, + test: { + environment: 'jsdom', + globals: true, + passWithNoTests: true, + }, }); From a5151723865b88fd4d1104ffbb45e4a3a59a41ef Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Fri, 30 Aug 2024 07:51:58 +0000 Subject: [PATCH 04/30] rename package Signed-off-by: Teo Koon Peng --- .../Dockerfile | 0 .../app-config.json | 0 .../inject-env.sh | 0 .../{dashboard.yml => rmf-dashboard-framework.yml} | 13 ++++++------- .../.gitignore | 0 .../.storybook/main.ts | 0 .../.storybook/preview.tsx | 0 .../README.md | 0 .../docs/getting-started.md | 0 .../examples/custom-theme/index.html | 0 .../examples/custom-theme/index.tsx | 0 .../examples/demo/index.html | 0 .../examples/demo/index.tsx | 0 .../examples/shared/app.css | 0 .../examples/shared/index.tsx | 0 .../examples/shared/public/favicon.ico | Bin .../shared/public/resources/defaultLogo.png | Bin .../examples/shared/public/robots.txt | 0 .../examples/shared/public/silent-check-sso.html | 0 .../examples/shared/vite.config.ts | 0 .../package.json | 2 +- .../public/favicon.ico | Bin .../public/resources/defaultLogo.png | Bin .../public/robots.txt | 0 .../public/silent-check-sso.html | 0 .../rmf-launcher.js | 0 .../scripts/start-rmf.js | 0 .../admin/add-permission-dialog.stories.tsx | 0 .../admin/add-permission-dialog.test.tsx | 0 .../src/components/admin/add-permission-dialog.tsx | 0 .../admin/create-role-dialog.stories.tsx | 0 .../components/admin/create-role-dialog.test.tsx | 0 .../src/components/admin/create-role-dialog.tsx | 0 .../admin/create-user-dialog.stories.tsx | 0 .../components/admin/create-user-dialog.test.tsx | 0 .../src/components/admin/create-user-dialog.tsx | 0 .../src/components/admin/drawer.stories.tsx | 0 .../src/components/admin/drawer.test.tsx | 0 .../src/components/admin/drawer.tsx | 0 .../src/components/admin/index.ts | 0 .../admin/manage-roles-dialog.stories.tsx | 0 .../components/admin/manage-roles-dialog.test.tsx | 0 .../src/components/admin/manage-roles-dialog.tsx | 0 .../src/components/admin/page-css.ts | 0 .../components/admin/permissions-card.stories.tsx | 0 .../src/components/admin/permissions-card.test.tsx | 0 .../src/components/admin/permissions-card.tsx | 0 .../components/admin/role-list-card.stories.tsx | 0 .../src/components/admin/role-list-card.test.tsx | 0 .../src/components/admin/role-list-card.tsx | 0 .../src/components/admin/role-list-page.tsx | 0 .../src/components/admin/routes.tsx | 0 .../components/admin/user-list-card.stories.tsx | 0 .../src/components/admin/user-list-card.test.tsx | 0 .../src/components/admin/user-list-card.tsx | 0 .../src/components/admin/user-list-page.tsx | 0 .../src/components/admin/user-profile-page.tsx | 0 .../src/components/admin/user-profile.stories.tsx | 0 .../src/components/admin/user-profile.test.tsx | 0 .../src/components/admin/user-profile.tsx | 0 .../src/components/alert-manager.tsx | 0 .../src/components/app-events.ts | 0 .../src/components/appbar.test.tsx | 0 .../src/components/appbar.tsx | 0 .../beacons/beacon-table-datagrid.stories.tsx | 0 .../beacons/beacon-table-datagrid.test.tsx | 0 .../components/beacons/beacon-table-datagrid.tsx | 0 .../src/components/beacons/beacons-table.tsx | 0 .../src/components/beacons/index.ts | 0 .../src/components/beacons/test-utils.test.ts | 0 .../src/components/confirmation-dialog.stories.tsx | 0 .../src/components/confirmation-dialog.test.tsx | 0 .../src/components/confirmation-dialog.tsx | 0 .../src/components/delivery-alert-store.tsx | 0 .../src/components/doors/door-card.stories.tsx | 0 .../src/components/doors/door-card.tsx | 0 .../src/components/doors/door-controls.tsx | 0 .../src/components/doors/door-summary.tsx | 0 .../doors/door-table-datagrid.stories.tsx | 0 .../components/doors/door-table-datagrid.test.tsx | 0 .../src/components/doors/door-table-datagrid.tsx | 0 .../src/components/doors/door-utils.ts | 0 .../src/components/doors/doors-table.tsx | 0 .../src/components/doors/index.tsx | 0 .../src/components/doors/test-utils.test.ts | 0 .../src/components/form-inputs.test.tsx | 0 .../src/components/form-inputs.tsx | 0 .../src/components/icons/CloseFullscreen.tsx | 0 .../src/components/icons/OpenInFull.tsx | 0 .../src/components/icons/index.ts | 0 .../src/components/index.ts | 0 .../src/components/lifts/index.ts | 0 .../src/components/lifts/lift-card.stories.tsx | 0 .../src/components/lifts/lift-card.tsx | 0 .../src/components/lifts/lift-controls.tsx | 0 .../components/lifts/lift-request-dialog.test.tsx | 0 .../src/components/lifts/lift-request-dialog.tsx | 0 .../src/components/lifts/lift-summary.tsx | 0 .../lifts/lift-table-datagrid.stories.tsx | 0 .../components/lifts/lift-table-datagrid.test.tsx | 0 .../src/components/lifts/lift-table-datagrid.tsx | 0 .../src/components/lifts/lift-utils.ts | 0 .../src/components/lifts/lifts-table.tsx | 0 .../src/components/lifts/test-utils.test.ts | 0 .../src/components/loading.stories.tsx | 0 .../src/components/loading.test.tsx | 0 .../src/components/loading.tsx | 0 .../src/components/locale.tsx | 0 .../src/components/login-card.stories.tsx | 0 .../src/components/login-card.tsx | 0 .../src/components/map/camera-control.tsx | 0 .../src/components/map/circle-shape.tsx | 0 .../src/components/map/cube-maker.tsx | 0 .../src/components/map/door-three-maker.tsx | 0 .../src/components/map/door-three.tsx | 0 .../src/components/map/image-maker.tsx | 0 .../src/components/map/index.tsx | 0 .../src/components/map/layer-control.test.tsx | 0 .../src/components/map/layers-controller.tsx | 0 .../src/components/map/lift-three-maker.tsx | 0 .../src/components/map/lift-three.tsx | 0 .../src/components/map/robot-three-maker.tsx | 0 .../src/components/map/robot-three.tsx | 0 .../src/components/map/shape-three-rendering.tsx | 0 .../src/components/map/test-utils.test.tsx | 0 .../src/components/map/text-maker.tsx | 0 .../src/components/map/utils.ts | 0 .../src/components/map/wall-maker.tsx | 0 .../src/components/place.ts | 0 .../src/components/react-three-fiber-hack.d.ts | 0 .../src/components/rmf-dashboard.tsx | 0 .../robots/circular-progress-bar.stories.tsx | 0 .../robots/circular-progress-bar.test.tsx | 0 .../components/robots/circular-progress-bar.tsx | 0 .../src/components/robots/index.ts | 0 .../robots/linear-progress-bar.stories.tsx | 0 .../components/robots/linear-progress-bar.test.tsx | 0 .../src/components/robots/linear-progress-bar.tsx | 0 .../robots/mutex-group-table.stories.tsx | 0 .../components/robots/mutex-group-table.test.tsx | 0 .../src/components/robots/mutex-group-table.tsx | 0 .../src/components/robots/robot-decommission.tsx | 0 .../src/components/robots/robot-info-card.tsx | 0 .../src/components/robots/robot-info.stories.tsx | 0 .../src/components/robots/robot-info.test.tsx | 0 .../src/components/robots/robot-info.tsx | 0 .../components/robots/robot-mutex-group-table.tsx | 0 .../src/components/robots/robot-summary.tsx | 0 .../robots/robot-table-datagrid.stories.tsx | 0 .../robots/robot-table-datagrid.test.tsx | 0 .../src/components/robots/robot-table-datagrid.tsx | 0 .../src/components/robots/robots-table.tsx | 0 .../src/components/robots/test-utils.test.ts | 0 .../src/components/robots/utils.ts | 0 .../src/components/tasks/booking-label.ts | 0 .../src/components/tasks/create-task.stories.tsx | 0 .../src/components/tasks/create-task.tsx | 0 .../src/components/tasks/index.ts | 0 .../src/components/tasks/make-tasks.test.ts | 0 .../components/tasks/task-booking-label-utils.tsx | 0 .../src/components/tasks/task-cancellation.tsx | 0 .../src/components/tasks/task-details-card.tsx | 0 .../src/components/tasks/task-info.stories.tsx | 0 .../src/components/tasks/task-info.test.tsx | 0 .../src/components/tasks/task-info.tsx | 0 .../src/components/tasks/task-inspector.tsx | 0 .../src/components/tasks/task-logs-app.tsx | 0 .../src/components/tasks/task-logs.test.tsx | 0 .../src/components/tasks/task-logs.tsx | 0 .../task-schedule-event-edit-delete-popup.test.tsx | 0 .../task-schedule-event-edit-delete-popup.tsx | 0 .../src/components/tasks/task-schedule-utils.ts | 0 .../src/components/tasks/task-schedule.tsx | 0 .../src/components/tasks/task-summary.tsx | 0 .../components/tasks/task-table-datagrid.test.tsx | 0 .../src/components/tasks/task-table-datagrid.tsx | 0 .../src/components/tasks/task-table.stories.tsx | 0 .../src/components/tasks/task-table.test.tsx | 0 .../src/components/tasks/task-table.tsx | 0 .../src/components/tasks/task-timeline.stories.tsx | 0 .../src/components/tasks/task-timeline.test.tsx | 0 .../src/components/tasks/task-timeline.tsx | 0 .../src/components/tasks/tasks-window.tsx | 0 .../src/components/tasks/test-data.test.ts | 0 .../src/components/tasks/types/compose-clean.tsx | 0 .../src/components/tasks/types/custom-compose.tsx | 0 .../tasks/types/delivery-custom.test.tsx | 0 .../src/components/tasks/types/delivery-custom.tsx | 0 .../src/components/tasks/types/delivery.tsx | 0 .../src/components/tasks/types/index.ts | 0 .../src/components/tasks/types/patrol.tsx | 0 .../src/components/tasks/types/utils.ts | 0 .../src/components/tasks/utils.ts | 0 .../src/components/theme.ts | 0 .../src/components/transfer-list.stories.tsx | 0 .../src/components/transfer-list.test.tsx | 0 .../src/components/transfer-list.tsx | 0 .../src/components/utils/geometry.test.ts | 0 .../src/components/utils/geometry.ts | 0 .../src/components/utils/item-table.tsx | 0 .../src/components/utils/misc.test.ts | 0 .../src/components/utils/misc.ts | 0 .../src/components/window/context.ts | 0 .../src/components/window/demo.stories.tsx | 0 .../src/components/window/index.ts | 0 .../src/components/window/no-rgl-animations.css | 0 .../src/components/window/test-utils.test.ts | 0 .../src/components/window/window-container.tsx | 0 .../components/window/window-toolbar.stories.tsx | 0 .../src/components/window/window-toolbar.tsx | 0 .../src/components/window/window.tsx | 0 .../src/components/workcells/index.ts | 0 .../src/components/workcells/test-utils.test.ts | 0 .../src/components/workcells/utils.ts | 0 .../workcells/workcell-panel.stories.tsx | 0 .../components/workcells/workcell-panel.test.tsx | 0 .../src/components/workcells/workcell-panel.tsx | 0 .../components/workcells/workcell-table.test.tsx | 0 .../src/components/workcells/workcell-table.tsx | 0 .../src/components/workspace.tsx | 0 .../src/hooks/deferred-context.ts | 0 .../src/hooks/use-app-controller.ts | 0 .../src/hooks/use-async.test.ts | 0 .../src/hooks/use-async.ts | 0 .../src/hooks/use-authenticator.ts | 0 .../src/hooks/use-create-task-form.tsx | 0 .../src/hooks/use-resources.ts | 0 .../src/hooks/use-rmf-api.ts | 0 .../src/hooks/use-settings.ts | 0 .../src/hooks/use-task-registry.ts | 0 .../src/hooks/use-user-profile.tsx | 0 .../src/micro-apps/doors-app.ts | 0 .../src/micro-apps/index.tsx | 0 .../src/micro-apps/lifts-app.ts | 0 .../src/micro-apps/map-app.ts | 0 .../src/micro-apps/robot-mutex-groups-app.ts | 0 .../src/micro-apps/robots-app.ts | 0 .../src/micro-apps/tasks-app.ts | 0 .../src/pages/index.ts | 0 .../src/pages/login-page.stories.tsx | 0 .../src/pages/login-page.test.tsx | 0 .../src/pages/login-page.tsx | 0 .../services/__mocks__/robot-trajectory-manager.ts | 0 .../src/services/__mocks__/trajectories.json | 0 .../src/services/authenticator.ts | 0 .../src/services/color-manager.test.ts | 0 .../src/services/color-manager.ts | 0 .../src/services/keycloak.ts | 0 .../src/services/negotiation-status-manager.ts | 0 .../src/services/permissions.ts | 0 .../src/services/rmf-api.ts | 0 .../src/services/robot-trajectory-manager.ts | 0 .../src/services/settings.ts | 0 .../src/services/stub-authenticator.ts | 0 .../src/services/trajectory-socket-manager.ts | 0 .../src/utils/api.ts | 0 .../src/utils/test-utils.test.tsx | 0 .../src/utils/url.ts | 0 .../test-data/assets/code-brackets.svg | 0 .../test-data/assets/colors.svg | 0 .../test-data/assets/comments.svg | 0 .../test-data/assets/direction.svg | 0 .../test-data/assets/flow.svg | 0 .../test-data/assets/office.png | Bin .../test-data/assets/plugin.svg | 0 .../test-data/assets/repo.svg | 0 .../test-data/assets/ros-health.png | Bin .../test-data/assets/roshealth-logo-white.png | Bin .../test-data/assets/stackalt.svg | 0 .../test-data/assets/tiny-robot.png | Bin .../tsconfig.app.json | 0 .../tsconfig.json | 0 .../tsconfig.node.json | 0 .../vite.config.ts | 0 274 files changed, 7 insertions(+), 8 deletions(-) rename .github/{dashboard => rmf-dashboard-framework}/Dockerfile (100%) rename .github/{dashboard => rmf-dashboard-framework}/app-config.json (100%) rename .github/{dashboard => rmf-dashboard-framework}/inject-env.sh (100%) rename .github/workflows/{dashboard.yml => rmf-dashboard-framework.yml} (76%) rename packages/{dashboard => rmf-dashboard-framework}/.gitignore (100%) rename packages/{dashboard => rmf-dashboard-framework}/.storybook/main.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/.storybook/preview.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/README.md (100%) create mode 100644 packages/rmf-dashboard-framework/docs/getting-started.md rename packages/{dashboard => rmf-dashboard-framework}/examples/custom-theme/index.html (100%) rename packages/{dashboard => rmf-dashboard-framework}/examples/custom-theme/index.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/examples/demo/index.html (100%) rename packages/{dashboard => rmf-dashboard-framework}/examples/demo/index.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/examples/shared/app.css (100%) rename packages/{dashboard => rmf-dashboard-framework}/examples/shared/index.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/examples/shared/public/favicon.ico (100%) rename packages/{dashboard => rmf-dashboard-framework}/examples/shared/public/resources/defaultLogo.png (100%) rename packages/{dashboard => rmf-dashboard-framework}/examples/shared/public/robots.txt (100%) rename packages/{dashboard => rmf-dashboard-framework}/examples/shared/public/silent-check-sso.html (100%) rename packages/{dashboard => rmf-dashboard-framework}/examples/shared/vite.config.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/package.json (98%) rename packages/{dashboard => rmf-dashboard-framework}/public/favicon.ico (100%) rename packages/{dashboard => rmf-dashboard-framework}/public/resources/defaultLogo.png (100%) rename packages/{dashboard => rmf-dashboard-framework}/public/robots.txt (100%) rename packages/{dashboard => rmf-dashboard-framework}/public/silent-check-sso.html (100%) rename packages/{dashboard => rmf-dashboard-framework}/rmf-launcher.js (100%) rename packages/{dashboard => rmf-dashboard-framework}/scripts/start-rmf.js (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/add-permission-dialog.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/add-permission-dialog.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/add-permission-dialog.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/create-role-dialog.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/create-role-dialog.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/create-role-dialog.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/create-user-dialog.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/create-user-dialog.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/create-user-dialog.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/drawer.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/drawer.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/drawer.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/index.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/manage-roles-dialog.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/manage-roles-dialog.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/manage-roles-dialog.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/page-css.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/permissions-card.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/permissions-card.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/permissions-card.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/role-list-card.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/role-list-card.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/role-list-card.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/role-list-page.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/routes.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/user-list-card.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/user-list-card.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/user-list-card.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/user-list-page.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/user-profile-page.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/user-profile.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/user-profile.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/admin/user-profile.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/alert-manager.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/app-events.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/appbar.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/appbar.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/beacons/beacon-table-datagrid.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/beacons/beacon-table-datagrid.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/beacons/beacon-table-datagrid.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/beacons/beacons-table.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/beacons/index.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/beacons/test-utils.test.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/confirmation-dialog.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/confirmation-dialog.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/confirmation-dialog.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/delivery-alert-store.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/doors/door-card.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/doors/door-card.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/doors/door-controls.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/doors/door-summary.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/doors/door-table-datagrid.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/doors/door-table-datagrid.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/doors/door-table-datagrid.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/doors/door-utils.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/doors/doors-table.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/doors/index.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/doors/test-utils.test.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/form-inputs.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/form-inputs.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/icons/CloseFullscreen.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/icons/OpenInFull.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/icons/index.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/index.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/lifts/index.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/lifts/lift-card.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/lifts/lift-card.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/lifts/lift-controls.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/lifts/lift-request-dialog.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/lifts/lift-request-dialog.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/lifts/lift-summary.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/lifts/lift-table-datagrid.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/lifts/lift-table-datagrid.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/lifts/lift-table-datagrid.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/lifts/lift-utils.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/lifts/lifts-table.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/lifts/test-utils.test.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/loading.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/loading.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/loading.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/locale.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/login-card.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/login-card.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/map/camera-control.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/map/circle-shape.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/map/cube-maker.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/map/door-three-maker.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/map/door-three.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/map/image-maker.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/map/index.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/map/layer-control.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/map/layers-controller.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/map/lift-three-maker.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/map/lift-three.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/map/robot-three-maker.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/map/robot-three.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/map/shape-three-rendering.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/map/test-utils.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/map/text-maker.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/map/utils.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/map/wall-maker.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/place.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/react-three-fiber-hack.d.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/rmf-dashboard.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/robots/circular-progress-bar.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/robots/circular-progress-bar.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/robots/circular-progress-bar.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/robots/index.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/robots/linear-progress-bar.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/robots/linear-progress-bar.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/robots/linear-progress-bar.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/robots/mutex-group-table.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/robots/mutex-group-table.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/robots/mutex-group-table.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/robots/robot-decommission.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/robots/robot-info-card.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/robots/robot-info.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/robots/robot-info.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/robots/robot-info.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/robots/robot-mutex-group-table.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/robots/robot-summary.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/robots/robot-table-datagrid.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/robots/robot-table-datagrid.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/robots/robot-table-datagrid.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/robots/robots-table.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/robots/test-utils.test.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/robots/utils.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/booking-label.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/create-task.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/create-task.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/index.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/make-tasks.test.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/task-booking-label-utils.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/task-cancellation.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/task-details-card.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/task-info.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/task-info.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/task-info.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/task-inspector.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/task-logs-app.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/task-logs.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/task-logs.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/task-schedule-event-edit-delete-popup.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/task-schedule-event-edit-delete-popup.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/task-schedule-utils.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/task-schedule.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/task-summary.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/task-table-datagrid.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/task-table-datagrid.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/task-table.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/task-table.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/task-table.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/task-timeline.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/task-timeline.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/task-timeline.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/tasks-window.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/test-data.test.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/types/compose-clean.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/types/custom-compose.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/types/delivery-custom.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/types/delivery-custom.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/types/delivery.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/types/index.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/types/patrol.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/types/utils.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/tasks/utils.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/theme.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/transfer-list.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/transfer-list.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/transfer-list.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/utils/geometry.test.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/utils/geometry.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/utils/item-table.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/utils/misc.test.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/utils/misc.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/window/context.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/window/demo.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/window/index.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/window/no-rgl-animations.css (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/window/test-utils.test.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/window/window-container.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/window/window-toolbar.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/window/window-toolbar.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/window/window.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/workcells/index.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/workcells/test-utils.test.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/workcells/utils.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/workcells/workcell-panel.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/workcells/workcell-panel.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/workcells/workcell-panel.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/workcells/workcell-table.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/workcells/workcell-table.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/components/workspace.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/hooks/deferred-context.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/hooks/use-app-controller.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/hooks/use-async.test.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/hooks/use-async.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/hooks/use-authenticator.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/hooks/use-create-task-form.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/hooks/use-resources.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/hooks/use-rmf-api.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/hooks/use-settings.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/hooks/use-task-registry.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/hooks/use-user-profile.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/micro-apps/doors-app.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/micro-apps/index.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/micro-apps/lifts-app.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/micro-apps/map-app.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/micro-apps/robot-mutex-groups-app.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/micro-apps/robots-app.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/micro-apps/tasks-app.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/pages/index.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/pages/login-page.stories.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/pages/login-page.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/pages/login-page.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/services/__mocks__/robot-trajectory-manager.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/services/__mocks__/trajectories.json (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/services/authenticator.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/services/color-manager.test.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/services/color-manager.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/services/keycloak.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/services/negotiation-status-manager.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/services/permissions.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/services/rmf-api.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/services/robot-trajectory-manager.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/services/settings.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/services/stub-authenticator.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/services/trajectory-socket-manager.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/utils/api.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/utils/test-utils.test.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/src/utils/url.ts (100%) rename packages/{dashboard => rmf-dashboard-framework}/test-data/assets/code-brackets.svg (100%) rename packages/{dashboard => rmf-dashboard-framework}/test-data/assets/colors.svg (100%) rename packages/{dashboard => rmf-dashboard-framework}/test-data/assets/comments.svg (100%) rename packages/{dashboard => rmf-dashboard-framework}/test-data/assets/direction.svg (100%) rename packages/{dashboard => rmf-dashboard-framework}/test-data/assets/flow.svg (100%) rename packages/{dashboard => rmf-dashboard-framework}/test-data/assets/office.png (100%) rename packages/{dashboard => rmf-dashboard-framework}/test-data/assets/plugin.svg (100%) rename packages/{dashboard => rmf-dashboard-framework}/test-data/assets/repo.svg (100%) rename packages/{dashboard => rmf-dashboard-framework}/test-data/assets/ros-health.png (100%) rename packages/{dashboard => rmf-dashboard-framework}/test-data/assets/roshealth-logo-white.png (100%) rename packages/{dashboard => rmf-dashboard-framework}/test-data/assets/stackalt.svg (100%) rename packages/{dashboard => rmf-dashboard-framework}/test-data/assets/tiny-robot.png (100%) rename packages/{dashboard => rmf-dashboard-framework}/tsconfig.app.json (100%) rename packages/{dashboard => rmf-dashboard-framework}/tsconfig.json (100%) rename packages/{dashboard => rmf-dashboard-framework}/tsconfig.node.json (100%) rename packages/{dashboard => rmf-dashboard-framework}/vite.config.ts (100%) diff --git a/.github/dashboard/Dockerfile b/.github/rmf-dashboard-framework/Dockerfile similarity index 100% rename from .github/dashboard/Dockerfile rename to .github/rmf-dashboard-framework/Dockerfile diff --git a/.github/dashboard/app-config.json b/.github/rmf-dashboard-framework/app-config.json similarity index 100% rename from .github/dashboard/app-config.json rename to .github/rmf-dashboard-framework/app-config.json diff --git a/.github/dashboard/inject-env.sh b/.github/rmf-dashboard-framework/inject-env.sh similarity index 100% rename from .github/dashboard/inject-env.sh rename to .github/rmf-dashboard-framework/inject-env.sh diff --git a/.github/workflows/dashboard.yml b/.github/workflows/rmf-dashboard-framework.yml similarity index 76% rename from .github/workflows/dashboard.yml rename to .github/workflows/rmf-dashboard-framework.yml index 8026f1d2e..4c462ba1b 100644 --- a/.github/workflows/dashboard.yml +++ b/.github/workflows/rmf-dashboard-framework.yml @@ -1,10 +1,9 @@ -name: dashboard +name: rmf-dashboard-framework on: pull_request: paths: - - '.github/workflows/dashboard.yml' - - 'packages/dashboard/**' - - 'packages/react-components/**' + - '.github/workflows/rmf-dashboard-framework.yml' + - 'packages/rmf-dashboard-framework/**' - 'packages/rmf-models/**' - 'packages/api-client/**' push: @@ -27,13 +26,13 @@ jobs: defaults: run: shell: bash - working-directory: packages/dashboard + working-directory: packages/rmf-dashboard-framework steps: - uses: actions/checkout@v4 - name: bootstrap uses: ./.github/actions/bootstrap with: - package: rmf-dashboard + package: rmf-dashboard-framework skip-build: true - name: lint run: pnpm lint @@ -42,4 +41,4 @@ jobs: - name: Upload coverage to Codecov uses: codecov/codecov-action@v1 with: - flags: dashboard + flags: rmf-dashboard-framework diff --git a/packages/dashboard/.gitignore b/packages/rmf-dashboard-framework/.gitignore similarity index 100% rename from packages/dashboard/.gitignore rename to packages/rmf-dashboard-framework/.gitignore diff --git a/packages/dashboard/.storybook/main.ts b/packages/rmf-dashboard-framework/.storybook/main.ts similarity index 100% rename from packages/dashboard/.storybook/main.ts rename to packages/rmf-dashboard-framework/.storybook/main.ts diff --git a/packages/dashboard/.storybook/preview.tsx b/packages/rmf-dashboard-framework/.storybook/preview.tsx similarity index 100% rename from packages/dashboard/.storybook/preview.tsx rename to packages/rmf-dashboard-framework/.storybook/preview.tsx diff --git a/packages/dashboard/README.md b/packages/rmf-dashboard-framework/README.md similarity index 100% rename from packages/dashboard/README.md rename to packages/rmf-dashboard-framework/README.md diff --git a/packages/rmf-dashboard-framework/docs/getting-started.md b/packages/rmf-dashboard-framework/docs/getting-started.md new file mode 100644 index 000000000..e69de29bb diff --git a/packages/dashboard/examples/custom-theme/index.html b/packages/rmf-dashboard-framework/examples/custom-theme/index.html similarity index 100% rename from packages/dashboard/examples/custom-theme/index.html rename to packages/rmf-dashboard-framework/examples/custom-theme/index.html diff --git a/packages/dashboard/examples/custom-theme/index.tsx b/packages/rmf-dashboard-framework/examples/custom-theme/index.tsx similarity index 100% rename from packages/dashboard/examples/custom-theme/index.tsx rename to packages/rmf-dashboard-framework/examples/custom-theme/index.tsx diff --git a/packages/dashboard/examples/demo/index.html b/packages/rmf-dashboard-framework/examples/demo/index.html similarity index 100% rename from packages/dashboard/examples/demo/index.html rename to packages/rmf-dashboard-framework/examples/demo/index.html diff --git a/packages/dashboard/examples/demo/index.tsx b/packages/rmf-dashboard-framework/examples/demo/index.tsx similarity index 100% rename from packages/dashboard/examples/demo/index.tsx rename to packages/rmf-dashboard-framework/examples/demo/index.tsx diff --git a/packages/dashboard/examples/shared/app.css b/packages/rmf-dashboard-framework/examples/shared/app.css similarity index 100% rename from packages/dashboard/examples/shared/app.css rename to packages/rmf-dashboard-framework/examples/shared/app.css diff --git a/packages/dashboard/examples/shared/index.tsx b/packages/rmf-dashboard-framework/examples/shared/index.tsx similarity index 100% rename from packages/dashboard/examples/shared/index.tsx rename to packages/rmf-dashboard-framework/examples/shared/index.tsx diff --git a/packages/dashboard/examples/shared/public/favicon.ico b/packages/rmf-dashboard-framework/examples/shared/public/favicon.ico similarity index 100% rename from packages/dashboard/examples/shared/public/favicon.ico rename to packages/rmf-dashboard-framework/examples/shared/public/favicon.ico diff --git a/packages/dashboard/examples/shared/public/resources/defaultLogo.png b/packages/rmf-dashboard-framework/examples/shared/public/resources/defaultLogo.png similarity index 100% rename from packages/dashboard/examples/shared/public/resources/defaultLogo.png rename to packages/rmf-dashboard-framework/examples/shared/public/resources/defaultLogo.png diff --git a/packages/dashboard/examples/shared/public/robots.txt b/packages/rmf-dashboard-framework/examples/shared/public/robots.txt similarity index 100% rename from packages/dashboard/examples/shared/public/robots.txt rename to packages/rmf-dashboard-framework/examples/shared/public/robots.txt diff --git a/packages/dashboard/examples/shared/public/silent-check-sso.html b/packages/rmf-dashboard-framework/examples/shared/public/silent-check-sso.html similarity index 100% rename from packages/dashboard/examples/shared/public/silent-check-sso.html rename to packages/rmf-dashboard-framework/examples/shared/public/silent-check-sso.html diff --git a/packages/dashboard/examples/shared/vite.config.ts b/packages/rmf-dashboard-framework/examples/shared/vite.config.ts similarity index 100% rename from packages/dashboard/examples/shared/vite.config.ts rename to packages/rmf-dashboard-framework/examples/shared/vite.config.ts diff --git a/packages/dashboard/package.json b/packages/rmf-dashboard-framework/package.json similarity index 98% rename from packages/dashboard/package.json rename to packages/rmf-dashboard-framework/package.json index 8e7e16efe..c6902f598 100644 --- a/packages/dashboard/package.json +++ b/packages/rmf-dashboard-framework/package.json @@ -1,5 +1,5 @@ { - "name": "rmf-dashboard", + "name": "rmf-dashboard-framework", "version": "0.1.0", "type": "module", "private": true, diff --git a/packages/dashboard/public/favicon.ico b/packages/rmf-dashboard-framework/public/favicon.ico similarity index 100% rename from packages/dashboard/public/favicon.ico rename to packages/rmf-dashboard-framework/public/favicon.ico diff --git a/packages/dashboard/public/resources/defaultLogo.png b/packages/rmf-dashboard-framework/public/resources/defaultLogo.png similarity index 100% rename from packages/dashboard/public/resources/defaultLogo.png rename to packages/rmf-dashboard-framework/public/resources/defaultLogo.png diff --git a/packages/dashboard/public/robots.txt b/packages/rmf-dashboard-framework/public/robots.txt similarity index 100% rename from packages/dashboard/public/robots.txt rename to packages/rmf-dashboard-framework/public/robots.txt diff --git a/packages/dashboard/public/silent-check-sso.html b/packages/rmf-dashboard-framework/public/silent-check-sso.html similarity index 100% rename from packages/dashboard/public/silent-check-sso.html rename to packages/rmf-dashboard-framework/public/silent-check-sso.html diff --git a/packages/dashboard/rmf-launcher.js b/packages/rmf-dashboard-framework/rmf-launcher.js similarity index 100% rename from packages/dashboard/rmf-launcher.js rename to packages/rmf-dashboard-framework/rmf-launcher.js diff --git a/packages/dashboard/scripts/start-rmf.js b/packages/rmf-dashboard-framework/scripts/start-rmf.js similarity index 100% rename from packages/dashboard/scripts/start-rmf.js rename to packages/rmf-dashboard-framework/scripts/start-rmf.js diff --git a/packages/dashboard/src/components/admin/add-permission-dialog.stories.tsx b/packages/rmf-dashboard-framework/src/components/admin/add-permission-dialog.stories.tsx similarity index 100% rename from packages/dashboard/src/components/admin/add-permission-dialog.stories.tsx rename to packages/rmf-dashboard-framework/src/components/admin/add-permission-dialog.stories.tsx diff --git a/packages/dashboard/src/components/admin/add-permission-dialog.test.tsx b/packages/rmf-dashboard-framework/src/components/admin/add-permission-dialog.test.tsx similarity index 100% rename from packages/dashboard/src/components/admin/add-permission-dialog.test.tsx rename to packages/rmf-dashboard-framework/src/components/admin/add-permission-dialog.test.tsx diff --git a/packages/dashboard/src/components/admin/add-permission-dialog.tsx b/packages/rmf-dashboard-framework/src/components/admin/add-permission-dialog.tsx similarity index 100% rename from packages/dashboard/src/components/admin/add-permission-dialog.tsx rename to packages/rmf-dashboard-framework/src/components/admin/add-permission-dialog.tsx diff --git a/packages/dashboard/src/components/admin/create-role-dialog.stories.tsx b/packages/rmf-dashboard-framework/src/components/admin/create-role-dialog.stories.tsx similarity index 100% rename from packages/dashboard/src/components/admin/create-role-dialog.stories.tsx rename to packages/rmf-dashboard-framework/src/components/admin/create-role-dialog.stories.tsx diff --git a/packages/dashboard/src/components/admin/create-role-dialog.test.tsx b/packages/rmf-dashboard-framework/src/components/admin/create-role-dialog.test.tsx similarity index 100% rename from packages/dashboard/src/components/admin/create-role-dialog.test.tsx rename to packages/rmf-dashboard-framework/src/components/admin/create-role-dialog.test.tsx diff --git a/packages/dashboard/src/components/admin/create-role-dialog.tsx b/packages/rmf-dashboard-framework/src/components/admin/create-role-dialog.tsx similarity index 100% rename from packages/dashboard/src/components/admin/create-role-dialog.tsx rename to packages/rmf-dashboard-framework/src/components/admin/create-role-dialog.tsx diff --git a/packages/dashboard/src/components/admin/create-user-dialog.stories.tsx b/packages/rmf-dashboard-framework/src/components/admin/create-user-dialog.stories.tsx similarity index 100% rename from packages/dashboard/src/components/admin/create-user-dialog.stories.tsx rename to packages/rmf-dashboard-framework/src/components/admin/create-user-dialog.stories.tsx diff --git a/packages/dashboard/src/components/admin/create-user-dialog.test.tsx b/packages/rmf-dashboard-framework/src/components/admin/create-user-dialog.test.tsx similarity index 100% rename from packages/dashboard/src/components/admin/create-user-dialog.test.tsx rename to packages/rmf-dashboard-framework/src/components/admin/create-user-dialog.test.tsx diff --git a/packages/dashboard/src/components/admin/create-user-dialog.tsx b/packages/rmf-dashboard-framework/src/components/admin/create-user-dialog.tsx similarity index 100% rename from packages/dashboard/src/components/admin/create-user-dialog.tsx rename to packages/rmf-dashboard-framework/src/components/admin/create-user-dialog.tsx diff --git a/packages/dashboard/src/components/admin/drawer.stories.tsx b/packages/rmf-dashboard-framework/src/components/admin/drawer.stories.tsx similarity index 100% rename from packages/dashboard/src/components/admin/drawer.stories.tsx rename to packages/rmf-dashboard-framework/src/components/admin/drawer.stories.tsx diff --git a/packages/dashboard/src/components/admin/drawer.test.tsx b/packages/rmf-dashboard-framework/src/components/admin/drawer.test.tsx similarity index 100% rename from packages/dashboard/src/components/admin/drawer.test.tsx rename to packages/rmf-dashboard-framework/src/components/admin/drawer.test.tsx diff --git a/packages/dashboard/src/components/admin/drawer.tsx b/packages/rmf-dashboard-framework/src/components/admin/drawer.tsx similarity index 100% rename from packages/dashboard/src/components/admin/drawer.tsx rename to packages/rmf-dashboard-framework/src/components/admin/drawer.tsx diff --git a/packages/dashboard/src/components/admin/index.ts b/packages/rmf-dashboard-framework/src/components/admin/index.ts similarity index 100% rename from packages/dashboard/src/components/admin/index.ts rename to packages/rmf-dashboard-framework/src/components/admin/index.ts diff --git a/packages/dashboard/src/components/admin/manage-roles-dialog.stories.tsx b/packages/rmf-dashboard-framework/src/components/admin/manage-roles-dialog.stories.tsx similarity index 100% rename from packages/dashboard/src/components/admin/manage-roles-dialog.stories.tsx rename to packages/rmf-dashboard-framework/src/components/admin/manage-roles-dialog.stories.tsx diff --git a/packages/dashboard/src/components/admin/manage-roles-dialog.test.tsx b/packages/rmf-dashboard-framework/src/components/admin/manage-roles-dialog.test.tsx similarity index 100% rename from packages/dashboard/src/components/admin/manage-roles-dialog.test.tsx rename to packages/rmf-dashboard-framework/src/components/admin/manage-roles-dialog.test.tsx diff --git a/packages/dashboard/src/components/admin/manage-roles-dialog.tsx b/packages/rmf-dashboard-framework/src/components/admin/manage-roles-dialog.tsx similarity index 100% rename from packages/dashboard/src/components/admin/manage-roles-dialog.tsx rename to packages/rmf-dashboard-framework/src/components/admin/manage-roles-dialog.tsx diff --git a/packages/dashboard/src/components/admin/page-css.ts b/packages/rmf-dashboard-framework/src/components/admin/page-css.ts similarity index 100% rename from packages/dashboard/src/components/admin/page-css.ts rename to packages/rmf-dashboard-framework/src/components/admin/page-css.ts diff --git a/packages/dashboard/src/components/admin/permissions-card.stories.tsx b/packages/rmf-dashboard-framework/src/components/admin/permissions-card.stories.tsx similarity index 100% rename from packages/dashboard/src/components/admin/permissions-card.stories.tsx rename to packages/rmf-dashboard-framework/src/components/admin/permissions-card.stories.tsx diff --git a/packages/dashboard/src/components/admin/permissions-card.test.tsx b/packages/rmf-dashboard-framework/src/components/admin/permissions-card.test.tsx similarity index 100% rename from packages/dashboard/src/components/admin/permissions-card.test.tsx rename to packages/rmf-dashboard-framework/src/components/admin/permissions-card.test.tsx diff --git a/packages/dashboard/src/components/admin/permissions-card.tsx b/packages/rmf-dashboard-framework/src/components/admin/permissions-card.tsx similarity index 100% rename from packages/dashboard/src/components/admin/permissions-card.tsx rename to packages/rmf-dashboard-framework/src/components/admin/permissions-card.tsx diff --git a/packages/dashboard/src/components/admin/role-list-card.stories.tsx b/packages/rmf-dashboard-framework/src/components/admin/role-list-card.stories.tsx similarity index 100% rename from packages/dashboard/src/components/admin/role-list-card.stories.tsx rename to packages/rmf-dashboard-framework/src/components/admin/role-list-card.stories.tsx diff --git a/packages/dashboard/src/components/admin/role-list-card.test.tsx b/packages/rmf-dashboard-framework/src/components/admin/role-list-card.test.tsx similarity index 100% rename from packages/dashboard/src/components/admin/role-list-card.test.tsx rename to packages/rmf-dashboard-framework/src/components/admin/role-list-card.test.tsx diff --git a/packages/dashboard/src/components/admin/role-list-card.tsx b/packages/rmf-dashboard-framework/src/components/admin/role-list-card.tsx similarity index 100% rename from packages/dashboard/src/components/admin/role-list-card.tsx rename to packages/rmf-dashboard-framework/src/components/admin/role-list-card.tsx diff --git a/packages/dashboard/src/components/admin/role-list-page.tsx b/packages/rmf-dashboard-framework/src/components/admin/role-list-page.tsx similarity index 100% rename from packages/dashboard/src/components/admin/role-list-page.tsx rename to packages/rmf-dashboard-framework/src/components/admin/role-list-page.tsx diff --git a/packages/dashboard/src/components/admin/routes.tsx b/packages/rmf-dashboard-framework/src/components/admin/routes.tsx similarity index 100% rename from packages/dashboard/src/components/admin/routes.tsx rename to packages/rmf-dashboard-framework/src/components/admin/routes.tsx diff --git a/packages/dashboard/src/components/admin/user-list-card.stories.tsx b/packages/rmf-dashboard-framework/src/components/admin/user-list-card.stories.tsx similarity index 100% rename from packages/dashboard/src/components/admin/user-list-card.stories.tsx rename to packages/rmf-dashboard-framework/src/components/admin/user-list-card.stories.tsx diff --git a/packages/dashboard/src/components/admin/user-list-card.test.tsx b/packages/rmf-dashboard-framework/src/components/admin/user-list-card.test.tsx similarity index 100% rename from packages/dashboard/src/components/admin/user-list-card.test.tsx rename to packages/rmf-dashboard-framework/src/components/admin/user-list-card.test.tsx diff --git a/packages/dashboard/src/components/admin/user-list-card.tsx b/packages/rmf-dashboard-framework/src/components/admin/user-list-card.tsx similarity index 100% rename from packages/dashboard/src/components/admin/user-list-card.tsx rename to packages/rmf-dashboard-framework/src/components/admin/user-list-card.tsx diff --git a/packages/dashboard/src/components/admin/user-list-page.tsx b/packages/rmf-dashboard-framework/src/components/admin/user-list-page.tsx similarity index 100% rename from packages/dashboard/src/components/admin/user-list-page.tsx rename to packages/rmf-dashboard-framework/src/components/admin/user-list-page.tsx diff --git a/packages/dashboard/src/components/admin/user-profile-page.tsx b/packages/rmf-dashboard-framework/src/components/admin/user-profile-page.tsx similarity index 100% rename from packages/dashboard/src/components/admin/user-profile-page.tsx rename to packages/rmf-dashboard-framework/src/components/admin/user-profile-page.tsx diff --git a/packages/dashboard/src/components/admin/user-profile.stories.tsx b/packages/rmf-dashboard-framework/src/components/admin/user-profile.stories.tsx similarity index 100% rename from packages/dashboard/src/components/admin/user-profile.stories.tsx rename to packages/rmf-dashboard-framework/src/components/admin/user-profile.stories.tsx diff --git a/packages/dashboard/src/components/admin/user-profile.test.tsx b/packages/rmf-dashboard-framework/src/components/admin/user-profile.test.tsx similarity index 100% rename from packages/dashboard/src/components/admin/user-profile.test.tsx rename to packages/rmf-dashboard-framework/src/components/admin/user-profile.test.tsx diff --git a/packages/dashboard/src/components/admin/user-profile.tsx b/packages/rmf-dashboard-framework/src/components/admin/user-profile.tsx similarity index 100% rename from packages/dashboard/src/components/admin/user-profile.tsx rename to packages/rmf-dashboard-framework/src/components/admin/user-profile.tsx diff --git a/packages/dashboard/src/components/alert-manager.tsx b/packages/rmf-dashboard-framework/src/components/alert-manager.tsx similarity index 100% rename from packages/dashboard/src/components/alert-manager.tsx rename to packages/rmf-dashboard-framework/src/components/alert-manager.tsx diff --git a/packages/dashboard/src/components/app-events.ts b/packages/rmf-dashboard-framework/src/components/app-events.ts similarity index 100% rename from packages/dashboard/src/components/app-events.ts rename to packages/rmf-dashboard-framework/src/components/app-events.ts diff --git a/packages/dashboard/src/components/appbar.test.tsx b/packages/rmf-dashboard-framework/src/components/appbar.test.tsx similarity index 100% rename from packages/dashboard/src/components/appbar.test.tsx rename to packages/rmf-dashboard-framework/src/components/appbar.test.tsx diff --git a/packages/dashboard/src/components/appbar.tsx b/packages/rmf-dashboard-framework/src/components/appbar.tsx similarity index 100% rename from packages/dashboard/src/components/appbar.tsx rename to packages/rmf-dashboard-framework/src/components/appbar.tsx diff --git a/packages/dashboard/src/components/beacons/beacon-table-datagrid.stories.tsx b/packages/rmf-dashboard-framework/src/components/beacons/beacon-table-datagrid.stories.tsx similarity index 100% rename from packages/dashboard/src/components/beacons/beacon-table-datagrid.stories.tsx rename to packages/rmf-dashboard-framework/src/components/beacons/beacon-table-datagrid.stories.tsx diff --git a/packages/dashboard/src/components/beacons/beacon-table-datagrid.test.tsx b/packages/rmf-dashboard-framework/src/components/beacons/beacon-table-datagrid.test.tsx similarity index 100% rename from packages/dashboard/src/components/beacons/beacon-table-datagrid.test.tsx rename to packages/rmf-dashboard-framework/src/components/beacons/beacon-table-datagrid.test.tsx diff --git a/packages/dashboard/src/components/beacons/beacon-table-datagrid.tsx b/packages/rmf-dashboard-framework/src/components/beacons/beacon-table-datagrid.tsx similarity index 100% rename from packages/dashboard/src/components/beacons/beacon-table-datagrid.tsx rename to packages/rmf-dashboard-framework/src/components/beacons/beacon-table-datagrid.tsx diff --git a/packages/dashboard/src/components/beacons/beacons-table.tsx b/packages/rmf-dashboard-framework/src/components/beacons/beacons-table.tsx similarity index 100% rename from packages/dashboard/src/components/beacons/beacons-table.tsx rename to packages/rmf-dashboard-framework/src/components/beacons/beacons-table.tsx diff --git a/packages/dashboard/src/components/beacons/index.ts b/packages/rmf-dashboard-framework/src/components/beacons/index.ts similarity index 100% rename from packages/dashboard/src/components/beacons/index.ts rename to packages/rmf-dashboard-framework/src/components/beacons/index.ts diff --git a/packages/dashboard/src/components/beacons/test-utils.test.ts b/packages/rmf-dashboard-framework/src/components/beacons/test-utils.test.ts similarity index 100% rename from packages/dashboard/src/components/beacons/test-utils.test.ts rename to packages/rmf-dashboard-framework/src/components/beacons/test-utils.test.ts diff --git a/packages/dashboard/src/components/confirmation-dialog.stories.tsx b/packages/rmf-dashboard-framework/src/components/confirmation-dialog.stories.tsx similarity index 100% rename from packages/dashboard/src/components/confirmation-dialog.stories.tsx rename to packages/rmf-dashboard-framework/src/components/confirmation-dialog.stories.tsx diff --git a/packages/dashboard/src/components/confirmation-dialog.test.tsx b/packages/rmf-dashboard-framework/src/components/confirmation-dialog.test.tsx similarity index 100% rename from packages/dashboard/src/components/confirmation-dialog.test.tsx rename to packages/rmf-dashboard-framework/src/components/confirmation-dialog.test.tsx diff --git a/packages/dashboard/src/components/confirmation-dialog.tsx b/packages/rmf-dashboard-framework/src/components/confirmation-dialog.tsx similarity index 100% rename from packages/dashboard/src/components/confirmation-dialog.tsx rename to packages/rmf-dashboard-framework/src/components/confirmation-dialog.tsx diff --git a/packages/dashboard/src/components/delivery-alert-store.tsx b/packages/rmf-dashboard-framework/src/components/delivery-alert-store.tsx similarity index 100% rename from packages/dashboard/src/components/delivery-alert-store.tsx rename to packages/rmf-dashboard-framework/src/components/delivery-alert-store.tsx diff --git a/packages/dashboard/src/components/doors/door-card.stories.tsx b/packages/rmf-dashboard-framework/src/components/doors/door-card.stories.tsx similarity index 100% rename from packages/dashboard/src/components/doors/door-card.stories.tsx rename to packages/rmf-dashboard-framework/src/components/doors/door-card.stories.tsx diff --git a/packages/dashboard/src/components/doors/door-card.tsx b/packages/rmf-dashboard-framework/src/components/doors/door-card.tsx similarity index 100% rename from packages/dashboard/src/components/doors/door-card.tsx rename to packages/rmf-dashboard-framework/src/components/doors/door-card.tsx diff --git a/packages/dashboard/src/components/doors/door-controls.tsx b/packages/rmf-dashboard-framework/src/components/doors/door-controls.tsx similarity index 100% rename from packages/dashboard/src/components/doors/door-controls.tsx rename to packages/rmf-dashboard-framework/src/components/doors/door-controls.tsx diff --git a/packages/dashboard/src/components/doors/door-summary.tsx b/packages/rmf-dashboard-framework/src/components/doors/door-summary.tsx similarity index 100% rename from packages/dashboard/src/components/doors/door-summary.tsx rename to packages/rmf-dashboard-framework/src/components/doors/door-summary.tsx diff --git a/packages/dashboard/src/components/doors/door-table-datagrid.stories.tsx b/packages/rmf-dashboard-framework/src/components/doors/door-table-datagrid.stories.tsx similarity index 100% rename from packages/dashboard/src/components/doors/door-table-datagrid.stories.tsx rename to packages/rmf-dashboard-framework/src/components/doors/door-table-datagrid.stories.tsx diff --git a/packages/dashboard/src/components/doors/door-table-datagrid.test.tsx b/packages/rmf-dashboard-framework/src/components/doors/door-table-datagrid.test.tsx similarity index 100% rename from packages/dashboard/src/components/doors/door-table-datagrid.test.tsx rename to packages/rmf-dashboard-framework/src/components/doors/door-table-datagrid.test.tsx diff --git a/packages/dashboard/src/components/doors/door-table-datagrid.tsx b/packages/rmf-dashboard-framework/src/components/doors/door-table-datagrid.tsx similarity index 100% rename from packages/dashboard/src/components/doors/door-table-datagrid.tsx rename to packages/rmf-dashboard-framework/src/components/doors/door-table-datagrid.tsx diff --git a/packages/dashboard/src/components/doors/door-utils.ts b/packages/rmf-dashboard-framework/src/components/doors/door-utils.ts similarity index 100% rename from packages/dashboard/src/components/doors/door-utils.ts rename to packages/rmf-dashboard-framework/src/components/doors/door-utils.ts diff --git a/packages/dashboard/src/components/doors/doors-table.tsx b/packages/rmf-dashboard-framework/src/components/doors/doors-table.tsx similarity index 100% rename from packages/dashboard/src/components/doors/doors-table.tsx rename to packages/rmf-dashboard-framework/src/components/doors/doors-table.tsx diff --git a/packages/dashboard/src/components/doors/index.tsx b/packages/rmf-dashboard-framework/src/components/doors/index.tsx similarity index 100% rename from packages/dashboard/src/components/doors/index.tsx rename to packages/rmf-dashboard-framework/src/components/doors/index.tsx diff --git a/packages/dashboard/src/components/doors/test-utils.test.ts b/packages/rmf-dashboard-framework/src/components/doors/test-utils.test.ts similarity index 100% rename from packages/dashboard/src/components/doors/test-utils.test.ts rename to packages/rmf-dashboard-framework/src/components/doors/test-utils.test.ts diff --git a/packages/dashboard/src/components/form-inputs.test.tsx b/packages/rmf-dashboard-framework/src/components/form-inputs.test.tsx similarity index 100% rename from packages/dashboard/src/components/form-inputs.test.tsx rename to packages/rmf-dashboard-framework/src/components/form-inputs.test.tsx diff --git a/packages/dashboard/src/components/form-inputs.tsx b/packages/rmf-dashboard-framework/src/components/form-inputs.tsx similarity index 100% rename from packages/dashboard/src/components/form-inputs.tsx rename to packages/rmf-dashboard-framework/src/components/form-inputs.tsx diff --git a/packages/dashboard/src/components/icons/CloseFullscreen.tsx b/packages/rmf-dashboard-framework/src/components/icons/CloseFullscreen.tsx similarity index 100% rename from packages/dashboard/src/components/icons/CloseFullscreen.tsx rename to packages/rmf-dashboard-framework/src/components/icons/CloseFullscreen.tsx diff --git a/packages/dashboard/src/components/icons/OpenInFull.tsx b/packages/rmf-dashboard-framework/src/components/icons/OpenInFull.tsx similarity index 100% rename from packages/dashboard/src/components/icons/OpenInFull.tsx rename to packages/rmf-dashboard-framework/src/components/icons/OpenInFull.tsx diff --git a/packages/dashboard/src/components/icons/index.ts b/packages/rmf-dashboard-framework/src/components/icons/index.ts similarity index 100% rename from packages/dashboard/src/components/icons/index.ts rename to packages/rmf-dashboard-framework/src/components/icons/index.ts diff --git a/packages/dashboard/src/components/index.ts b/packages/rmf-dashboard-framework/src/components/index.ts similarity index 100% rename from packages/dashboard/src/components/index.ts rename to packages/rmf-dashboard-framework/src/components/index.ts diff --git a/packages/dashboard/src/components/lifts/index.ts b/packages/rmf-dashboard-framework/src/components/lifts/index.ts similarity index 100% rename from packages/dashboard/src/components/lifts/index.ts rename to packages/rmf-dashboard-framework/src/components/lifts/index.ts diff --git a/packages/dashboard/src/components/lifts/lift-card.stories.tsx b/packages/rmf-dashboard-framework/src/components/lifts/lift-card.stories.tsx similarity index 100% rename from packages/dashboard/src/components/lifts/lift-card.stories.tsx rename to packages/rmf-dashboard-framework/src/components/lifts/lift-card.stories.tsx diff --git a/packages/dashboard/src/components/lifts/lift-card.tsx b/packages/rmf-dashboard-framework/src/components/lifts/lift-card.tsx similarity index 100% rename from packages/dashboard/src/components/lifts/lift-card.tsx rename to packages/rmf-dashboard-framework/src/components/lifts/lift-card.tsx diff --git a/packages/dashboard/src/components/lifts/lift-controls.tsx b/packages/rmf-dashboard-framework/src/components/lifts/lift-controls.tsx similarity index 100% rename from packages/dashboard/src/components/lifts/lift-controls.tsx rename to packages/rmf-dashboard-framework/src/components/lifts/lift-controls.tsx diff --git a/packages/dashboard/src/components/lifts/lift-request-dialog.test.tsx b/packages/rmf-dashboard-framework/src/components/lifts/lift-request-dialog.test.tsx similarity index 100% rename from packages/dashboard/src/components/lifts/lift-request-dialog.test.tsx rename to packages/rmf-dashboard-framework/src/components/lifts/lift-request-dialog.test.tsx diff --git a/packages/dashboard/src/components/lifts/lift-request-dialog.tsx b/packages/rmf-dashboard-framework/src/components/lifts/lift-request-dialog.tsx similarity index 100% rename from packages/dashboard/src/components/lifts/lift-request-dialog.tsx rename to packages/rmf-dashboard-framework/src/components/lifts/lift-request-dialog.tsx diff --git a/packages/dashboard/src/components/lifts/lift-summary.tsx b/packages/rmf-dashboard-framework/src/components/lifts/lift-summary.tsx similarity index 100% rename from packages/dashboard/src/components/lifts/lift-summary.tsx rename to packages/rmf-dashboard-framework/src/components/lifts/lift-summary.tsx diff --git a/packages/dashboard/src/components/lifts/lift-table-datagrid.stories.tsx b/packages/rmf-dashboard-framework/src/components/lifts/lift-table-datagrid.stories.tsx similarity index 100% rename from packages/dashboard/src/components/lifts/lift-table-datagrid.stories.tsx rename to packages/rmf-dashboard-framework/src/components/lifts/lift-table-datagrid.stories.tsx diff --git a/packages/dashboard/src/components/lifts/lift-table-datagrid.test.tsx b/packages/rmf-dashboard-framework/src/components/lifts/lift-table-datagrid.test.tsx similarity index 100% rename from packages/dashboard/src/components/lifts/lift-table-datagrid.test.tsx rename to packages/rmf-dashboard-framework/src/components/lifts/lift-table-datagrid.test.tsx diff --git a/packages/dashboard/src/components/lifts/lift-table-datagrid.tsx b/packages/rmf-dashboard-framework/src/components/lifts/lift-table-datagrid.tsx similarity index 100% rename from packages/dashboard/src/components/lifts/lift-table-datagrid.tsx rename to packages/rmf-dashboard-framework/src/components/lifts/lift-table-datagrid.tsx diff --git a/packages/dashboard/src/components/lifts/lift-utils.ts b/packages/rmf-dashboard-framework/src/components/lifts/lift-utils.ts similarity index 100% rename from packages/dashboard/src/components/lifts/lift-utils.ts rename to packages/rmf-dashboard-framework/src/components/lifts/lift-utils.ts diff --git a/packages/dashboard/src/components/lifts/lifts-table.tsx b/packages/rmf-dashboard-framework/src/components/lifts/lifts-table.tsx similarity index 100% rename from packages/dashboard/src/components/lifts/lifts-table.tsx rename to packages/rmf-dashboard-framework/src/components/lifts/lifts-table.tsx diff --git a/packages/dashboard/src/components/lifts/test-utils.test.ts b/packages/rmf-dashboard-framework/src/components/lifts/test-utils.test.ts similarity index 100% rename from packages/dashboard/src/components/lifts/test-utils.test.ts rename to packages/rmf-dashboard-framework/src/components/lifts/test-utils.test.ts diff --git a/packages/dashboard/src/components/loading.stories.tsx b/packages/rmf-dashboard-framework/src/components/loading.stories.tsx similarity index 100% rename from packages/dashboard/src/components/loading.stories.tsx rename to packages/rmf-dashboard-framework/src/components/loading.stories.tsx diff --git a/packages/dashboard/src/components/loading.test.tsx b/packages/rmf-dashboard-framework/src/components/loading.test.tsx similarity index 100% rename from packages/dashboard/src/components/loading.test.tsx rename to packages/rmf-dashboard-framework/src/components/loading.test.tsx diff --git a/packages/dashboard/src/components/loading.tsx b/packages/rmf-dashboard-framework/src/components/loading.tsx similarity index 100% rename from packages/dashboard/src/components/loading.tsx rename to packages/rmf-dashboard-framework/src/components/loading.tsx diff --git a/packages/dashboard/src/components/locale.tsx b/packages/rmf-dashboard-framework/src/components/locale.tsx similarity index 100% rename from packages/dashboard/src/components/locale.tsx rename to packages/rmf-dashboard-framework/src/components/locale.tsx diff --git a/packages/dashboard/src/components/login-card.stories.tsx b/packages/rmf-dashboard-framework/src/components/login-card.stories.tsx similarity index 100% rename from packages/dashboard/src/components/login-card.stories.tsx rename to packages/rmf-dashboard-framework/src/components/login-card.stories.tsx diff --git a/packages/dashboard/src/components/login-card.tsx b/packages/rmf-dashboard-framework/src/components/login-card.tsx similarity index 100% rename from packages/dashboard/src/components/login-card.tsx rename to packages/rmf-dashboard-framework/src/components/login-card.tsx diff --git a/packages/dashboard/src/components/map/camera-control.tsx b/packages/rmf-dashboard-framework/src/components/map/camera-control.tsx similarity index 100% rename from packages/dashboard/src/components/map/camera-control.tsx rename to packages/rmf-dashboard-framework/src/components/map/camera-control.tsx diff --git a/packages/dashboard/src/components/map/circle-shape.tsx b/packages/rmf-dashboard-framework/src/components/map/circle-shape.tsx similarity index 100% rename from packages/dashboard/src/components/map/circle-shape.tsx rename to packages/rmf-dashboard-framework/src/components/map/circle-shape.tsx diff --git a/packages/dashboard/src/components/map/cube-maker.tsx b/packages/rmf-dashboard-framework/src/components/map/cube-maker.tsx similarity index 100% rename from packages/dashboard/src/components/map/cube-maker.tsx rename to packages/rmf-dashboard-framework/src/components/map/cube-maker.tsx diff --git a/packages/dashboard/src/components/map/door-three-maker.tsx b/packages/rmf-dashboard-framework/src/components/map/door-three-maker.tsx similarity index 100% rename from packages/dashboard/src/components/map/door-three-maker.tsx rename to packages/rmf-dashboard-framework/src/components/map/door-three-maker.tsx diff --git a/packages/dashboard/src/components/map/door-three.tsx b/packages/rmf-dashboard-framework/src/components/map/door-three.tsx similarity index 100% rename from packages/dashboard/src/components/map/door-three.tsx rename to packages/rmf-dashboard-framework/src/components/map/door-three.tsx diff --git a/packages/dashboard/src/components/map/image-maker.tsx b/packages/rmf-dashboard-framework/src/components/map/image-maker.tsx similarity index 100% rename from packages/dashboard/src/components/map/image-maker.tsx rename to packages/rmf-dashboard-framework/src/components/map/image-maker.tsx diff --git a/packages/dashboard/src/components/map/index.tsx b/packages/rmf-dashboard-framework/src/components/map/index.tsx similarity index 100% rename from packages/dashboard/src/components/map/index.tsx rename to packages/rmf-dashboard-framework/src/components/map/index.tsx diff --git a/packages/dashboard/src/components/map/layer-control.test.tsx b/packages/rmf-dashboard-framework/src/components/map/layer-control.test.tsx similarity index 100% rename from packages/dashboard/src/components/map/layer-control.test.tsx rename to packages/rmf-dashboard-framework/src/components/map/layer-control.test.tsx diff --git a/packages/dashboard/src/components/map/layers-controller.tsx b/packages/rmf-dashboard-framework/src/components/map/layers-controller.tsx similarity index 100% rename from packages/dashboard/src/components/map/layers-controller.tsx rename to packages/rmf-dashboard-framework/src/components/map/layers-controller.tsx diff --git a/packages/dashboard/src/components/map/lift-three-maker.tsx b/packages/rmf-dashboard-framework/src/components/map/lift-three-maker.tsx similarity index 100% rename from packages/dashboard/src/components/map/lift-three-maker.tsx rename to packages/rmf-dashboard-framework/src/components/map/lift-three-maker.tsx diff --git a/packages/dashboard/src/components/map/lift-three.tsx b/packages/rmf-dashboard-framework/src/components/map/lift-three.tsx similarity index 100% rename from packages/dashboard/src/components/map/lift-three.tsx rename to packages/rmf-dashboard-framework/src/components/map/lift-three.tsx diff --git a/packages/dashboard/src/components/map/robot-three-maker.tsx b/packages/rmf-dashboard-framework/src/components/map/robot-three-maker.tsx similarity index 100% rename from packages/dashboard/src/components/map/robot-three-maker.tsx rename to packages/rmf-dashboard-framework/src/components/map/robot-three-maker.tsx diff --git a/packages/dashboard/src/components/map/robot-three.tsx b/packages/rmf-dashboard-framework/src/components/map/robot-three.tsx similarity index 100% rename from packages/dashboard/src/components/map/robot-three.tsx rename to packages/rmf-dashboard-framework/src/components/map/robot-three.tsx diff --git a/packages/dashboard/src/components/map/shape-three-rendering.tsx b/packages/rmf-dashboard-framework/src/components/map/shape-three-rendering.tsx similarity index 100% rename from packages/dashboard/src/components/map/shape-three-rendering.tsx rename to packages/rmf-dashboard-framework/src/components/map/shape-three-rendering.tsx diff --git a/packages/dashboard/src/components/map/test-utils.test.tsx b/packages/rmf-dashboard-framework/src/components/map/test-utils.test.tsx similarity index 100% rename from packages/dashboard/src/components/map/test-utils.test.tsx rename to packages/rmf-dashboard-framework/src/components/map/test-utils.test.tsx diff --git a/packages/dashboard/src/components/map/text-maker.tsx b/packages/rmf-dashboard-framework/src/components/map/text-maker.tsx similarity index 100% rename from packages/dashboard/src/components/map/text-maker.tsx rename to packages/rmf-dashboard-framework/src/components/map/text-maker.tsx diff --git a/packages/dashboard/src/components/map/utils.ts b/packages/rmf-dashboard-framework/src/components/map/utils.ts similarity index 100% rename from packages/dashboard/src/components/map/utils.ts rename to packages/rmf-dashboard-framework/src/components/map/utils.ts diff --git a/packages/dashboard/src/components/map/wall-maker.tsx b/packages/rmf-dashboard-framework/src/components/map/wall-maker.tsx similarity index 100% rename from packages/dashboard/src/components/map/wall-maker.tsx rename to packages/rmf-dashboard-framework/src/components/map/wall-maker.tsx diff --git a/packages/dashboard/src/components/place.ts b/packages/rmf-dashboard-framework/src/components/place.ts similarity index 100% rename from packages/dashboard/src/components/place.ts rename to packages/rmf-dashboard-framework/src/components/place.ts diff --git a/packages/dashboard/src/components/react-three-fiber-hack.d.ts b/packages/rmf-dashboard-framework/src/components/react-three-fiber-hack.d.ts similarity index 100% rename from packages/dashboard/src/components/react-three-fiber-hack.d.ts rename to packages/rmf-dashboard-framework/src/components/react-three-fiber-hack.d.ts diff --git a/packages/dashboard/src/components/rmf-dashboard.tsx b/packages/rmf-dashboard-framework/src/components/rmf-dashboard.tsx similarity index 100% rename from packages/dashboard/src/components/rmf-dashboard.tsx rename to packages/rmf-dashboard-framework/src/components/rmf-dashboard.tsx diff --git a/packages/dashboard/src/components/robots/circular-progress-bar.stories.tsx b/packages/rmf-dashboard-framework/src/components/robots/circular-progress-bar.stories.tsx similarity index 100% rename from packages/dashboard/src/components/robots/circular-progress-bar.stories.tsx rename to packages/rmf-dashboard-framework/src/components/robots/circular-progress-bar.stories.tsx diff --git a/packages/dashboard/src/components/robots/circular-progress-bar.test.tsx b/packages/rmf-dashboard-framework/src/components/robots/circular-progress-bar.test.tsx similarity index 100% rename from packages/dashboard/src/components/robots/circular-progress-bar.test.tsx rename to packages/rmf-dashboard-framework/src/components/robots/circular-progress-bar.test.tsx diff --git a/packages/dashboard/src/components/robots/circular-progress-bar.tsx b/packages/rmf-dashboard-framework/src/components/robots/circular-progress-bar.tsx similarity index 100% rename from packages/dashboard/src/components/robots/circular-progress-bar.tsx rename to packages/rmf-dashboard-framework/src/components/robots/circular-progress-bar.tsx diff --git a/packages/dashboard/src/components/robots/index.ts b/packages/rmf-dashboard-framework/src/components/robots/index.ts similarity index 100% rename from packages/dashboard/src/components/robots/index.ts rename to packages/rmf-dashboard-framework/src/components/robots/index.ts diff --git a/packages/dashboard/src/components/robots/linear-progress-bar.stories.tsx b/packages/rmf-dashboard-framework/src/components/robots/linear-progress-bar.stories.tsx similarity index 100% rename from packages/dashboard/src/components/robots/linear-progress-bar.stories.tsx rename to packages/rmf-dashboard-framework/src/components/robots/linear-progress-bar.stories.tsx diff --git a/packages/dashboard/src/components/robots/linear-progress-bar.test.tsx b/packages/rmf-dashboard-framework/src/components/robots/linear-progress-bar.test.tsx similarity index 100% rename from packages/dashboard/src/components/robots/linear-progress-bar.test.tsx rename to packages/rmf-dashboard-framework/src/components/robots/linear-progress-bar.test.tsx diff --git a/packages/dashboard/src/components/robots/linear-progress-bar.tsx b/packages/rmf-dashboard-framework/src/components/robots/linear-progress-bar.tsx similarity index 100% rename from packages/dashboard/src/components/robots/linear-progress-bar.tsx rename to packages/rmf-dashboard-framework/src/components/robots/linear-progress-bar.tsx diff --git a/packages/dashboard/src/components/robots/mutex-group-table.stories.tsx b/packages/rmf-dashboard-framework/src/components/robots/mutex-group-table.stories.tsx similarity index 100% rename from packages/dashboard/src/components/robots/mutex-group-table.stories.tsx rename to packages/rmf-dashboard-framework/src/components/robots/mutex-group-table.stories.tsx diff --git a/packages/dashboard/src/components/robots/mutex-group-table.test.tsx b/packages/rmf-dashboard-framework/src/components/robots/mutex-group-table.test.tsx similarity index 100% rename from packages/dashboard/src/components/robots/mutex-group-table.test.tsx rename to packages/rmf-dashboard-framework/src/components/robots/mutex-group-table.test.tsx diff --git a/packages/dashboard/src/components/robots/mutex-group-table.tsx b/packages/rmf-dashboard-framework/src/components/robots/mutex-group-table.tsx similarity index 100% rename from packages/dashboard/src/components/robots/mutex-group-table.tsx rename to packages/rmf-dashboard-framework/src/components/robots/mutex-group-table.tsx diff --git a/packages/dashboard/src/components/robots/robot-decommission.tsx b/packages/rmf-dashboard-framework/src/components/robots/robot-decommission.tsx similarity index 100% rename from packages/dashboard/src/components/robots/robot-decommission.tsx rename to packages/rmf-dashboard-framework/src/components/robots/robot-decommission.tsx diff --git a/packages/dashboard/src/components/robots/robot-info-card.tsx b/packages/rmf-dashboard-framework/src/components/robots/robot-info-card.tsx similarity index 100% rename from packages/dashboard/src/components/robots/robot-info-card.tsx rename to packages/rmf-dashboard-framework/src/components/robots/robot-info-card.tsx diff --git a/packages/dashboard/src/components/robots/robot-info.stories.tsx b/packages/rmf-dashboard-framework/src/components/robots/robot-info.stories.tsx similarity index 100% rename from packages/dashboard/src/components/robots/robot-info.stories.tsx rename to packages/rmf-dashboard-framework/src/components/robots/robot-info.stories.tsx diff --git a/packages/dashboard/src/components/robots/robot-info.test.tsx b/packages/rmf-dashboard-framework/src/components/robots/robot-info.test.tsx similarity index 100% rename from packages/dashboard/src/components/robots/robot-info.test.tsx rename to packages/rmf-dashboard-framework/src/components/robots/robot-info.test.tsx diff --git a/packages/dashboard/src/components/robots/robot-info.tsx b/packages/rmf-dashboard-framework/src/components/robots/robot-info.tsx similarity index 100% rename from packages/dashboard/src/components/robots/robot-info.tsx rename to packages/rmf-dashboard-framework/src/components/robots/robot-info.tsx diff --git a/packages/dashboard/src/components/robots/robot-mutex-group-table.tsx b/packages/rmf-dashboard-framework/src/components/robots/robot-mutex-group-table.tsx similarity index 100% rename from packages/dashboard/src/components/robots/robot-mutex-group-table.tsx rename to packages/rmf-dashboard-framework/src/components/robots/robot-mutex-group-table.tsx diff --git a/packages/dashboard/src/components/robots/robot-summary.tsx b/packages/rmf-dashboard-framework/src/components/robots/robot-summary.tsx similarity index 100% rename from packages/dashboard/src/components/robots/robot-summary.tsx rename to packages/rmf-dashboard-framework/src/components/robots/robot-summary.tsx diff --git a/packages/dashboard/src/components/robots/robot-table-datagrid.stories.tsx b/packages/rmf-dashboard-framework/src/components/robots/robot-table-datagrid.stories.tsx similarity index 100% rename from packages/dashboard/src/components/robots/robot-table-datagrid.stories.tsx rename to packages/rmf-dashboard-framework/src/components/robots/robot-table-datagrid.stories.tsx diff --git a/packages/dashboard/src/components/robots/robot-table-datagrid.test.tsx b/packages/rmf-dashboard-framework/src/components/robots/robot-table-datagrid.test.tsx similarity index 100% rename from packages/dashboard/src/components/robots/robot-table-datagrid.test.tsx rename to packages/rmf-dashboard-framework/src/components/robots/robot-table-datagrid.test.tsx diff --git a/packages/dashboard/src/components/robots/robot-table-datagrid.tsx b/packages/rmf-dashboard-framework/src/components/robots/robot-table-datagrid.tsx similarity index 100% rename from packages/dashboard/src/components/robots/robot-table-datagrid.tsx rename to packages/rmf-dashboard-framework/src/components/robots/robot-table-datagrid.tsx diff --git a/packages/dashboard/src/components/robots/robots-table.tsx b/packages/rmf-dashboard-framework/src/components/robots/robots-table.tsx similarity index 100% rename from packages/dashboard/src/components/robots/robots-table.tsx rename to packages/rmf-dashboard-framework/src/components/robots/robots-table.tsx diff --git a/packages/dashboard/src/components/robots/test-utils.test.ts b/packages/rmf-dashboard-framework/src/components/robots/test-utils.test.ts similarity index 100% rename from packages/dashboard/src/components/robots/test-utils.test.ts rename to packages/rmf-dashboard-framework/src/components/robots/test-utils.test.ts diff --git a/packages/dashboard/src/components/robots/utils.ts b/packages/rmf-dashboard-framework/src/components/robots/utils.ts similarity index 100% rename from packages/dashboard/src/components/robots/utils.ts rename to packages/rmf-dashboard-framework/src/components/robots/utils.ts diff --git a/packages/dashboard/src/components/tasks/booking-label.ts b/packages/rmf-dashboard-framework/src/components/tasks/booking-label.ts similarity index 100% rename from packages/dashboard/src/components/tasks/booking-label.ts rename to packages/rmf-dashboard-framework/src/components/tasks/booking-label.ts diff --git a/packages/dashboard/src/components/tasks/create-task.stories.tsx b/packages/rmf-dashboard-framework/src/components/tasks/create-task.stories.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/create-task.stories.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/create-task.stories.tsx diff --git a/packages/dashboard/src/components/tasks/create-task.tsx b/packages/rmf-dashboard-framework/src/components/tasks/create-task.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/create-task.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/create-task.tsx diff --git a/packages/dashboard/src/components/tasks/index.ts b/packages/rmf-dashboard-framework/src/components/tasks/index.ts similarity index 100% rename from packages/dashboard/src/components/tasks/index.ts rename to packages/rmf-dashboard-framework/src/components/tasks/index.ts diff --git a/packages/dashboard/src/components/tasks/make-tasks.test.ts b/packages/rmf-dashboard-framework/src/components/tasks/make-tasks.test.ts similarity index 100% rename from packages/dashboard/src/components/tasks/make-tasks.test.ts rename to packages/rmf-dashboard-framework/src/components/tasks/make-tasks.test.ts diff --git a/packages/dashboard/src/components/tasks/task-booking-label-utils.tsx b/packages/rmf-dashboard-framework/src/components/tasks/task-booking-label-utils.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/task-booking-label-utils.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/task-booking-label-utils.tsx diff --git a/packages/dashboard/src/components/tasks/task-cancellation.tsx b/packages/rmf-dashboard-framework/src/components/tasks/task-cancellation.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/task-cancellation.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/task-cancellation.tsx diff --git a/packages/dashboard/src/components/tasks/task-details-card.tsx b/packages/rmf-dashboard-framework/src/components/tasks/task-details-card.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/task-details-card.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/task-details-card.tsx diff --git a/packages/dashboard/src/components/tasks/task-info.stories.tsx b/packages/rmf-dashboard-framework/src/components/tasks/task-info.stories.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/task-info.stories.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/task-info.stories.tsx diff --git a/packages/dashboard/src/components/tasks/task-info.test.tsx b/packages/rmf-dashboard-framework/src/components/tasks/task-info.test.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/task-info.test.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/task-info.test.tsx diff --git a/packages/dashboard/src/components/tasks/task-info.tsx b/packages/rmf-dashboard-framework/src/components/tasks/task-info.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/task-info.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/task-info.tsx diff --git a/packages/dashboard/src/components/tasks/task-inspector.tsx b/packages/rmf-dashboard-framework/src/components/tasks/task-inspector.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/task-inspector.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/task-inspector.tsx diff --git a/packages/dashboard/src/components/tasks/task-logs-app.tsx b/packages/rmf-dashboard-framework/src/components/tasks/task-logs-app.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/task-logs-app.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/task-logs-app.tsx diff --git a/packages/dashboard/src/components/tasks/task-logs.test.tsx b/packages/rmf-dashboard-framework/src/components/tasks/task-logs.test.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/task-logs.test.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/task-logs.test.tsx diff --git a/packages/dashboard/src/components/tasks/task-logs.tsx b/packages/rmf-dashboard-framework/src/components/tasks/task-logs.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/task-logs.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/task-logs.tsx diff --git a/packages/dashboard/src/components/tasks/task-schedule-event-edit-delete-popup.test.tsx b/packages/rmf-dashboard-framework/src/components/tasks/task-schedule-event-edit-delete-popup.test.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/task-schedule-event-edit-delete-popup.test.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/task-schedule-event-edit-delete-popup.test.tsx diff --git a/packages/dashboard/src/components/tasks/task-schedule-event-edit-delete-popup.tsx b/packages/rmf-dashboard-framework/src/components/tasks/task-schedule-event-edit-delete-popup.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/task-schedule-event-edit-delete-popup.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/task-schedule-event-edit-delete-popup.tsx diff --git a/packages/dashboard/src/components/tasks/task-schedule-utils.ts b/packages/rmf-dashboard-framework/src/components/tasks/task-schedule-utils.ts similarity index 100% rename from packages/dashboard/src/components/tasks/task-schedule-utils.ts rename to packages/rmf-dashboard-framework/src/components/tasks/task-schedule-utils.ts diff --git a/packages/dashboard/src/components/tasks/task-schedule.tsx b/packages/rmf-dashboard-framework/src/components/tasks/task-schedule.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/task-schedule.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/task-schedule.tsx diff --git a/packages/dashboard/src/components/tasks/task-summary.tsx b/packages/rmf-dashboard-framework/src/components/tasks/task-summary.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/task-summary.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/task-summary.tsx diff --git a/packages/dashboard/src/components/tasks/task-table-datagrid.test.tsx b/packages/rmf-dashboard-framework/src/components/tasks/task-table-datagrid.test.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/task-table-datagrid.test.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/task-table-datagrid.test.tsx diff --git a/packages/dashboard/src/components/tasks/task-table-datagrid.tsx b/packages/rmf-dashboard-framework/src/components/tasks/task-table-datagrid.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/task-table-datagrid.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/task-table-datagrid.tsx diff --git a/packages/dashboard/src/components/tasks/task-table.stories.tsx b/packages/rmf-dashboard-framework/src/components/tasks/task-table.stories.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/task-table.stories.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/task-table.stories.tsx diff --git a/packages/dashboard/src/components/tasks/task-table.test.tsx b/packages/rmf-dashboard-framework/src/components/tasks/task-table.test.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/task-table.test.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/task-table.test.tsx diff --git a/packages/dashboard/src/components/tasks/task-table.tsx b/packages/rmf-dashboard-framework/src/components/tasks/task-table.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/task-table.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/task-table.tsx diff --git a/packages/dashboard/src/components/tasks/task-timeline.stories.tsx b/packages/rmf-dashboard-framework/src/components/tasks/task-timeline.stories.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/task-timeline.stories.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/task-timeline.stories.tsx diff --git a/packages/dashboard/src/components/tasks/task-timeline.test.tsx b/packages/rmf-dashboard-framework/src/components/tasks/task-timeline.test.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/task-timeline.test.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/task-timeline.test.tsx diff --git a/packages/dashboard/src/components/tasks/task-timeline.tsx b/packages/rmf-dashboard-framework/src/components/tasks/task-timeline.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/task-timeline.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/task-timeline.tsx diff --git a/packages/dashboard/src/components/tasks/tasks-window.tsx b/packages/rmf-dashboard-framework/src/components/tasks/tasks-window.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/tasks-window.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/tasks-window.tsx diff --git a/packages/dashboard/src/components/tasks/test-data.test.ts b/packages/rmf-dashboard-framework/src/components/tasks/test-data.test.ts similarity index 100% rename from packages/dashboard/src/components/tasks/test-data.test.ts rename to packages/rmf-dashboard-framework/src/components/tasks/test-data.test.ts diff --git a/packages/dashboard/src/components/tasks/types/compose-clean.tsx b/packages/rmf-dashboard-framework/src/components/tasks/types/compose-clean.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/types/compose-clean.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/types/compose-clean.tsx diff --git a/packages/dashboard/src/components/tasks/types/custom-compose.tsx b/packages/rmf-dashboard-framework/src/components/tasks/types/custom-compose.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/types/custom-compose.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/types/custom-compose.tsx diff --git a/packages/dashboard/src/components/tasks/types/delivery-custom.test.tsx b/packages/rmf-dashboard-framework/src/components/tasks/types/delivery-custom.test.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/types/delivery-custom.test.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/types/delivery-custom.test.tsx diff --git a/packages/dashboard/src/components/tasks/types/delivery-custom.tsx b/packages/rmf-dashboard-framework/src/components/tasks/types/delivery-custom.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/types/delivery-custom.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/types/delivery-custom.tsx diff --git a/packages/dashboard/src/components/tasks/types/delivery.tsx b/packages/rmf-dashboard-framework/src/components/tasks/types/delivery.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/types/delivery.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/types/delivery.tsx diff --git a/packages/dashboard/src/components/tasks/types/index.ts b/packages/rmf-dashboard-framework/src/components/tasks/types/index.ts similarity index 100% rename from packages/dashboard/src/components/tasks/types/index.ts rename to packages/rmf-dashboard-framework/src/components/tasks/types/index.ts diff --git a/packages/dashboard/src/components/tasks/types/patrol.tsx b/packages/rmf-dashboard-framework/src/components/tasks/types/patrol.tsx similarity index 100% rename from packages/dashboard/src/components/tasks/types/patrol.tsx rename to packages/rmf-dashboard-framework/src/components/tasks/types/patrol.tsx diff --git a/packages/dashboard/src/components/tasks/types/utils.ts b/packages/rmf-dashboard-framework/src/components/tasks/types/utils.ts similarity index 100% rename from packages/dashboard/src/components/tasks/types/utils.ts rename to packages/rmf-dashboard-framework/src/components/tasks/types/utils.ts diff --git a/packages/dashboard/src/components/tasks/utils.ts b/packages/rmf-dashboard-framework/src/components/tasks/utils.ts similarity index 100% rename from packages/dashboard/src/components/tasks/utils.ts rename to packages/rmf-dashboard-framework/src/components/tasks/utils.ts diff --git a/packages/dashboard/src/components/theme.ts b/packages/rmf-dashboard-framework/src/components/theme.ts similarity index 100% rename from packages/dashboard/src/components/theme.ts rename to packages/rmf-dashboard-framework/src/components/theme.ts diff --git a/packages/dashboard/src/components/transfer-list.stories.tsx b/packages/rmf-dashboard-framework/src/components/transfer-list.stories.tsx similarity index 100% rename from packages/dashboard/src/components/transfer-list.stories.tsx rename to packages/rmf-dashboard-framework/src/components/transfer-list.stories.tsx diff --git a/packages/dashboard/src/components/transfer-list.test.tsx b/packages/rmf-dashboard-framework/src/components/transfer-list.test.tsx similarity index 100% rename from packages/dashboard/src/components/transfer-list.test.tsx rename to packages/rmf-dashboard-framework/src/components/transfer-list.test.tsx diff --git a/packages/dashboard/src/components/transfer-list.tsx b/packages/rmf-dashboard-framework/src/components/transfer-list.tsx similarity index 100% rename from packages/dashboard/src/components/transfer-list.tsx rename to packages/rmf-dashboard-framework/src/components/transfer-list.tsx diff --git a/packages/dashboard/src/components/utils/geometry.test.ts b/packages/rmf-dashboard-framework/src/components/utils/geometry.test.ts similarity index 100% rename from packages/dashboard/src/components/utils/geometry.test.ts rename to packages/rmf-dashboard-framework/src/components/utils/geometry.test.ts diff --git a/packages/dashboard/src/components/utils/geometry.ts b/packages/rmf-dashboard-framework/src/components/utils/geometry.ts similarity index 100% rename from packages/dashboard/src/components/utils/geometry.ts rename to packages/rmf-dashboard-framework/src/components/utils/geometry.ts diff --git a/packages/dashboard/src/components/utils/item-table.tsx b/packages/rmf-dashboard-framework/src/components/utils/item-table.tsx similarity index 100% rename from packages/dashboard/src/components/utils/item-table.tsx rename to packages/rmf-dashboard-framework/src/components/utils/item-table.tsx diff --git a/packages/dashboard/src/components/utils/misc.test.ts b/packages/rmf-dashboard-framework/src/components/utils/misc.test.ts similarity index 100% rename from packages/dashboard/src/components/utils/misc.test.ts rename to packages/rmf-dashboard-framework/src/components/utils/misc.test.ts diff --git a/packages/dashboard/src/components/utils/misc.ts b/packages/rmf-dashboard-framework/src/components/utils/misc.ts similarity index 100% rename from packages/dashboard/src/components/utils/misc.ts rename to packages/rmf-dashboard-framework/src/components/utils/misc.ts diff --git a/packages/dashboard/src/components/window/context.ts b/packages/rmf-dashboard-framework/src/components/window/context.ts similarity index 100% rename from packages/dashboard/src/components/window/context.ts rename to packages/rmf-dashboard-framework/src/components/window/context.ts diff --git a/packages/dashboard/src/components/window/demo.stories.tsx b/packages/rmf-dashboard-framework/src/components/window/demo.stories.tsx similarity index 100% rename from packages/dashboard/src/components/window/demo.stories.tsx rename to packages/rmf-dashboard-framework/src/components/window/demo.stories.tsx diff --git a/packages/dashboard/src/components/window/index.ts b/packages/rmf-dashboard-framework/src/components/window/index.ts similarity index 100% rename from packages/dashboard/src/components/window/index.ts rename to packages/rmf-dashboard-framework/src/components/window/index.ts diff --git a/packages/dashboard/src/components/window/no-rgl-animations.css b/packages/rmf-dashboard-framework/src/components/window/no-rgl-animations.css similarity index 100% rename from packages/dashboard/src/components/window/no-rgl-animations.css rename to packages/rmf-dashboard-framework/src/components/window/no-rgl-animations.css diff --git a/packages/dashboard/src/components/window/test-utils.test.ts b/packages/rmf-dashboard-framework/src/components/window/test-utils.test.ts similarity index 100% rename from packages/dashboard/src/components/window/test-utils.test.ts rename to packages/rmf-dashboard-framework/src/components/window/test-utils.test.ts diff --git a/packages/dashboard/src/components/window/window-container.tsx b/packages/rmf-dashboard-framework/src/components/window/window-container.tsx similarity index 100% rename from packages/dashboard/src/components/window/window-container.tsx rename to packages/rmf-dashboard-framework/src/components/window/window-container.tsx diff --git a/packages/dashboard/src/components/window/window-toolbar.stories.tsx b/packages/rmf-dashboard-framework/src/components/window/window-toolbar.stories.tsx similarity index 100% rename from packages/dashboard/src/components/window/window-toolbar.stories.tsx rename to packages/rmf-dashboard-framework/src/components/window/window-toolbar.stories.tsx diff --git a/packages/dashboard/src/components/window/window-toolbar.tsx b/packages/rmf-dashboard-framework/src/components/window/window-toolbar.tsx similarity index 100% rename from packages/dashboard/src/components/window/window-toolbar.tsx rename to packages/rmf-dashboard-framework/src/components/window/window-toolbar.tsx diff --git a/packages/dashboard/src/components/window/window.tsx b/packages/rmf-dashboard-framework/src/components/window/window.tsx similarity index 100% rename from packages/dashboard/src/components/window/window.tsx rename to packages/rmf-dashboard-framework/src/components/window/window.tsx diff --git a/packages/dashboard/src/components/workcells/index.ts b/packages/rmf-dashboard-framework/src/components/workcells/index.ts similarity index 100% rename from packages/dashboard/src/components/workcells/index.ts rename to packages/rmf-dashboard-framework/src/components/workcells/index.ts diff --git a/packages/dashboard/src/components/workcells/test-utils.test.ts b/packages/rmf-dashboard-framework/src/components/workcells/test-utils.test.ts similarity index 100% rename from packages/dashboard/src/components/workcells/test-utils.test.ts rename to packages/rmf-dashboard-framework/src/components/workcells/test-utils.test.ts diff --git a/packages/dashboard/src/components/workcells/utils.ts b/packages/rmf-dashboard-framework/src/components/workcells/utils.ts similarity index 100% rename from packages/dashboard/src/components/workcells/utils.ts rename to packages/rmf-dashboard-framework/src/components/workcells/utils.ts diff --git a/packages/dashboard/src/components/workcells/workcell-panel.stories.tsx b/packages/rmf-dashboard-framework/src/components/workcells/workcell-panel.stories.tsx similarity index 100% rename from packages/dashboard/src/components/workcells/workcell-panel.stories.tsx rename to packages/rmf-dashboard-framework/src/components/workcells/workcell-panel.stories.tsx diff --git a/packages/dashboard/src/components/workcells/workcell-panel.test.tsx b/packages/rmf-dashboard-framework/src/components/workcells/workcell-panel.test.tsx similarity index 100% rename from packages/dashboard/src/components/workcells/workcell-panel.test.tsx rename to packages/rmf-dashboard-framework/src/components/workcells/workcell-panel.test.tsx diff --git a/packages/dashboard/src/components/workcells/workcell-panel.tsx b/packages/rmf-dashboard-framework/src/components/workcells/workcell-panel.tsx similarity index 100% rename from packages/dashboard/src/components/workcells/workcell-panel.tsx rename to packages/rmf-dashboard-framework/src/components/workcells/workcell-panel.tsx diff --git a/packages/dashboard/src/components/workcells/workcell-table.test.tsx b/packages/rmf-dashboard-framework/src/components/workcells/workcell-table.test.tsx similarity index 100% rename from packages/dashboard/src/components/workcells/workcell-table.test.tsx rename to packages/rmf-dashboard-framework/src/components/workcells/workcell-table.test.tsx diff --git a/packages/dashboard/src/components/workcells/workcell-table.tsx b/packages/rmf-dashboard-framework/src/components/workcells/workcell-table.tsx similarity index 100% rename from packages/dashboard/src/components/workcells/workcell-table.tsx rename to packages/rmf-dashboard-framework/src/components/workcells/workcell-table.tsx diff --git a/packages/dashboard/src/components/workspace.tsx b/packages/rmf-dashboard-framework/src/components/workspace.tsx similarity index 100% rename from packages/dashboard/src/components/workspace.tsx rename to packages/rmf-dashboard-framework/src/components/workspace.tsx diff --git a/packages/dashboard/src/hooks/deferred-context.ts b/packages/rmf-dashboard-framework/src/hooks/deferred-context.ts similarity index 100% rename from packages/dashboard/src/hooks/deferred-context.ts rename to packages/rmf-dashboard-framework/src/hooks/deferred-context.ts diff --git a/packages/dashboard/src/hooks/use-app-controller.ts b/packages/rmf-dashboard-framework/src/hooks/use-app-controller.ts similarity index 100% rename from packages/dashboard/src/hooks/use-app-controller.ts rename to packages/rmf-dashboard-framework/src/hooks/use-app-controller.ts diff --git a/packages/dashboard/src/hooks/use-async.test.ts b/packages/rmf-dashboard-framework/src/hooks/use-async.test.ts similarity index 100% rename from packages/dashboard/src/hooks/use-async.test.ts rename to packages/rmf-dashboard-framework/src/hooks/use-async.test.ts diff --git a/packages/dashboard/src/hooks/use-async.ts b/packages/rmf-dashboard-framework/src/hooks/use-async.ts similarity index 100% rename from packages/dashboard/src/hooks/use-async.ts rename to packages/rmf-dashboard-framework/src/hooks/use-async.ts diff --git a/packages/dashboard/src/hooks/use-authenticator.ts b/packages/rmf-dashboard-framework/src/hooks/use-authenticator.ts similarity index 100% rename from packages/dashboard/src/hooks/use-authenticator.ts rename to packages/rmf-dashboard-framework/src/hooks/use-authenticator.ts diff --git a/packages/dashboard/src/hooks/use-create-task-form.tsx b/packages/rmf-dashboard-framework/src/hooks/use-create-task-form.tsx similarity index 100% rename from packages/dashboard/src/hooks/use-create-task-form.tsx rename to packages/rmf-dashboard-framework/src/hooks/use-create-task-form.tsx diff --git a/packages/dashboard/src/hooks/use-resources.ts b/packages/rmf-dashboard-framework/src/hooks/use-resources.ts similarity index 100% rename from packages/dashboard/src/hooks/use-resources.ts rename to packages/rmf-dashboard-framework/src/hooks/use-resources.ts diff --git a/packages/dashboard/src/hooks/use-rmf-api.ts b/packages/rmf-dashboard-framework/src/hooks/use-rmf-api.ts similarity index 100% rename from packages/dashboard/src/hooks/use-rmf-api.ts rename to packages/rmf-dashboard-framework/src/hooks/use-rmf-api.ts diff --git a/packages/dashboard/src/hooks/use-settings.ts b/packages/rmf-dashboard-framework/src/hooks/use-settings.ts similarity index 100% rename from packages/dashboard/src/hooks/use-settings.ts rename to packages/rmf-dashboard-framework/src/hooks/use-settings.ts diff --git a/packages/dashboard/src/hooks/use-task-registry.ts b/packages/rmf-dashboard-framework/src/hooks/use-task-registry.ts similarity index 100% rename from packages/dashboard/src/hooks/use-task-registry.ts rename to packages/rmf-dashboard-framework/src/hooks/use-task-registry.ts diff --git a/packages/dashboard/src/hooks/use-user-profile.tsx b/packages/rmf-dashboard-framework/src/hooks/use-user-profile.tsx similarity index 100% rename from packages/dashboard/src/hooks/use-user-profile.tsx rename to packages/rmf-dashboard-framework/src/hooks/use-user-profile.tsx diff --git a/packages/dashboard/src/micro-apps/doors-app.ts b/packages/rmf-dashboard-framework/src/micro-apps/doors-app.ts similarity index 100% rename from packages/dashboard/src/micro-apps/doors-app.ts rename to packages/rmf-dashboard-framework/src/micro-apps/doors-app.ts diff --git a/packages/dashboard/src/micro-apps/index.tsx b/packages/rmf-dashboard-framework/src/micro-apps/index.tsx similarity index 100% rename from packages/dashboard/src/micro-apps/index.tsx rename to packages/rmf-dashboard-framework/src/micro-apps/index.tsx diff --git a/packages/dashboard/src/micro-apps/lifts-app.ts b/packages/rmf-dashboard-framework/src/micro-apps/lifts-app.ts similarity index 100% rename from packages/dashboard/src/micro-apps/lifts-app.ts rename to packages/rmf-dashboard-framework/src/micro-apps/lifts-app.ts diff --git a/packages/dashboard/src/micro-apps/map-app.ts b/packages/rmf-dashboard-framework/src/micro-apps/map-app.ts similarity index 100% rename from packages/dashboard/src/micro-apps/map-app.ts rename to packages/rmf-dashboard-framework/src/micro-apps/map-app.ts diff --git a/packages/dashboard/src/micro-apps/robot-mutex-groups-app.ts b/packages/rmf-dashboard-framework/src/micro-apps/robot-mutex-groups-app.ts similarity index 100% rename from packages/dashboard/src/micro-apps/robot-mutex-groups-app.ts rename to packages/rmf-dashboard-framework/src/micro-apps/robot-mutex-groups-app.ts diff --git a/packages/dashboard/src/micro-apps/robots-app.ts b/packages/rmf-dashboard-framework/src/micro-apps/robots-app.ts similarity index 100% rename from packages/dashboard/src/micro-apps/robots-app.ts rename to packages/rmf-dashboard-framework/src/micro-apps/robots-app.ts diff --git a/packages/dashboard/src/micro-apps/tasks-app.ts b/packages/rmf-dashboard-framework/src/micro-apps/tasks-app.ts similarity index 100% rename from packages/dashboard/src/micro-apps/tasks-app.ts rename to packages/rmf-dashboard-framework/src/micro-apps/tasks-app.ts diff --git a/packages/dashboard/src/pages/index.ts b/packages/rmf-dashboard-framework/src/pages/index.ts similarity index 100% rename from packages/dashboard/src/pages/index.ts rename to packages/rmf-dashboard-framework/src/pages/index.ts diff --git a/packages/dashboard/src/pages/login-page.stories.tsx b/packages/rmf-dashboard-framework/src/pages/login-page.stories.tsx similarity index 100% rename from packages/dashboard/src/pages/login-page.stories.tsx rename to packages/rmf-dashboard-framework/src/pages/login-page.stories.tsx diff --git a/packages/dashboard/src/pages/login-page.test.tsx b/packages/rmf-dashboard-framework/src/pages/login-page.test.tsx similarity index 100% rename from packages/dashboard/src/pages/login-page.test.tsx rename to packages/rmf-dashboard-framework/src/pages/login-page.test.tsx diff --git a/packages/dashboard/src/pages/login-page.tsx b/packages/rmf-dashboard-framework/src/pages/login-page.tsx similarity index 100% rename from packages/dashboard/src/pages/login-page.tsx rename to packages/rmf-dashboard-framework/src/pages/login-page.tsx diff --git a/packages/dashboard/src/services/__mocks__/robot-trajectory-manager.ts b/packages/rmf-dashboard-framework/src/services/__mocks__/robot-trajectory-manager.ts similarity index 100% rename from packages/dashboard/src/services/__mocks__/robot-trajectory-manager.ts rename to packages/rmf-dashboard-framework/src/services/__mocks__/robot-trajectory-manager.ts diff --git a/packages/dashboard/src/services/__mocks__/trajectories.json b/packages/rmf-dashboard-framework/src/services/__mocks__/trajectories.json similarity index 100% rename from packages/dashboard/src/services/__mocks__/trajectories.json rename to packages/rmf-dashboard-framework/src/services/__mocks__/trajectories.json diff --git a/packages/dashboard/src/services/authenticator.ts b/packages/rmf-dashboard-framework/src/services/authenticator.ts similarity index 100% rename from packages/dashboard/src/services/authenticator.ts rename to packages/rmf-dashboard-framework/src/services/authenticator.ts diff --git a/packages/dashboard/src/services/color-manager.test.ts b/packages/rmf-dashboard-framework/src/services/color-manager.test.ts similarity index 100% rename from packages/dashboard/src/services/color-manager.test.ts rename to packages/rmf-dashboard-framework/src/services/color-manager.test.ts diff --git a/packages/dashboard/src/services/color-manager.ts b/packages/rmf-dashboard-framework/src/services/color-manager.ts similarity index 100% rename from packages/dashboard/src/services/color-manager.ts rename to packages/rmf-dashboard-framework/src/services/color-manager.ts diff --git a/packages/dashboard/src/services/keycloak.ts b/packages/rmf-dashboard-framework/src/services/keycloak.ts similarity index 100% rename from packages/dashboard/src/services/keycloak.ts rename to packages/rmf-dashboard-framework/src/services/keycloak.ts diff --git a/packages/dashboard/src/services/negotiation-status-manager.ts b/packages/rmf-dashboard-framework/src/services/negotiation-status-manager.ts similarity index 100% rename from packages/dashboard/src/services/negotiation-status-manager.ts rename to packages/rmf-dashboard-framework/src/services/negotiation-status-manager.ts diff --git a/packages/dashboard/src/services/permissions.ts b/packages/rmf-dashboard-framework/src/services/permissions.ts similarity index 100% rename from packages/dashboard/src/services/permissions.ts rename to packages/rmf-dashboard-framework/src/services/permissions.ts diff --git a/packages/dashboard/src/services/rmf-api.ts b/packages/rmf-dashboard-framework/src/services/rmf-api.ts similarity index 100% rename from packages/dashboard/src/services/rmf-api.ts rename to packages/rmf-dashboard-framework/src/services/rmf-api.ts diff --git a/packages/dashboard/src/services/robot-trajectory-manager.ts b/packages/rmf-dashboard-framework/src/services/robot-trajectory-manager.ts similarity index 100% rename from packages/dashboard/src/services/robot-trajectory-manager.ts rename to packages/rmf-dashboard-framework/src/services/robot-trajectory-manager.ts diff --git a/packages/dashboard/src/services/settings.ts b/packages/rmf-dashboard-framework/src/services/settings.ts similarity index 100% rename from packages/dashboard/src/services/settings.ts rename to packages/rmf-dashboard-framework/src/services/settings.ts diff --git a/packages/dashboard/src/services/stub-authenticator.ts b/packages/rmf-dashboard-framework/src/services/stub-authenticator.ts similarity index 100% rename from packages/dashboard/src/services/stub-authenticator.ts rename to packages/rmf-dashboard-framework/src/services/stub-authenticator.ts diff --git a/packages/dashboard/src/services/trajectory-socket-manager.ts b/packages/rmf-dashboard-framework/src/services/trajectory-socket-manager.ts similarity index 100% rename from packages/dashboard/src/services/trajectory-socket-manager.ts rename to packages/rmf-dashboard-framework/src/services/trajectory-socket-manager.ts diff --git a/packages/dashboard/src/utils/api.ts b/packages/rmf-dashboard-framework/src/utils/api.ts similarity index 100% rename from packages/dashboard/src/utils/api.ts rename to packages/rmf-dashboard-framework/src/utils/api.ts diff --git a/packages/dashboard/src/utils/test-utils.test.tsx b/packages/rmf-dashboard-framework/src/utils/test-utils.test.tsx similarity index 100% rename from packages/dashboard/src/utils/test-utils.test.tsx rename to packages/rmf-dashboard-framework/src/utils/test-utils.test.tsx diff --git a/packages/dashboard/src/utils/url.ts b/packages/rmf-dashboard-framework/src/utils/url.ts similarity index 100% rename from packages/dashboard/src/utils/url.ts rename to packages/rmf-dashboard-framework/src/utils/url.ts diff --git a/packages/dashboard/test-data/assets/code-brackets.svg b/packages/rmf-dashboard-framework/test-data/assets/code-brackets.svg similarity index 100% rename from packages/dashboard/test-data/assets/code-brackets.svg rename to packages/rmf-dashboard-framework/test-data/assets/code-brackets.svg diff --git a/packages/dashboard/test-data/assets/colors.svg b/packages/rmf-dashboard-framework/test-data/assets/colors.svg similarity index 100% rename from packages/dashboard/test-data/assets/colors.svg rename to packages/rmf-dashboard-framework/test-data/assets/colors.svg diff --git a/packages/dashboard/test-data/assets/comments.svg b/packages/rmf-dashboard-framework/test-data/assets/comments.svg similarity index 100% rename from packages/dashboard/test-data/assets/comments.svg rename to packages/rmf-dashboard-framework/test-data/assets/comments.svg diff --git a/packages/dashboard/test-data/assets/direction.svg b/packages/rmf-dashboard-framework/test-data/assets/direction.svg similarity index 100% rename from packages/dashboard/test-data/assets/direction.svg rename to packages/rmf-dashboard-framework/test-data/assets/direction.svg diff --git a/packages/dashboard/test-data/assets/flow.svg b/packages/rmf-dashboard-framework/test-data/assets/flow.svg similarity index 100% rename from packages/dashboard/test-data/assets/flow.svg rename to packages/rmf-dashboard-framework/test-data/assets/flow.svg diff --git a/packages/dashboard/test-data/assets/office.png b/packages/rmf-dashboard-framework/test-data/assets/office.png similarity index 100% rename from packages/dashboard/test-data/assets/office.png rename to packages/rmf-dashboard-framework/test-data/assets/office.png diff --git a/packages/dashboard/test-data/assets/plugin.svg b/packages/rmf-dashboard-framework/test-data/assets/plugin.svg similarity index 100% rename from packages/dashboard/test-data/assets/plugin.svg rename to packages/rmf-dashboard-framework/test-data/assets/plugin.svg diff --git a/packages/dashboard/test-data/assets/repo.svg b/packages/rmf-dashboard-framework/test-data/assets/repo.svg similarity index 100% rename from packages/dashboard/test-data/assets/repo.svg rename to packages/rmf-dashboard-framework/test-data/assets/repo.svg diff --git a/packages/dashboard/test-data/assets/ros-health.png b/packages/rmf-dashboard-framework/test-data/assets/ros-health.png similarity index 100% rename from packages/dashboard/test-data/assets/ros-health.png rename to packages/rmf-dashboard-framework/test-data/assets/ros-health.png diff --git a/packages/dashboard/test-data/assets/roshealth-logo-white.png b/packages/rmf-dashboard-framework/test-data/assets/roshealth-logo-white.png similarity index 100% rename from packages/dashboard/test-data/assets/roshealth-logo-white.png rename to packages/rmf-dashboard-framework/test-data/assets/roshealth-logo-white.png diff --git a/packages/dashboard/test-data/assets/stackalt.svg b/packages/rmf-dashboard-framework/test-data/assets/stackalt.svg similarity index 100% rename from packages/dashboard/test-data/assets/stackalt.svg rename to packages/rmf-dashboard-framework/test-data/assets/stackalt.svg diff --git a/packages/dashboard/test-data/assets/tiny-robot.png b/packages/rmf-dashboard-framework/test-data/assets/tiny-robot.png similarity index 100% rename from packages/dashboard/test-data/assets/tiny-robot.png rename to packages/rmf-dashboard-framework/test-data/assets/tiny-robot.png diff --git a/packages/dashboard/tsconfig.app.json b/packages/rmf-dashboard-framework/tsconfig.app.json similarity index 100% rename from packages/dashboard/tsconfig.app.json rename to packages/rmf-dashboard-framework/tsconfig.app.json diff --git a/packages/dashboard/tsconfig.json b/packages/rmf-dashboard-framework/tsconfig.json similarity index 100% rename from packages/dashboard/tsconfig.json rename to packages/rmf-dashboard-framework/tsconfig.json diff --git a/packages/dashboard/tsconfig.node.json b/packages/rmf-dashboard-framework/tsconfig.node.json similarity index 100% rename from packages/dashboard/tsconfig.node.json rename to packages/rmf-dashboard-framework/tsconfig.node.json diff --git a/packages/dashboard/vite.config.ts b/packages/rmf-dashboard-framework/vite.config.ts similarity index 100% rename from packages/dashboard/vite.config.ts rename to packages/rmf-dashboard-framework/vite.config.ts From 8a5b5fedb65bc46a6ed1c223b082afbc21b4c88e Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Fri, 30 Aug 2024 07:56:05 +0000 Subject: [PATCH 05/30] fix lint errors Signed-off-by: Teo Koon Peng --- packages/rmf-dashboard-framework/package.json | 2 +- .../src/components/window/demo.stories.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/rmf-dashboard-framework/package.json b/packages/rmf-dashboard-framework/package.json index c6902f598..c98052d9a 100644 --- a/packages/rmf-dashboard-framework/package.json +++ b/packages/rmf-dashboard-framework/package.json @@ -4,7 +4,7 @@ "type": "module", "private": true, "scripts": { - "build": "pnpm run --filter {.}^... build && vite build", + "build:example": "pnpm run --filter {.}^... build && vite -c examples/shared/vite.config.ts build", "build-storybook": "storybook build", "gen-app-config-schema": "pnpm typescript-json-schema tsconfig.gen.json AppConfig --required -o app-config.schema.json", "lint": "tsc --build && eslint --max-warnings 0 src", diff --git a/packages/rmf-dashboard-framework/src/components/window/demo.stories.tsx b/packages/rmf-dashboard-framework/src/components/window/demo.stories.tsx index 4589969f0..827224fab 100644 --- a/packages/rmf-dashboard-framework/src/components/window/demo.stories.tsx +++ b/packages/rmf-dashboard-framework/src/components/window/demo.stories.tsx @@ -2,7 +2,7 @@ import { Typography } from '@mui/material'; import { Meta, StoryFn } from '@storybook/react'; import React from 'react'; -import { makeLayout } from './test-utils.spec'; +import { makeLayout } from './test-utils.test'; import { Window } from './window'; import { WindowContainer, WindowContainerProps } from './window-container'; From 33d2bfcb41af69680ad09f94a78bdf4760c3bd8e Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Fri, 30 Aug 2024 08:32:23 +0000 Subject: [PATCH 06/30] update dockerfile and docs Signed-off-by: Teo Koon Peng --- .../Dockerfile | 29 ++++++------- .../rmf-dashboard-framework/app-config.json | 42 ------------------- .github/rmf-dashboard-framework/inject-env.sh | 5 --- .github/workflows/nightly.yml | 8 ++-- README.md | 29 ++----------- 5 files changed, 20 insertions(+), 93 deletions(-) rename .github/{rmf-dashboard-framework => demo-dashboard}/Dockerfile (50%) delete mode 100644 .github/rmf-dashboard-framework/app-config.json delete mode 100644 .github/rmf-dashboard-framework/inject-env.sh diff --git a/.github/rmf-dashboard-framework/Dockerfile b/.github/demo-dashboard/Dockerfile similarity index 50% rename from .github/rmf-dashboard-framework/Dockerfile rename to .github/demo-dashboard/Dockerfile index 6700897e0..2fdf2a43b 100644 --- a/.github/rmf-dashboard-framework/Dockerfile +++ b/.github/demo-dashboard/Dockerfile @@ -1,9 +1,15 @@ -ARG BASE_IMAGE -FROM $BASE_IMAGE +FROM ubuntu:24.04 ARG BRANCH=main ### Build dashboard +RUN apt update && apt install -y curl +RUN curl -fsSL https://get.pnpm.io/install.sh | bash - + # shell runs in non-interactive mode, which does not source .bashrc so we need to set the PATH manually +ENV PNPM_HOME /root/.local/share/pnpm +ENV PATH "$PNPM_HOME:$PATH" +RUN pnpm env use --global lts + # fetch sources RUN mkdir -p /ws \ && curl -L https://github.com/open-rmf/rmf-web/archive/$BRANCH.tar.gz -o rmf_web.tar.gz \ @@ -11,17 +17,16 @@ RUN mkdir -p /ws \ # install deps RUN cd /ws \ - && pnpm install --filter rmf-dashboard... + && pnpm install --filter rmf-dashboard-framework... # replace configs and build -COPY app-config.json /ws/packages/dashboard/app-config.json -RUN cd /ws/packages/dashboard \ - && pnpm run build +RUN cd /ws/packages/rmf-dashboard-framework \ + && pnpm build:example examples/demo ### Set up bare minimum dashboard image FROM docker.io/ubuntu:24.04 -COPY --from=0 /ws/packages/dashboard/dist /opt/dashboard +COPY --from=0 /ws/packages/rmf-dashboard-framework/dist /opt/dashboard RUN apt update && apt install -y curl @@ -30,12 +35,4 @@ RUN curl -fsSL https://get.pnpm.io/install.sh | bash - ENV PNPM_HOME /root/.local/share/pnpm ENV PATH "$PNPM_HOME:$PATH" -# nodejs seems to have changed the official mirror, the default in pnpm is very slow now -RUN pnpm config -g set 'node-mirror:release' https://nodejs.org/dist && pnpm env use --global lts - -RUN npm install --global serve -ENV PATH "$(npm bin -g):$PATH" - -COPY inject-env.sh /opt/inject-env.sh - -ENTRYPOINT ["bash", "-c", ". /opt/inject-env.sh && npx serve -s /opt/dashboard"] +ENTRYPOINT ["pnpx", "serve", "-s", "/opt/dashboard"] diff --git a/.github/rmf-dashboard-framework/app-config.json b/.github/rmf-dashboard-framework/app-config.json deleted file mode 100644 index 84626aeca..000000000 --- a/.github/rmf-dashboard-framework/app-config.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/open-rmf/rmf-web/main/packages/dashboard/app-config.schema.json", - "rmfServerUrl": "__RMF_SERVER_URL__", - "trajectoryServerUrl": "__TRAJECTORY_SERVER_URL__", - "authConfig": {}, - "helpLink": "https://osrf.github.io/ros2multirobotbook/rmf-core.html", - "reportIssue": "https://github.com/open-rmf/rmf-web/issues", - "pickupZones": [], - "defaultZoom": 20, - "defaultRobotZoom": 6, - "attributionPrefix": "OSRC-SG", - "defaultMapLevel": "L1", - "allowedTasks": [ - { - "taskDefinitionId": "patrol" - }, - { - "taskDefinitionId": "delivery" - }, - { - "taskDefinitionId": "compose-clean" - }, - { - "taskDefinitionId": "custom_compose" - } - ], - "resources": { - "default": { - "fleets": {}, - "logos": { - "header": "/resources/defaultLogo.png" - } - } - }, - "cartIds": [], - "buildConfig": { - "baseUrl": "/", - "authProvider": "stub", - "customTabs": false, - "adminTab": false - } -} diff --git a/.github/rmf-dashboard-framework/inject-env.sh b/.github/rmf-dashboard-framework/inject-env.sh deleted file mode 100644 index 4284492cf..000000000 --- a/.github/rmf-dashboard-framework/inject-env.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/bash -set -e - -sed -i "s,__RMF_SERVER_URL__,${RMF_SERVER_URL},g" /opt/dashboard/index.html -sed -i "s,__TRAJECTORY_SERVER_URL__,${TRAJECTORY_SERVER_URL},g" /opt/dashboard/index.html diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 164e2aec9..e5ac3ec1a 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -40,14 +40,12 @@ jobs: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Build and push dashboard + - name: Build and push demo-dashboard uses: docker/build-push-action@v5 with: push: true - build-args: | - BASE_IMAGE=ghcr.io/${{ github.repository }}/minimal-rmf:latest - tags: ghcr.io/${{ github.repository }}/dashboard - context: .github/dashboard + tags: ghcr.io/${{ github.repository }}/demo-dashboard + context: .github/demo-dashboard - name: Build and push api-server uses: docker/build-push-action@v5 with: diff --git a/README.md b/README.md index 9e06d8589..2174140d9 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ docker run \ ``` > **Note** -> The values provided for `RMF_SERVER_URL` and `TRAJECTORY_SERVER_URL` are default values when running the API server and `rmf_demos`, and can be modified to suit different setups. +> The demo dashboard assumes that the api server is hosted locally on the default ports. Start the API server with host network access, and set up the correct `ROS_DOMAIN_ID` and ROS 2 RMW implementation that will be used in the rest of the Open-RMF system. The API server will use the default port at `localhost:8000`. @@ -98,7 +98,7 @@ source /opt/ros/jazzy/setup.bash # For source build source /path/to/workspace/install/setup.bash -cd packages/dashboard +cd packages/rmf-dashboard-framework pnpm start ``` @@ -119,32 +119,11 @@ When developing individual components, it may be useful to start the dashboard a ```bash # Start the dashboard in dev, this monitors for changes in the dashboard package and performs rebuilds. A browser refresh is required after all automated builds. cd packages/dashboard -pnpm run start:react +pnpm start:example examples/demo # Start the API server, this will need to be restarted for any changes to be reflected cd packages/api-server -pnpm run start -``` - -### Optimized build - -The dashboard can also be built statically for better performance. - -```bash -cd packages/dashboard -pnpm run build - -# Once completed -npm install -g serve -serve -s build -``` - -This only serves the frontend, the API server can be started manually to work with an Open-RMF deployment on another terminal instance, - -```bash -# source Open-RMF before proceeding -cd packages/api-server -pnpm run start +pnpm start ``` # Contribution guide From 2465ef4df7000cf583de17cbb0af35029046aa69 Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Mon, 2 Sep 2024 07:53:37 +0000 Subject: [PATCH 07/30] move all deps to peerDeps Signed-off-by: Teo Koon Peng --- packages/dashboard-e2e/package.json | 1 - packages/rmf-dashboard-framework/.gitignore | 1 + .../docs/getting-started.md | 29 + packages/rmf-dashboard-framework/package.json | 2 +- pnpm-lock.yaml | 1480 +++++++---------- 5 files changed, 616 insertions(+), 897 deletions(-) diff --git a/packages/dashboard-e2e/package.json b/packages/dashboard-e2e/package.json index 2f462572d..4f7d2ecce 100644 --- a/packages/dashboard-e2e/package.json +++ b/packages/dashboard-e2e/package.json @@ -20,7 +20,6 @@ "@wdio/mocha-framework": "7.11.1", "@wdio/spec-reporter": "7.10.1", "concurrently": "^8.2.2", - "rmf-dashboard": "workspace:*", "serve": "^11.3.2", "ts-node": "^9.1.1", "typescript": "~5.5.4" diff --git a/packages/rmf-dashboard-framework/.gitignore b/packages/rmf-dashboard-framework/.gitignore index abe6a5761..e67d4324d 100644 --- a/packages/rmf-dashboard-framework/.gitignore +++ b/packages/rmf-dashboard-framework/.gitignore @@ -27,5 +27,6 @@ npm-debug.log* web_server.log /.rmf +/.out *storybook.log diff --git a/packages/rmf-dashboard-framework/docs/getting-started.md b/packages/rmf-dashboard-framework/docs/getting-started.md index e69de29bb..935ec6fac 100644 --- a/packages/rmf-dashboard-framework/docs/getting-started.md +++ b/packages/rmf-dashboard-framework/docs/getting-started.md @@ -0,0 +1,29 @@ +## Getting Started + +Welcome to RMF Dashboard Framework! This tutorial will guide you through the initial setup and provide a basic example to help you start building your dashboard application. + +### Setup + +Prerequisites: +* pnpm +* Latest Nodejs LTS + +Follow https://pnpm.io/installation to install pnpm, you can then install nodejs using pnpm + +```bash +pnpm env use --global lts +``` + +Clone this repo and install deps + +```bash +pnpm create vite -t react-ts basic-dashboard +cd basic-dashboard +# TODO(koonpeng): install from npmjs after package is published. +pnpm add https://github.com/open-rmf/rmf-web#koonpeng/merge-react-components:packages/rmf-dashboard-framework +pnpm install +``` + +### Creating a Basic Dashboard + + diff --git a/packages/rmf-dashboard-framework/package.json b/packages/rmf-dashboard-framework/package.json index c98052d9a..958eeaa56 100644 --- a/packages/rmf-dashboard-framework/package.json +++ b/packages/rmf-dashboard-framework/package.json @@ -20,7 +20,7 @@ "test": "vitest", "test:coverage": "vitest --coverage" }, - "dependencies": { + "peerDependencies": { "@aldabil/react-scheduler": "^2.7.8", "@emotion/react": "^11.13.0", "@emotion/styled": "^11.13.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 58000d7fb..11068b19a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -90,7 +90,43 @@ importers: specifier: workspace:* version: link:../../pipenv-install - packages/dashboard: + packages/dashboard-e2e: + devDependencies: + '@babel/core': + specifier: ^7.18.6 + version: 7.24.8 + '@types/mocha': + specifier: ^9.0.0 + version: 9.1.1 + '@wdio/browserstack-service': + specifier: 7.11.1 + version: 7.11.1(@wdio/cli@7.11.1) + '@wdio/cli': + specifier: 7.11.1 + version: 7.11.1 + '@wdio/local-runner': + specifier: 7.11.1 + version: 7.11.1(@wdio/cli@7.11.1) + '@wdio/mocha-framework': + specifier: 7.11.1 + version: 7.11.1 + '@wdio/spec-reporter': + specifier: 7.10.1 + version: 7.10.1(@wdio/cli@7.11.1) + concurrently: + specifier: ^8.2.2 + version: 8.2.2 + serve: + specifier: ^11.3.2 + version: 11.3.2 + ts-node: + specifier: ^9.1.1 + version: 9.1.1(typescript@5.5.4) + typescript: + specifier: ~5.5.4 + version: 5.5.4 + + packages/rmf-dashboard-framework: dependencies: '@aldabil/react-scheduler': specifier: ^2.7.8 @@ -160,7 +196,7 @@ importers: version: link:../api-client axios: specifier: 1.7.4 - version: 1.7.4(debug@4.3.5) + version: 1.7.4(debug@4.3.6) canvas: specifier: ^2.11.2 version: 2.11.2 @@ -175,7 +211,7 @@ importers: version: 2.30.0 debug: specifier: ^4.2.0 - version: 4.3.5 + version: 4.3.6 eventemitter3: specifier: ^4.0.7 version: 4.0.7 @@ -184,7 +220,7 @@ importers: version: 25.0.2 node-vibrant: specifier: ^3.1.6 - version: 3.1.6(debug@4.3.5) + version: 3.1.6(debug@4.3.6) react: specifier: ^18.2.0 version: 18.3.1 @@ -227,31 +263,31 @@ importers: devDependencies: '@babel/core': specifier: ^7.18.6 - version: 7.24.8 + version: 7.25.2 '@storybook/addon-essentials': specifier: ^8.0.5 - version: 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) + version: 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) '@storybook/addon-interactions': specifier: ^8.0.5 - version: 8.2.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.14.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@20.14.12)(typescript@5.5.4)))(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(vitest@2.0.4(@types/node@20.14.12)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6)) + version: 8.2.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)))(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))(vitest@2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6)) '@storybook/addon-links': specifier: ^8.0.5 - version: 8.2.2(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) + version: 8.2.2(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) '@storybook/addon-onboarding': specifier: ^8.0.5 - version: 8.2.2(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) + version: 8.2.2(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) '@storybook/blocks': specifier: ^8.0.5 - version: 8.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) + version: 8.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) '@storybook/react': specifier: ^8.0.5 - version: 8.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(typescript@5.5.4) + version: 8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))(typescript@5.5.4) '@storybook/react-vite': specifier: ^8.2.6 - version: 8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.19.0)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(typescript@5.5.4)(vite@5.3.5(@types/node@20.14.12)(terser@5.31.6)) + version: 8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.19.0)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))(typescript@5.5.4)(vite@5.3.5(@types/node@22.2.0)(terser@5.31.6)) '@storybook/test': specifier: ^8.0.5 - version: 8.2.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.14.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@20.14.12)(typescript@5.5.4)))(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(vitest@2.0.4(@types/node@20.14.12)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6)) + version: 8.2.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)))(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))(vitest@2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6)) '@testing-library/dom': specifier: ^9.3.4 version: 9.3.4 @@ -263,10 +299,10 @@ importers: version: 14.5.2(@testing-library/dom@9.3.4) '@vitejs/plugin-react-swc': specifier: ^3.7.0 - version: 3.7.0(vite@5.3.5(@types/node@20.14.12)(terser@5.31.6)) + version: 3.7.0(vite@5.3.5(@types/node@22.2.0)(terser@5.31.6)) '@vitest/coverage-v8': specifier: ^2.0.4 - version: 2.0.4(vitest@2.0.4(@types/node@20.14.12)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6)) + version: 2.0.4(vitest@2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6)) api-server: specifier: file:../api-server version: link:../api-server @@ -284,7 +320,7 @@ importers: version: 24.1.1(canvas@2.11.2) storybook: specifier: ^8.0.5 - version: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + version: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) typescript: specifier: ~5.5.4 version: 5.5.4 @@ -293,49 +329,10 @@ importers: version: 0.64.0(@swc/core@1.5.7) vite: specifier: ^5.3.5 - version: 5.3.5(@types/node@20.14.12)(terser@5.31.6) + version: 5.3.5(@types/node@22.2.0)(terser@5.31.6) vitest: specifier: ^2.0.4 - version: 2.0.4(@types/node@20.14.12)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6) - - packages/dashboard-e2e: - devDependencies: - '@babel/core': - specifier: ^7.18.6 - version: 7.24.8 - '@types/mocha': - specifier: ^9.0.0 - version: 9.1.1 - '@wdio/browserstack-service': - specifier: 7.11.1 - version: 7.11.1(@wdio/cli@7.11.1) - '@wdio/cli': - specifier: 7.11.1 - version: 7.11.1 - '@wdio/local-runner': - specifier: 7.11.1 - version: 7.11.1(@wdio/cli@7.11.1) - '@wdio/mocha-framework': - specifier: 7.11.1 - version: 7.11.1 - '@wdio/spec-reporter': - specifier: 7.10.1 - version: 7.10.1(@wdio/cli@7.11.1) - concurrently: - specifier: ^8.2.2 - version: 8.2.2 - rmf-dashboard: - specifier: workspace:* - version: link:../dashboard - serve: - specifier: ^11.3.2 - version: 11.3.2 - ts-node: - specifier: ^9.1.1 - version: 9.1.1(typescript@5.5.4) - typescript: - specifier: ~5.5.4 - version: 5.5.4 + version: 2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6) packages/rmf-models: devDependencies: @@ -1057,10 +1054,6 @@ packages: resolution: {integrity: sha512-SkSBEHwwJRU52QEVZBmMBnE5Ux2/6WU1grdYyOhpbCNxbmJrDuDCphBzKZSO3taf0zztp+qkWlymE5tVL5l0TA==} engines: {node: '>=6.9.0'} - '@babel/types@7.24.9': - resolution: {integrity: sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==} - engines: {node: '>=6.9.0'} - '@babel/types@7.25.2': resolution: {integrity: sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==} engines: {node: '>=6.9.0'} @@ -1078,9 +1071,6 @@ packages: '@emotion/babel-plugin@11.12.0': resolution: {integrity: sha512-y2WQb+oP8Jqvvclh8Q55gLUyb7UFvgv7eJfsj7td5TToBrIUtPay2kMrZi4xjq9qw2vD0ZR5fSho0yqoFgX7Rw==} - '@emotion/cache@11.11.0': - resolution: {integrity: sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==} - '@emotion/cache@11.13.1': resolution: {integrity: sha512-iqouYkuEblRcXmylXIwwOodiEK5Ifl7JcX7o6V4jI3iW4mLXX3dmt5xwBtIkJiQEXFAI+pC8X0i67yiPkH9Ucw==} @@ -1090,9 +1080,6 @@ packages: '@emotion/is-prop-valid@1.3.0': resolution: {integrity: sha512-SHetuSLvJDzuNbOdtPVbq6yMMMlLoW5Q94uDqJZqy50gcmAjxFkVqmzqSGEFq9gT2iMuIeKV1PXVWmvUhuZLlQ==} - '@emotion/memoize@0.8.1': - resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} - '@emotion/memoize@0.9.0': resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} @@ -1108,9 +1095,6 @@ packages: '@emotion/serialize@1.3.0': resolution: {integrity: sha512-jACuBa9SlYajnpIVXB+XOXnfJHyckDfe6fOpORIM6yhBDlqGuExvDdZYHDQGoDf3bZXGv7tNr+LpLjJqiEQ6EA==} - '@emotion/sheet@1.2.2': - resolution: {integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==} - '@emotion/sheet@1.4.0': resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==} @@ -1135,9 +1119,6 @@ packages: '@emotion/utils@1.4.0': resolution: {integrity: sha512-spEnrA1b6hDR/C68lC2M7m6ALPUHZC0lIY7jAS/B/9DuuO1ZP04eov8SMv/6fwRd8pzmsn2AuJEznRREWlQrlQ==} - '@emotion/weak-memoize@0.3.1': - resolution: {integrity: sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==} - '@emotion/weak-memoize@0.4.0': resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} @@ -1624,16 +1605,6 @@ packages: '@types/react': optional: true - '@mui/utils@5.16.1': - resolution: {integrity: sha512-4UQzK46tAEYs2xZv79hRiIc3GxZScd00kGPDadNrGztAEZlmSaUY8cb9ITd2xCiTfzsx5AN6DH8aaQ8QEKJQeQ==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@mui/utils@5.16.4': resolution: {integrity: sha512-nlppYwq10TBIFqp7qxY0SvbACOXeOjeVL3pOcDsK0FT8XjrEXh9/+lkg8AEIzD16z7YfiJDQjaJG2OLkE7BxNg==} engines: {node: '>=12.0.0'} @@ -2108,18 +2079,6 @@ packages: storybook: ^8.2.6 vite: ^4.0.0 || ^5.0.0 - '@storybook/react@8.2.2': - resolution: {integrity: sha512-U4p/RV78yhjEwEzem8U7wE5/3sSpnqreGsPdAHMCIHd69e9tVeF0rwrTJGp917RClPjBKgEcfelCuvOlby4MrA==} - engines: {node: '>=18.0.0'} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.2.2 - typescript: '>= 4.2.x' - peerDependenciesMeta: - typescript: - optional: true - '@storybook/react@8.2.6': resolution: {integrity: sha512-awJlzfiAMrf8l9AgiLhjXEJ+HvS3VKPxNNQaRwBELGq/vigjJe656tMrhvg4OIlJXtlS+6XPshd2knLwjIWNLw==} engines: {node: '>=18.0.0'} @@ -2431,18 +2390,12 @@ packages: '@types/node@16.9.1': resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==} - '@types/node@18.19.39': - resolution: {integrity: sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ==} - '@types/node@18.19.42': resolution: {integrity: sha512-d2ZFc/3lnK2YCYhos8iaNIYu9Vfhr92nHiyJHRltXWjXUBjEE+A4I58Tdbnw4VhggSW+2j5y5gTrLs4biNnubg==} '@types/node@20.14.10': resolution: {integrity: sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==} - '@types/node@20.14.12': - resolution: {integrity: sha512-r7wNXakLeSsGT0H1AU863vS2wa5wBOK4bWMjZz2wj+8nBx+m5PeIn0k8AloSLpRuiwdRQZwarZqHE4FNArPuJQ==} - '@types/node@22.2.0': resolution: {integrity: sha512-bm6EG6/pCpkxDf/0gDNDdtDILMOHgaQBVOJGdwsqClnxA3xL6jtMv76rLBc006RVMWbmaf0xbmom4Z/5o2nRkQ==} @@ -6216,11 +6169,6 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} - engines: {node: '>=10'} - hasBin: true - semver@7.6.3: resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} @@ -7322,8 +7270,7 @@ snapshots: '@babel/compat-data@7.24.8': {} - '@babel/compat-data@7.25.2': - optional: true + '@babel/compat-data@7.25.2': {} '@babel/core@7.24.8': dependencies: @@ -7364,7 +7311,6 @@ snapshots: semver: 6.3.1 transitivePeerDependencies: - supports-color - optional: true '@babel/generator@7.24.8': dependencies: @@ -7379,16 +7325,15 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 - optional: true '@babel/helper-annotate-as-pure@7.24.7': dependencies: - '@babel/types': 7.24.8 + '@babel/types': 7.25.2 '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7': dependencies: - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.8 + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 transitivePeerDependencies: - supports-color @@ -7407,36 +7352,35 @@ snapshots: browserslist: 4.23.3 lru-cache: 5.1.1 semver: 6.3.1 - optional: true - '@babel/helper-create-class-features-plugin@7.24.8(@babel/core@7.24.8)': + '@babel/helper-create-class-features-plugin@7.24.8(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.24.7 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-function-name': 7.24.7 '@babel/helper-member-expression-to-functions': 7.24.8 '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.8) + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.25.2) '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 '@babel/helper-split-export-declaration': 7.24.7 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.24.7(@babel/core@7.24.8)': + '@babel/helper-create-regexp-features-plugin@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.24.7 regexpu-core: 5.3.2 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.24.8)': + '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 - '@babel/helper-compilation-targets': 7.24.8 + '@babel/core': 7.25.2 + '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - debug: 4.3.5 + debug: 4.3.6 lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: @@ -7457,8 +7401,8 @@ snapshots: '@babel/helper-member-expression-to-functions@7.24.8': dependencies: - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.8 + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 transitivePeerDependencies: - supports-color @@ -7489,26 +7433,25 @@ snapshots: '@babel/traverse': 7.25.3 transitivePeerDependencies: - supports-color - optional: true '@babel/helper-optimise-call-expression@7.24.7': dependencies: - '@babel/types': 7.24.8 + '@babel/types': 7.25.2 '@babel/helper-plugin-utils@7.24.8': {} - '@babel/helper-remap-async-to-generator@7.24.7(@babel/core@7.24.8)': + '@babel/helper-remap-async-to-generator@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.24.7 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-wrap-function': 7.24.7 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.24.7(@babel/core@7.24.8)': + '@babel/helper-replace-supers@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-member-expression-to-functions': 7.24.8 '@babel/helper-optimise-call-expression': 7.24.7 @@ -7524,8 +7467,8 @@ snapshots: '@babel/helper-skip-transparent-expression-wrappers@7.24.7': dependencies: - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.8 + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 transitivePeerDependencies: - supports-color @@ -7542,9 +7485,9 @@ snapshots: '@babel/helper-wrap-function@7.24.7': dependencies: '@babel/helper-function-name': 7.24.7 - '@babel/template': 7.24.7 - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.8 + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 transitivePeerDependencies: - supports-color @@ -7557,7 +7500,6 @@ snapshots: dependencies: '@babel/template': 7.25.0 '@babel/types': 7.25.2 - optional: true '@babel/highlight@7.24.7': dependencies: @@ -7573,48 +7515,41 @@ snapshots: '@babel/parser@7.25.3': dependencies: '@babel/types': 7.25.2 - optional: true - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.24.8) + '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2) transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.8)': - dependencies: - '@babel/core': 7.24.8 - - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.8)': + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.2 '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - optional: true '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.25.2)': dependencies: @@ -7622,651 +7557,561 @@ snapshots: '@babel/helper-plugin-utils': 7.24.8 optional: true - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.8)': - dependencies: - '@babel/core': 7.24.8 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - optional: true - - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.8)': - dependencies: - '@babel/core': 7.24.8 - '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - optional: true - - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.8)': - dependencies: - '@babel/core': 7.24.8 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.8)': + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-flow@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-syntax-flow@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - optional: true - - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.8)': - dependencies: - '@babel/core': 7.24.8 - '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - optional: true - - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.8)': - dependencies: - '@babel/core': 7.24.8 - '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - optional: true - - '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.8)': - dependencies: - '@babel/core': 7.24.8 - '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - optional: true - - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.8)': - dependencies: - '@babel/core': 7.24.8 - '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - optional: true - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.8)': + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.2)': + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - optional: true - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.8)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.2)': + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - optional: true - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.8)': + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.2)': + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - optional: true - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.8)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.2)': + '@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - optional: true - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.8)': + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.2)': + '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - optional: true - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.8)': + '@babel/plugin-transform-async-generator-functions@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 + '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.25.2)': + '@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 + '@babel/helper-module-imports': 7.24.7 '@babel/helper-plugin-utils': 7.24.8 - optional: true + '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.8)': + '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.2)': + '@babel/plugin-transform-block-scoping@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - optional: true - '@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-class-properties@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 + '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color - '@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 + '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 - optional: true - - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.8)': - dependencies: - '@babel/core': 7.24.8 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.8) - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.24.8)': - dependencies: - '@babel/core': 7.24.8 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-async-generator-functions@7.24.7(@babel/core@7.24.8)': - dependencies: - '@babel/core': 7.24.8 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.8) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.24.8)': - dependencies: - '@babel/core': 7.24.8 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.8) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.24.8)': - dependencies: - '@babel/core': 7.24.8 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-block-scoping@7.24.7(@babel/core@7.24.8)': - dependencies: - '@babel/core': 7.24.8 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-class-properties@7.24.7(@babel/core@7.24.8)': - dependencies: - '@babel/core': 7.24.8 - '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.24.8) - '@babel/helper-plugin-utils': 7.24.8 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.24.8)': - dependencies: - '@babel/core': 7.24.8 - '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.24.8) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.8) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.24.8(@babel/core@7.24.8)': + '@babel/plugin-transform-classes@7.24.8(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-compilation-targets': 7.24.8 + '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-function-name': 7.24.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.8) + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.25.2) '@babel/helper-split-export-declaration': 7.24.7 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/template': 7.24.7 + '@babel/template': 7.25.0 - '@babel/plugin-transform-destructuring@7.24.8(@babel/core@7.24.8)': + '@babel/plugin-transform-destructuring@7.24.8(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.8) + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.8) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.7 '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.8) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-flow-strip-types@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-flow-strip-types@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.24.8) + '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-function-name@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 - '@babel/helper-compilation-targets': 7.24.8 + '@babel/core': 7.25.2 + '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-function-name': 7.24.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.8) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-literals@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-literals@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.8) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 - '@babel/helper-module-transforms': 7.24.8(@babel/core@7.24.8) + '@babel/core': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.24.8)': + '@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 - '@babel/helper-module-transforms': 7.24.8(@babel/core@7.24.8) + '@babel/core': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-simple-access': 7.24.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-modules-systemjs@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-hoist-variables': 7.24.7 - '@babel/helper-module-transforms': 7.24.8(@babel/core@7.24.8) + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-validator-identifier': 7.24.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 - '@babel/helper-module-transforms': 7.24.8(@babel/core@7.24.8) + '@babel/core': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.8) + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-new-target@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-new-target@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.8) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.8) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 - '@babel/helper-compilation-targets': 7.24.8 + '@babel/core': 7.25.2 + '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.8) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.8) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-object-super@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-object-super@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.8) + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.25.2) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.8) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-optional-chaining@7.24.8(@babel/core@7.24.8)': + '@babel/plugin-transform-optional-chaining@7.24.8(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.8) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-private-methods@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-private-methods@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 - '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.24.8) + '@babel/core': 7.25.2 + '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.24.8) + '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.8) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 regenerator-transform: 0.15.2 - '@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-spread@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-spread@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-typeof-symbol@7.24.8(@babel/core@7.24.8)': + '@babel/plugin-transform-typeof-symbol@7.24.8(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-typescript@7.24.8(@babel/core@7.24.8)': + '@babel/plugin-transform-typescript@7.24.8(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.24.8) + '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.8) + '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.25.2) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.8) + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.8) + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-unicode-sets-regex@7.24.7(@babel/core@7.24.8)': + '@babel/plugin-transform-unicode-sets-regex@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.8) + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 - '@babel/preset-env@7.24.8(@babel/core@7.24.8)': + '@babel/preset-env@7.24.8(@babel/core@7.25.2)': dependencies: - '@babel/compat-data': 7.24.8 - '@babel/core': 7.24.8 - '@babel/helper-compilation-targets': 7.24.8 + '@babel/compat-data': 7.25.2 + '@babel/core': 7.25.2 + '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-validator-option': 7.24.8 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.8) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.8) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.8) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.8) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.8) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.8) - '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.8) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.8) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.8) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.8) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.8) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.8) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.8) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.8) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.8) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.8) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.8) - '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-async-generator-functions': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-block-scoping': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-classes': 7.24.8(@babel/core@7.24.8) - '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-destructuring': 7.24.8(@babel/core@7.24.8) - '@babel/plugin-transform-dotall-regex': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-duplicate-keys': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-dynamic-import': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-exponentiation-operator': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-function-name': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-json-strings': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-literals': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-modules-amd': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.24.8) - '@babel/plugin-transform-modules-systemjs': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-modules-umd': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-new-target': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.24.8) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-reserved-words': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-typeof-symbol': 7.24.8(@babel/core@7.24.8) - '@babel/plugin-transform-unicode-escapes': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-unicode-property-regex': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-unicode-sets-regex': 7.24.7(@babel/core@7.24.8) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.8) - babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.8) - babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.8) - babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.8) + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.2) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.2) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.2) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.25.2) + '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-async-generator-functions': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-block-scoping': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-classes': 7.24.8(@babel/core@7.25.2) + '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-destructuring': 7.24.8(@babel/core@7.25.2) + '@babel/plugin-transform-dotall-regex': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-duplicate-keys': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-dynamic-import': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-exponentiation-operator': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-function-name': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-json-strings': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-literals': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-modules-amd': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2) + '@babel/plugin-transform-modules-systemjs': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-modules-umd': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-new-target': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-reserved-words': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-typeof-symbol': 7.24.8(@babel/core@7.25.2) + '@babel/plugin-transform-unicode-escapes': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-unicode-property-regex': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-unicode-sets-regex': 7.24.7(@babel/core@7.25.2) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.25.2) + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.25.2) + babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.25.2) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.25.2) core-js-compat: 3.37.1 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/preset-flow@7.24.7(@babel/core@7.24.8)': + '@babel/preset-flow@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-validator-option': 7.24.8 - '@babel/plugin-transform-flow-strip-types': 7.24.7(@babel/core@7.24.8) + '@babel/plugin-transform-flow-strip-types': 7.24.7(@babel/core@7.25.2) - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.8)': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/types': 7.24.8 + '@babel/types': 7.25.2 esutils: 2.0.3 - '@babel/preset-typescript@7.24.7(@babel/core@7.24.8)': + '@babel/preset-typescript@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 '@babel/helper-validator-option': 7.24.8 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.24.8) - '@babel/plugin-transform-typescript': 7.24.8(@babel/core@7.24.8) + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2) + '@babel/plugin-transform-typescript': 7.24.8(@babel/core@7.25.2) transitivePeerDependencies: - supports-color - '@babel/register@7.24.6(@babel/core@7.24.8)': + '@babel/register@7.24.6(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 @@ -8295,7 +8140,6 @@ snapshots: '@babel/code-frame': 7.24.7 '@babel/parser': 7.25.3 '@babel/types': 7.25.2 - optional: true '@babel/traverse@7.24.8': dependencies: @@ -8307,7 +8151,7 @@ snapshots: '@babel/helper-split-export-declaration': 7.24.7 '@babel/parser': 7.24.8 '@babel/types': 7.24.8 - debug: 4.3.5 + debug: 4.3.6 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -8323,7 +8167,6 @@ snapshots: globals: 11.12.0 transitivePeerDependencies: - supports-color - optional: true '@babel/types@7.24.8': dependencies: @@ -8331,18 +8174,11 @@ snapshots: '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 - '@babel/types@7.24.9': - dependencies: - '@babel/helper-string-parser': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 - to-fast-properties: 2.0.0 - '@babel/types@7.25.2': dependencies: '@babel/helper-string-parser': 7.24.8 '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 - optional: true '@base2/pretty-print-object@1.0.1': {} @@ -8368,14 +8204,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@emotion/cache@11.11.0': - dependencies: - '@emotion/memoize': 0.8.1 - '@emotion/sheet': 1.2.2 - '@emotion/utils': 1.4.0 - '@emotion/weak-memoize': 0.3.1 - stylis: 4.2.0 - '@emotion/cache@11.13.1': dependencies: '@emotion/memoize': 0.9.0 @@ -8390,8 +8218,6 @@ snapshots: dependencies: '@emotion/memoize': 0.9.0 - '@emotion/memoize@0.8.1': {} - '@emotion/memoize@0.9.0': {} '@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1)': @@ -8418,8 +8244,6 @@ snapshots: '@emotion/utils': 1.4.0 csstype: 3.1.3 - '@emotion/sheet@1.2.2': {} - '@emotion/sheet@1.4.0': {} '@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1)': @@ -8445,8 +8269,6 @@ snapshots: '@emotion/utils@1.4.0': {} - '@emotion/weak-memoize@0.3.1': {} - '@emotion/weak-memoize@0.4.0': {} '@esbuild/aix-ppc64@0.21.5': @@ -8602,7 +8424,7 @@ snapshots: slash: 3.0.0 optional: true - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@20.14.12)(typescript@5.5.4))': + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 @@ -8616,7 +8438,7 @@ snapshots: exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@20.14.12)(typescript@5.5.4)) + jest-config: 29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -8784,14 +8606,14 @@ snapshots: chalk: 4.1.2 optional: true - '@jimp/bmp@0.16.13(@jimp/custom@0.16.13(debug@4.3.5))': + '@jimp/bmp@0.16.13(@jimp/custom@0.16.13(debug@4.3.6))': dependencies: '@babel/runtime': 7.24.8 - '@jimp/custom': 0.16.13(debug@4.3.5) + '@jimp/custom': 0.16.13(debug@4.3.6) '@jimp/utils': 0.16.13 bmp-js: 0.1.0 - '@jimp/core@0.16.13(debug@4.3.5)': + '@jimp/core@0.16.13(debug@4.3.6)': dependencies: '@babel/runtime': 7.24.8 '@jimp/utils': 0.16.13 @@ -8799,7 +8621,7 @@ snapshots: buffer: 5.7.1 exif-parser: 0.1.12 file-type: 16.5.4 - load-bmfont: 1.4.2(debug@4.3.5) + load-bmfont: 1.4.2(debug@4.3.6) mkdirp: 0.5.6 phin: 2.9.3 pixelmatch: 4.0.2 @@ -8807,56 +8629,56 @@ snapshots: transitivePeerDependencies: - debug - '@jimp/custom@0.16.13(debug@4.3.5)': + '@jimp/custom@0.16.13(debug@4.3.6)': dependencies: '@babel/runtime': 7.24.8 - '@jimp/core': 0.16.13(debug@4.3.5) + '@jimp/core': 0.16.13(debug@4.3.6) transitivePeerDependencies: - debug - '@jimp/gif@0.16.13(@jimp/custom@0.16.13(debug@4.3.5))': + '@jimp/gif@0.16.13(@jimp/custom@0.16.13(debug@4.3.6))': dependencies: '@babel/runtime': 7.24.8 - '@jimp/custom': 0.16.13(debug@4.3.5) + '@jimp/custom': 0.16.13(debug@4.3.6) '@jimp/utils': 0.16.13 gifwrap: 0.9.4 omggif: 1.0.10 - '@jimp/jpeg@0.16.13(@jimp/custom@0.16.13(debug@4.3.5))': + '@jimp/jpeg@0.16.13(@jimp/custom@0.16.13(debug@4.3.6))': dependencies: '@babel/runtime': 7.24.8 - '@jimp/custom': 0.16.13(debug@4.3.5) + '@jimp/custom': 0.16.13(debug@4.3.6) '@jimp/utils': 0.16.13 jpeg-js: 0.4.4 - '@jimp/plugin-resize@0.16.13(@jimp/custom@0.16.13(debug@4.3.5))': + '@jimp/plugin-resize@0.16.13(@jimp/custom@0.16.13(debug@4.3.6))': dependencies: '@babel/runtime': 7.24.8 - '@jimp/custom': 0.16.13(debug@4.3.5) + '@jimp/custom': 0.16.13(debug@4.3.6) '@jimp/utils': 0.16.13 - '@jimp/png@0.16.13(@jimp/custom@0.16.13(debug@4.3.5))': + '@jimp/png@0.16.13(@jimp/custom@0.16.13(debug@4.3.6))': dependencies: '@babel/runtime': 7.24.8 - '@jimp/custom': 0.16.13(debug@4.3.5) + '@jimp/custom': 0.16.13(debug@4.3.6) '@jimp/utils': 0.16.13 pngjs: 3.4.0 - '@jimp/tiff@0.16.13(@jimp/custom@0.16.13(debug@4.3.5))': + '@jimp/tiff@0.16.13(@jimp/custom@0.16.13(debug@4.3.6))': dependencies: '@babel/runtime': 7.24.8 - '@jimp/custom': 0.16.13(debug@4.3.5) + '@jimp/custom': 0.16.13(debug@4.3.6) utif: 2.0.1 - '@jimp/types@0.16.13(@jimp/custom@0.16.13(debug@4.3.5))': + '@jimp/types@0.16.13(@jimp/custom@0.16.13(debug@4.3.6))': dependencies: '@babel/runtime': 7.24.8 - '@jimp/bmp': 0.16.13(@jimp/custom@0.16.13(debug@4.3.5)) - '@jimp/custom': 0.16.13(debug@4.3.5) - '@jimp/gif': 0.16.13(@jimp/custom@0.16.13(debug@4.3.5)) - '@jimp/jpeg': 0.16.13(@jimp/custom@0.16.13(debug@4.3.5)) - '@jimp/png': 0.16.13(@jimp/custom@0.16.13(debug@4.3.5)) - '@jimp/tiff': 0.16.13(@jimp/custom@0.16.13(debug@4.3.5)) + '@jimp/bmp': 0.16.13(@jimp/custom@0.16.13(debug@4.3.6)) + '@jimp/custom': 0.16.13(debug@4.3.6) + '@jimp/gif': 0.16.13(@jimp/custom@0.16.13(debug@4.3.6)) + '@jimp/jpeg': 0.16.13(@jimp/custom@0.16.13(debug@4.3.6)) + '@jimp/png': 0.16.13(@jimp/custom@0.16.13(debug@4.3.6)) + '@jimp/tiff': 0.16.13(@jimp/custom@0.16.13(debug@4.3.6)) timm: 1.7.1 '@jimp/utils@0.16.13': @@ -8864,13 +8686,13 @@ snapshots: '@babel/runtime': 7.24.8 regenerator-runtime: 0.13.11 - '@joshwooding/vite-plugin-react-docgen-typescript@0.3.1(typescript@5.5.4)(vite@5.3.5(@types/node@20.14.12)(terser@5.31.6))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.3.1(typescript@5.5.4)(vite@5.3.5(@types/node@22.2.0)(terser@5.31.6))': dependencies: glob: 7.2.3 glob-promise: 4.2.2(glob@7.2.3) magic-string: 0.27.0 react-docgen-typescript: 2.2.2(typescript@5.5.4) - vite: 5.3.5(@types/node@20.14.12)(terser@5.31.6) + vite: 5.3.5(@types/node@22.2.0)(terser@5.31.6) optionalDependencies: typescript: 5.5.4 @@ -8980,7 +8802,7 @@ snapshots: '@mui/core-downloads-tracker': 5.16.1 '@mui/system': 5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) '@mui/types': 7.2.15(@types/react@18.3.3) - '@mui/utils': 5.16.1(@types/react@18.3.3)(react@18.3.1) + '@mui/utils': 5.16.4(@types/react@18.3.3)(react@18.3.1) '@types/react-transition-group': 4.4.10 clsx: 2.1.1 csstype: 3.1.3 @@ -8997,7 +8819,7 @@ snapshots: '@mui/private-theming@5.16.1(@types/react@18.3.3)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.8 - '@mui/utils': 5.16.1(@types/react@18.3.3)(react@18.3.1) + '@mui/utils': 5.16.4(@types/react@18.3.3)(react@18.3.1) prop-types: 15.8.1 react: 18.3.1 optionalDependencies: @@ -9006,7 +8828,7 @@ snapshots: '@mui/styled-engine@5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.24.8 - '@emotion/cache': 11.11.0 + '@emotion/cache': 11.13.1 csstype: 3.1.3 prop-types: 15.8.1 react: 18.3.1 @@ -9020,7 +8842,7 @@ snapshots: '@mui/private-theming': 5.16.1(@types/react@18.3.3)(react@18.3.1) '@mui/styled-engine': 5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1) '@mui/types': 7.2.15(@types/react@18.3.3) - '@mui/utils': 5.16.1(@types/react@18.3.3)(react@18.3.1) + '@mui/utils': 5.16.4(@types/react@18.3.3)(react@18.3.1) clsx: 2.1.1 csstype: 3.1.3 prop-types: 15.8.1 @@ -9034,16 +8856,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.3 - '@mui/utils@5.16.1(@types/react@18.3.3)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.24.8 - '@types/prop-types': 15.7.12 - prop-types: 15.8.1 - react: 18.3.1 - react-is: 18.3.1 - optionalDependencies: - '@types/react': 18.3.3 - '@mui/utils@5.16.4(@types/react@18.3.3)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.8 @@ -9060,7 +8872,7 @@ snapshots: '@babel/runtime': 7.24.8 '@mui/material': 5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/system': 5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) - '@mui/utils': 5.16.1(@types/react@18.3.3)(react@18.3.1) + '@mui/utils': 5.16.4(@types/react@18.3.3)(react@18.3.1) clsx: 1.2.1 prop-types: 15.8.1 react: 18.3.1 @@ -9337,76 +9149,76 @@ snapshots: '@socket.io/component-emitter@3.1.2': {} - '@storybook/addon-actions@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': + '@storybook/addon-actions@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': dependencies: '@storybook/global': 5.0.0 '@types/uuid': 9.0.8 dequal: 2.0.3 polished: 4.3.1 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) uuid: 9.0.1 - '@storybook/addon-backgrounds@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': + '@storybook/addon-backgrounds@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': dependencies: '@storybook/global': 5.0.0 memoizerific: 1.11.3 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) ts-dedent: 2.2.0 - '@storybook/addon-controls@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': + '@storybook/addon-controls@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': dependencies: dequal: 2.0.3 lodash: 4.17.21 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) ts-dedent: 2.2.0 - '@storybook/addon-docs@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': + '@storybook/addon-docs@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': dependencies: - '@babel/core': 7.24.8 + '@babel/core': 7.25.2 '@mdx-js/react': 3.0.1(@types/react@18.3.3)(react@18.3.1) - '@storybook/blocks': 8.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/csf-plugin': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) + '@storybook/blocks': 8.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) + '@storybook/csf-plugin': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) '@storybook/global': 5.0.0 - '@storybook/react-dom-shim': 8.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) + '@storybook/react-dom-shim': 8.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) '@types/react': 18.3.3 fs-extra: 11.2.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) rehype-external-links: 3.0.0 rehype-slug: 6.0.0 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) ts-dedent: 2.2.0 transitivePeerDependencies: - supports-color - '@storybook/addon-essentials@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': - dependencies: - '@storybook/addon-actions': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/addon-backgrounds': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/addon-controls': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/addon-docs': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/addon-highlight': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/addon-measure': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/addon-outline': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/addon-toolbars': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/addon-viewport': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + '@storybook/addon-essentials@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': + dependencies: + '@storybook/addon-actions': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) + '@storybook/addon-backgrounds': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) + '@storybook/addon-controls': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) + '@storybook/addon-docs': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) + '@storybook/addon-highlight': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) + '@storybook/addon-measure': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) + '@storybook/addon-outline': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) + '@storybook/addon-toolbars': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) + '@storybook/addon-viewport': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) ts-dedent: 2.2.0 transitivePeerDependencies: - supports-color - '@storybook/addon-highlight@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': + '@storybook/addon-highlight@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) - '@storybook/addon-interactions@8.2.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.14.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@20.14.12)(typescript@5.5.4)))(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(vitest@2.0.4(@types/node@20.14.12)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6))': + '@storybook/addon-interactions@8.2.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)))(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))(vitest@2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6))': dependencies: '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/test': 8.2.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.14.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@20.14.12)(typescript@5.5.4)))(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(vitest@2.0.4(@types/node@20.14.12)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6)) + '@storybook/instrumenter': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) + '@storybook/test': 8.2.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)))(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))(vitest@2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6)) polished: 4.3.1 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) ts-dedent: 2.2.0 transitivePeerDependencies: - '@jest/globals' @@ -9415,44 +9227,44 @@ snapshots: - jest - vitest - '@storybook/addon-links@8.2.2(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': + '@storybook/addon-links@8.2.2(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': dependencies: '@storybook/csf': 0.1.11 '@storybook/global': 5.0.0 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) ts-dedent: 2.2.0 optionalDependencies: react: 18.3.1 - '@storybook/addon-measure@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': + '@storybook/addon-measure@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) tiny-invariant: 1.3.3 - '@storybook/addon-onboarding@8.2.2(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': + '@storybook/addon-onboarding@8.2.2(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': dependencies: react-confetti: 6.1.0(react@18.3.1) - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) transitivePeerDependencies: - react - '@storybook/addon-outline@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': + '@storybook/addon-outline@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) ts-dedent: 2.2.0 - '@storybook/addon-toolbars@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': + '@storybook/addon-toolbars@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': dependencies: - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) - '@storybook/addon-viewport@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': + '@storybook/addon-viewport@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': dependencies: memoizerific: 1.11.3 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) - '@storybook/blocks@8.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': + '@storybook/blocks@8.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': dependencies: '@storybook/csf': 0.1.11 '@storybook/global': 5.0.0 @@ -9465,7 +9277,7 @@ snapshots: memoizerific: 1.11.3 polished: 4.3.1 react-colorful: 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) telejson: 7.2.0 ts-dedent: 2.2.0 util-deprecate: 1.0.2 @@ -9473,9 +9285,9 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/builder-vite@8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(typescript@5.5.4)(vite@5.3.5(@types/node@20.14.12)(terser@5.31.6))': + '@storybook/builder-vite@8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))(typescript@5.5.4)(vite@5.3.5(@types/node@22.2.0)(terser@5.31.6))': dependencies: - '@storybook/csf-plugin': 8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) + '@storybook/csf-plugin': 8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) '@types/find-cache-dir': 3.2.1 browser-assert: 1.2.1 es-module-lexer: 1.5.4 @@ -9483,9 +9295,9 @@ snapshots: find-cache-dir: 3.3.2 fs-extra: 11.2.0 magic-string: 0.30.10 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) ts-dedent: 2.2.0 - vite: 5.3.5(@types/node@20.14.12)(terser@5.31.6) + vite: 5.3.5(@types/node@22.2.0)(terser@5.31.6) optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: @@ -9493,15 +9305,15 @@ snapshots: '@storybook/codemod@8.2.2': dependencies: - '@babel/core': 7.24.8 - '@babel/preset-env': 7.24.8(@babel/core@7.24.8) - '@babel/types': 7.24.8 + '@babel/core': 7.25.2 + '@babel/preset-env': 7.24.8(@babel/core@7.25.2) + '@babel/types': 7.25.2 '@storybook/core': 8.2.2 '@storybook/csf': 0.1.11 '@types/cross-spawn': 6.0.6 cross-spawn: 7.0.3 globby: 14.0.2 - jscodeshift: 0.15.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + jscodeshift: 0.15.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) lodash: 4.17.21 prettier: 3.3.2 recast: 0.23.9 @@ -9511,15 +9323,15 @@ snapshots: - supports-color - utf-8-validate - '@storybook/components@8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': + '@storybook/components@8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': dependencies: - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) '@storybook/core@8.2.2': dependencies: '@storybook/csf': 0.1.11 '@types/express': 4.17.21 - '@types/node': 18.19.39 + '@types/node': 18.19.42 browser-assert: 1.2.1 esbuild: 0.21.5 esbuild-register: 3.5.0(esbuild@0.21.5) @@ -9533,14 +9345,14 @@ snapshots: - supports-color - utf-8-validate - '@storybook/csf-plugin@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': + '@storybook/csf-plugin@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': dependencies: - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) unplugin: 1.11.0 - '@storybook/csf-plugin@8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': + '@storybook/csf-plugin@8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': dependencies: - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) unplugin: 1.11.0 '@storybook/csf@0.0.1': @@ -9558,48 +9370,48 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/instrumenter@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': + '@storybook/instrumenter@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': dependencies: '@storybook/global': 5.0.0 '@vitest/utils': 1.6.0 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) util: 0.12.5 - '@storybook/manager-api@8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': + '@storybook/manager-api@8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': dependencies: - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) - '@storybook/preview-api@8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': + '@storybook/preview-api@8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': dependencies: - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) - '@storybook/react-dom-shim@8.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': + '@storybook/react-dom-shim@8.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) - '@storybook/react-dom-shim@8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': + '@storybook/react-dom-shim@8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) - '@storybook/react-vite@8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.19.0)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(typescript@5.5.4)(vite@5.3.5(@types/node@20.14.12)(terser@5.31.6))': + '@storybook/react-vite@8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.19.0)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))(typescript@5.5.4)(vite@5.3.5(@types/node@22.2.0)(terser@5.31.6))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.1(typescript@5.5.4)(vite@5.3.5(@types/node@20.14.12)(terser@5.31.6)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.1(typescript@5.5.4)(vite@5.3.5(@types/node@22.2.0)(terser@5.31.6)) '@rollup/pluginutils': 5.1.0(rollup@4.19.0) - '@storybook/builder-vite': 8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(typescript@5.5.4)(vite@5.3.5(@types/node@20.14.12)(terser@5.31.6)) - '@storybook/react': 8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(typescript@5.5.4) + '@storybook/builder-vite': 8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))(typescript@5.5.4)(vite@5.3.5(@types/node@22.2.0)(terser@5.31.6)) + '@storybook/react': 8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))(typescript@5.5.4) find-up: 5.0.0 magic-string: 0.30.10 react: 18.3.1 react-docgen: 7.0.3 react-dom: 18.3.1(react@18.3.1) resolve: 1.22.8 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) tsconfig-paths: 4.2.0 - vite: 5.3.5(@types/node@20.14.12)(terser@5.31.6) + vite: 5.3.5(@types/node@22.2.0)(terser@5.31.6) transitivePeerDependencies: - '@preact/preset-vite' - rollup @@ -9607,39 +9419,14 @@ snapshots: - typescript - vite-plugin-glimmerx - '@storybook/react@8.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(typescript@5.5.4)': - dependencies: - '@storybook/global': 5.0.0 - '@storybook/react-dom-shim': 8.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@types/escodegen': 0.0.6 - '@types/estree': 0.0.51 - '@types/node': 18.19.39 - acorn: 7.4.1 - acorn-jsx: 5.3.2(acorn@7.4.1) - acorn-walk: 7.2.0 - escodegen: 2.1.0 - html-tags: 3.3.1 - lodash: 4.17.21 - prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-element-to-jsx-string: 15.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - semver: 7.6.2 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) - ts-dedent: 2.2.0 - type-fest: 2.19.0 - util-deprecate: 1.0.2 - optionalDependencies: - typescript: 5.5.4 - - '@storybook/react@8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(typescript@5.5.4)': + '@storybook/react@8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))(typescript@5.5.4)': dependencies: - '@storybook/components': 8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) + '@storybook/components': 8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) '@storybook/global': 5.0.0 - '@storybook/manager-api': 8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/preview-api': 8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/react-dom-shim': 8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) - '@storybook/theming': 8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) + '@storybook/manager-api': 8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) + '@storybook/preview-api': 8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) + '@storybook/react-dom-shim': 8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) + '@storybook/theming': 8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) '@types/escodegen': 0.0.6 '@types/estree': 0.0.51 '@types/node': 18.19.42 @@ -9654,23 +9441,23 @@ snapshots: react-dom: 18.3.1(react@18.3.1) react-element-to-jsx-string: 15.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) semver: 7.6.3 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) ts-dedent: 2.2.0 type-fest: 2.19.0 util-deprecate: 1.0.2 optionalDependencies: typescript: 5.5.4 - '@storybook/test@8.2.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.14.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@20.14.12)(typescript@5.5.4)))(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))(vitest@2.0.4(@types/node@20.14.12)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6))': + '@storybook/test@8.2.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)))(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))(vitest@2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6))': dependencies: '@storybook/csf': 0.1.11 - '@storybook/instrumenter': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8))) + '@storybook/instrumenter': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) '@testing-library/dom': 10.1.0 - '@testing-library/jest-dom': 6.4.5(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.14.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@20.14.12)(typescript@5.5.4)))(vitest@2.0.4(@types/node@20.14.12)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6)) + '@testing-library/jest-dom': 6.4.5(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)))(vitest@2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6)) '@testing-library/user-event': 14.5.2(@testing-library/dom@10.1.0) '@vitest/expect': 1.6.0 '@vitest/spy': 1.6.0 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) util: 0.12.5 transitivePeerDependencies: - '@jest/globals' @@ -9679,9 +9466,9 @@ snapshots: - jest - vitest - '@storybook/theming@8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)))': + '@storybook/theming@8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': dependencies: - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) '@swc/core-darwin-arm64@1.5.7': optional: true @@ -9761,7 +9548,7 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/jest-dom@6.4.5(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.14.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@20.14.12)(typescript@5.5.4)))(vitest@2.0.4(@types/node@20.14.12)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6))': + '@testing-library/jest-dom@6.4.5(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)))(vitest@2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6))': dependencies: '@adobe/css-tools': 4.4.0 '@babel/runtime': 7.24.8 @@ -9774,8 +9561,8 @@ snapshots: optionalDependencies: '@jest/globals': 29.7.0 '@types/jest': 29.5.12 - jest: 29.7.0(@types/node@20.14.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@20.14.12)(typescript@5.5.4)) - vitest: 2.0.4(@types/node@20.14.12)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6) + jest: 29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)) + vitest: 2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6) '@testing-library/react@14.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -9811,29 +9598,29 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.24.8 - '@babel/types': 7.24.9 + '@babel/parser': 7.25.3 + '@babel/types': 7.25.2 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.6 '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.24.9 + '@babel/types': 7.25.2 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.24.8 - '@babel/types': 7.24.9 + '@babel/parser': 7.25.3 + '@babel/types': 7.25.2 '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.24.9 + '@babel/types': 7.25.2 '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 20.14.10 + '@types/node': 22.2.0 '@types/cacheable-request@6.0.3': dependencies: @@ -9844,15 +9631,15 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 20.14.10 + '@types/node': 22.2.0 '@types/crc@3.8.3': dependencies: - '@types/node': 20.14.10 + '@types/node': 22.2.0 '@types/cross-spawn@6.0.6': dependencies: - '@types/node': 20.14.10 + '@types/node': 22.2.0 '@types/debug@4.1.12': dependencies: @@ -9878,7 +9665,7 @@ snapshots: '@types/express-serve-static-core@4.19.5': dependencies: - '@types/node': 20.14.10 + '@types/node': 22.2.0 '@types/qs': 6.9.15 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -9899,7 +9686,7 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.14.12 + '@types/node': 22.2.0 '@types/graceful-fs@4.1.9': dependencies: @@ -9973,10 +9760,6 @@ snapshots: '@types/node@16.9.1': {} - '@types/node@18.19.39': - dependencies: - undici-types: 5.26.5 - '@types/node@18.19.42': dependencies: undici-types: 5.26.5 @@ -9985,14 +9768,9 @@ snapshots: dependencies: undici-types: 5.26.5 - '@types/node@20.14.12': - dependencies: - undici-types: 5.26.5 - '@types/node@22.2.0': dependencies: undici-types: 6.13.0 - optional: true '@types/object-inspect@1.13.0': {} @@ -10054,12 +9832,12 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 20.14.10 + '@types/node': 22.2.0 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 20.14.10 + '@types/node': 22.2.0 '@types/send': 0.17.4 '@types/shallowequal@1.1.5': {} @@ -10115,7 +9893,7 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 20.14.10 + '@types/node': 22.2.0 optional: true '@typescript-eslint/eslint-plugin@7.16.0(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)': @@ -10163,7 +9941,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 7.16.0(typescript@5.5.4) '@typescript-eslint/utils': 7.16.0(eslint@8.57.0)(typescript@5.5.4) - debug: 4.3.5 + debug: 4.3.6 eslint: 8.57.0 ts-api-utils: 1.3.0(typescript@5.5.4) optionalDependencies: @@ -10179,7 +9957,7 @@ snapshots: dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.5 + debug: 4.3.6 globby: 11.1.0 is-glob: 4.0.3 semver: 7.6.3 @@ -10193,7 +9971,7 @@ snapshots: dependencies: '@typescript-eslint/types': 7.16.0 '@typescript-eslint/visitor-keys': 7.16.0 - debug: 4.3.5 + debug: 4.3.6 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 @@ -10251,18 +10029,18 @@ snapshots: '@use-gesture/core': 10.3.1 react: 18.3.1 - '@vitejs/plugin-react-swc@3.7.0(vite@5.3.5(@types/node@20.14.12)(terser@5.31.6))': + '@vitejs/plugin-react-swc@3.7.0(vite@5.3.5(@types/node@22.2.0)(terser@5.31.6))': dependencies: '@swc/core': 1.5.7 - vite: 5.3.5(@types/node@20.14.12)(terser@5.31.6) + vite: 5.3.5(@types/node@22.2.0)(terser@5.31.6) transitivePeerDependencies: - '@swc/helpers' - '@vitest/coverage-v8@2.0.4(vitest@2.0.4(@types/node@20.14.12)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6))': + '@vitest/coverage-v8@2.0.4(vitest@2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 - debug: 4.3.5 + debug: 4.3.6 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.6 @@ -10272,7 +10050,7 @@ snapshots: std-env: 3.7.0 test-exclude: 7.0.1 tinyrainbow: 1.2.0 - vitest: 2.0.4(@types/node@20.14.12)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6) + vitest: 2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6) transitivePeerDependencies: - supports-color @@ -10506,13 +10284,13 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color agent-base@7.1.1: dependencies: - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color @@ -10736,9 +10514,17 @@ snapshots: transitivePeerDependencies: - debug - babel-core@7.0.0-bridge.0(@babel/core@7.24.8): + axios@1.7.4(debug@4.3.6): dependencies: - '@babel/core': 7.24.8 + follow-redirects: 1.15.6(debug@4.3.6) + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + babel-core@7.0.0-bridge.0(@babel/core@7.25.2): + dependencies: + '@babel/core': 7.25.2 babel-jest@29.7.0(@babel/core@7.25.2): dependencies: @@ -10779,27 +10565,27 @@ snapshots: cosmiconfig: 7.1.0 resolve: 1.22.8 - babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.24.8): + babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.25.2): dependencies: - '@babel/compat-data': 7.24.8 - '@babel/core': 7.24.8 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.8) + '@babel/compat-data': 7.25.2 + '@babel/core': 7.25.2 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.8): + babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.25.2): dependencies: - '@babel/core': 7.24.8 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.8) + '@babel/core': 7.25.2 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) core-js-compat: 3.37.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.24.8): + babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.25.2): dependencies: - '@babel/core': 7.24.8 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.8) + '@babel/core': 7.25.2 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) transitivePeerDependencies: - supports-color @@ -10905,7 +10691,6 @@ snapshots: electron-to-chromium: 1.5.7 node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.3) - optional: true browserstack-local@1.5.5: dependencies: @@ -10996,8 +10781,7 @@ snapshots: caniuse-lite@1.0.30001641: {} - caniuse-lite@1.0.30001651: - optional: true + caniuse-lite@1.0.30001651: {} canvas@2.11.2: dependencies: @@ -11008,9 +10792,9 @@ snapshots: - encoding - supports-color - centra@2.7.0(debug@4.3.5): + centra@2.7.0(debug@4.3.6): dependencies: - follow-redirects: 1.15.6(debug@4.3.5) + follow-redirects: 1.15.6(debug@4.3.6) transitivePeerDependencies: - debug @@ -11290,7 +11074,7 @@ snapshots: core-js-compat@3.37.1: dependencies: - browserslist: 4.23.2 + browserslist: 4.23.3 core-js-pure@3.37.1: {} @@ -11315,13 +11099,13 @@ snapshots: dependencies: buffer: 5.7.1 - create-jest@29.7.0(@types/node@20.14.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@20.14.12)(typescript@5.5.4)): + create-jest@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.14.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@20.14.12)(typescript@5.5.4)) + jest-config: 29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -11597,8 +11381,7 @@ snapshots: electron-to-chromium@1.4.827: {} - electron-to-chromium@1.5.7: - optional: true + electron-to-chromium@1.5.7: {} emittery@0.13.1: optional: true @@ -11618,7 +11401,7 @@ snapshots: engine.io-client@6.5.4: dependencies: '@socket.io/component-emitter': 3.1.2 - debug: 4.3.5 + debug: 4.3.6 engine.io-parser: 5.2.3 ws: 8.17.1 xmlhttprequest-ssl: 2.0.0 @@ -11745,7 +11528,7 @@ snapshots: esbuild-register@3.5.0(esbuild@0.21.5): dependencies: - debug: 4.3.5 + debug: 4.3.6 esbuild: 0.21.5 transitivePeerDependencies: - supports-color @@ -12049,7 +11832,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.3.5 + debug: 4.3.6 get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -12185,6 +11968,10 @@ snapshots: optionalDependencies: debug: 4.3.5 + follow-redirects@1.15.6(debug@4.3.6): + optionalDependencies: + debug: 4.3.6 + for-each@0.3.3: dependencies: is-callable: 1.2.7 @@ -12503,7 +12290,7 @@ snapshots: http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.1 - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color @@ -12515,28 +12302,28 @@ snapshots: https-proxy-agent@5.0.0: dependencies: agent-base: 6.0.2 - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color https-proxy-agent@7.0.4: dependencies: agent-base: 7.1.1 - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color https-proxy-agent@7.0.5: dependencies: agent-base: 7.1.1 - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color @@ -12825,7 +12612,7 @@ snapshots: istanbul-lib-source-maps@5.0.6: dependencies: '@jridgewell/trace-mapping': 0.3.25 - debug: 4.3.5 + debug: 4.3.6 istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: - supports-color @@ -12904,16 +12691,16 @@ snapshots: - supports-color optional: true - jest-cli@29.7.0(@types/node@20.14.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@20.14.12)(typescript@5.5.4)): + jest-cli@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@20.14.12)(typescript@5.5.4)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.14.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@20.14.12)(typescript@5.5.4)) + create-jest: 29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@20.14.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@20.14.12)(typescript@5.5.4)) + jest-config: 29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -12924,39 +12711,7 @@ snapshots: - ts-node optional: true - jest-config@29.7.0(@types/node@20.14.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@20.14.12)(typescript@5.5.4)): - dependencies: - '@babel/core': 7.25.2 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.25.2) - chalk: 4.1.2 - ci-info: 3.9.0 - deepmerge: 4.3.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-circus: 29.7.0(babel-plugin-macros@3.1.0) - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.7 - parse-json: 5.2.0 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 20.14.12 - ts-node: 10.9.2(@swc/core@1.5.7)(@types/node@20.14.12)(typescript@5.5.4) - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - optional: true - - jest-config@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@20.14.12)(typescript@5.5.4)): + jest-config@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)): dependencies: '@babel/core': 7.25.2 '@jest/test-sequencer': 29.7.0 @@ -12982,7 +12737,7 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 22.2.0 - ts-node: 10.9.2(@swc/core@1.5.7)(@types/node@20.14.12)(typescript@5.5.4) + ts-node: 10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -13261,12 +13016,12 @@ snapshots: supports-color: 8.1.1 optional: true - jest@29.7.0(@types/node@20.14.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@20.14.12)(typescript@5.5.4)): + jest@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@20.14.12)(typescript@5.5.4)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@20.14.12)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@20.14.12)(typescript@5.5.4)) + jest-cli: 29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -13290,19 +13045,19 @@ snapshots: dependencies: argparse: 2.0.1 - jscodeshift@0.15.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)): + jscodeshift@0.15.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)): dependencies: - '@babel/core': 7.24.8 - '@babel/parser': 7.24.8 - '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.24.8) - '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.24.8) - '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.24.8) - '@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.24.8) - '@babel/preset-flow': 7.24.7(@babel/core@7.24.8) - '@babel/preset-typescript': 7.24.7(@babel/core@7.24.8) - '@babel/register': 7.24.6(@babel/core@7.24.8) - babel-core: 7.0.0-bridge.0(@babel/core@7.24.8) + '@babel/core': 7.25.2 + '@babel/parser': 7.25.3 + '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2) + '@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.25.2) + '@babel/preset-flow': 7.24.7(@babel/core@7.25.2) + '@babel/preset-typescript': 7.24.7(@babel/core@7.25.2) + '@babel/register': 7.24.6(@babel/core@7.25.2) + babel-core: 7.0.0-bridge.0(@babel/core@7.25.2) chalk: 4.1.2 flow-parser: 0.239.1 graceful-fs: 4.2.11 @@ -13313,7 +13068,7 @@ snapshots: temp: 0.8.4 write-file-atomic: 2.4.3 optionalDependencies: - '@babel/preset-env': 7.24.8(@babel/core@7.24.8) + '@babel/preset-env': 7.24.8(@babel/core@7.25.2) transitivePeerDependencies: - supports-color @@ -13441,14 +13196,14 @@ snapshots: rfdc: 1.4.1 wrap-ansi: 9.0.0 - load-bmfont@1.4.2(debug@4.3.5): + load-bmfont@1.4.2(debug@4.3.6): dependencies: buffer-equal: 0.0.1 mime: 1.6.0 parse-bmfont-ascii: 1.0.6 parse-bmfont-binary: 1.0.6 parse-bmfont-xml: 1.1.6 - phin: 3.7.1(debug@4.3.5) + phin: 3.7.1(debug@4.3.6) xhr: 2.6.0 xtend: 4.0.2 transitivePeerDependencies: @@ -13560,8 +13315,8 @@ snapshots: magicast@0.3.4: dependencies: - '@babel/parser': 7.24.8 - '@babel/types': 7.24.8 + '@babel/parser': 7.25.3 + '@babel/types': 7.25.2 source-map-js: 1.2.0 make-dir@2.1.0: @@ -13769,14 +13524,13 @@ snapshots: node-releases@2.0.14: {} - node-releases@2.0.18: - optional: true + node-releases@2.0.18: {} - node-vibrant@3.1.6(debug@4.3.5): + node-vibrant@3.1.6(debug@4.3.6): dependencies: - '@jimp/custom': 0.16.13(debug@4.3.5) - '@jimp/plugin-resize': 0.16.13(@jimp/custom@0.16.13(debug@4.3.5)) - '@jimp/types': 0.16.13(@jimp/custom@0.16.13(debug@4.3.5)) + '@jimp/custom': 0.16.13(debug@4.3.6) + '@jimp/plugin-resize': 0.16.13(@jimp/custom@0.16.13(debug@4.3.6)) + '@jimp/types': 0.16.13(@jimp/custom@0.16.13(debug@4.3.6)) '@types/lodash': 4.17.6 '@types/node': 10.17.60 lodash: 4.17.21 @@ -14036,9 +13790,9 @@ snapshots: phin@2.9.3: {} - phin@3.7.1(debug@4.3.5): + phin@3.7.1(debug@4.3.6): dependencies: - centra: 2.7.0(debug@4.3.5) + centra: 2.7.0(debug@4.3.6) transitivePeerDependencies: - debug @@ -14256,9 +14010,9 @@ snapshots: react-docgen@7.0.3: dependencies: - '@babel/core': 7.24.8 - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.8 + '@babel/core': 7.25.2 + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.6 '@types/doctrine': 0.0.9 @@ -14653,8 +14407,6 @@ snapshots: semver@6.3.1: {} - semver@7.6.2: {} - semver@7.6.3: {} send@0.18.0: @@ -14808,7 +14560,7 @@ snapshots: socket.io-parser@4.2.4: dependencies: '@socket.io/component-emitter': 3.1.2 - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color @@ -14878,10 +14630,10 @@ snapshots: dependencies: internal-slot: 1.0.7 - storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)): + storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)): dependencies: - '@babel/core': 7.24.8 - '@babel/types': 7.24.8 + '@babel/core': 7.25.2 + '@babel/types': 7.25.2 '@storybook/codemod': 8.2.2 '@storybook/core': 8.2.2 '@types/semver': 7.5.8 @@ -14898,12 +14650,12 @@ snapshots: fs-extra: 11.2.0 giget: 1.2.3 globby: 14.0.2 - jscodeshift: 0.15.2(@babel/preset-env@7.24.8(@babel/core@7.24.8)) + jscodeshift: 0.15.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) leven: 3.1.0 ora: 5.4.1 prettier: 3.3.2 prompts: 2.4.2 - semver: 7.6.2 + semver: 7.6.3 strip-json-comments: 3.1.1 tempy: 3.1.0 tiny-invariant: 1.3.3 @@ -15233,14 +14985,14 @@ snapshots: ts-dedent@2.2.0: {} - ts-node@10.9.2(@swc/core@1.5.7)(@types/node@20.14.12)(typescript@5.1.6): + ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.1.6): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.14.12 + '@types/node': 22.2.0 acorn: 8.12.1 acorn-walk: 8.3.3 arg: 4.1.3 @@ -15253,14 +15005,14 @@ snapshots: optionalDependencies: '@swc/core': 1.5.7 - ts-node@10.9.2(@swc/core@1.5.7)(@types/node@20.14.12)(typescript@5.5.4): + ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.14.12 + '@types/node': 22.2.0 acorn: 8.12.1 acorn-walk: 8.3.3 arg: 4.1.3 @@ -15376,11 +15128,11 @@ snapshots: typescript-json-schema@0.64.0(@swc/core@1.5.7): dependencies: '@types/json-schema': 7.0.15 - '@types/node': 20.14.12 + '@types/node': 22.2.0 glob: 7.2.3 path-equal: 1.2.5 safe-stable-stringify: 2.4.3 - ts-node: 10.9.2(@swc/core@1.5.7)(@types/node@20.14.12)(typescript@5.1.6) + ts-node: 10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.1.6) typescript: 5.1.6 yargs: 17.7.2 transitivePeerDependencies: @@ -15413,8 +15165,7 @@ snapshots: undici-types@5.26.5: {} - undici-types@6.13.0: - optional: true + undici-types@6.13.0: {} unicode-canonical-property-names-ecmascript@2.0.0: {} @@ -15472,7 +15223,6 @@ snapshots: browserslist: 4.23.3 escalade: 3.1.2 picocolors: 1.0.1 - optional: true update-check@1.5.2: dependencies: @@ -15535,27 +15285,10 @@ snapshots: vary@1.1.2: {} - vite-node@2.0.4(@types/node@20.14.12)(terser@5.31.6): - dependencies: - cac: 6.7.14 - debug: 4.3.5 - pathe: 1.1.2 - tinyrainbow: 1.2.0 - vite: 5.3.5(@types/node@20.14.12)(terser@5.31.6) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - vite-node@2.0.4(@types/node@22.2.0)(terser@5.31.6): dependencies: cac: 6.7.14 - debug: 4.3.5 + debug: 4.3.6 pathe: 1.1.2 tinyrainbow: 1.2.0 vite: 5.3.5(@types/node@22.2.0)(terser@5.31.6) @@ -15569,16 +15302,6 @@ snapshots: - supports-color - terser - vite@5.3.5(@types/node@20.14.12)(terser@5.31.6): - dependencies: - esbuild: 0.21.5 - postcss: 8.4.39 - rollup: 4.19.0 - optionalDependencies: - '@types/node': 20.14.12 - fsevents: 2.3.3 - terser: 5.31.6 - vite@5.3.5(@types/node@22.2.0)(terser@5.31.6): dependencies: esbuild: 0.21.5 @@ -15589,39 +15312,6 @@ snapshots: fsevents: 2.3.3 terser: 5.31.6 - vitest@2.0.4(@types/node@20.14.12)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6): - dependencies: - '@ampproject/remapping': 2.3.0 - '@vitest/expect': 2.0.4 - '@vitest/pretty-format': 2.0.4 - '@vitest/runner': 2.0.4 - '@vitest/snapshot': 2.0.4 - '@vitest/spy': 2.0.4 - '@vitest/utils': 2.0.4 - chai: 5.1.1 - debug: 4.3.5 - execa: 8.0.1 - magic-string: 0.30.10 - pathe: 1.1.2 - std-env: 3.7.0 - tinybench: 2.8.0 - tinypool: 1.0.0 - tinyrainbow: 1.2.0 - vite: 5.3.5(@types/node@20.14.12)(terser@5.31.6) - vite-node: 2.0.4(@types/node@20.14.12)(terser@5.31.6) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/node': 20.14.12 - jsdom: 24.1.1(canvas@2.11.2) - transitivePeerDependencies: - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - vitest@2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6): dependencies: '@ampproject/remapping': 2.3.0 From 9b956db7cd68fc533c942307866969a683589da5 Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Mon, 2 Sep 2024 09:21:55 +0000 Subject: [PATCH 08/30] fix imports Signed-off-by: Teo Koon Peng --- packages/api-client/package.json | 2 +- .../.storybook/preview.tsx | 2 +- .../docs/getting-started.md | 28 +++++++++++++++++-- .../examples/custom-theme/index.tsx | 20 ++++++------- .../examples/demo/index.tsx | 20 ++++++------- .../examples/shared/index.tsx | 20 ++++++------- .../examples/shared/vite.config.ts | 2 +- .../rmf-dashboard-framework/tsconfig.app.json | 2 +- 8 files changed, 60 insertions(+), 36 deletions(-) diff --git a/packages/api-client/package.json b/packages/api-client/package.json index 82088eac4..556eadf60 100644 --- a/packages/api-client/package.json +++ b/packages/api-client/package.json @@ -6,7 +6,7 @@ "browser": "lib/index.ts", "scripts": { "build": "tsc --build", - "prepack": "pnpm run clean && pnpm run --filter {.}... build && pnpm run lint", + "prepack": "pnpm run --filter {.}... build && pnpm run lint", "lint": "eslint --max-warnings 0 lib", "test": "vitest" }, diff --git a/packages/rmf-dashboard-framework/.storybook/preview.tsx b/packages/rmf-dashboard-framework/.storybook/preview.tsx index 9f74cc1a2..29957b765 100644 --- a/packages/rmf-dashboard-framework/.storybook/preview.tsx +++ b/packages/rmf-dashboard-framework/.storybook/preview.tsx @@ -1,6 +1,6 @@ import { CssBaseline } from '@mui/material'; import { Decorator, Preview } from '@storybook/react'; -import { TestProviders } from 'rmf-dashboard/utils/test-utils.test'; +import { TestProviders } from 'rmf-dashboard-framework/utils/test-utils.test'; import { LocalizationProvider } from '../src/components/locale'; diff --git a/packages/rmf-dashboard-framework/docs/getting-started.md b/packages/rmf-dashboard-framework/docs/getting-started.md index 935ec6fac..0a78d917e 100644 --- a/packages/rmf-dashboard-framework/docs/getting-started.md +++ b/packages/rmf-dashboard-framework/docs/getting-started.md @@ -20,8 +20,32 @@ Clone this repo and install deps pnpm create vite -t react-ts basic-dashboard cd basic-dashboard # TODO(koonpeng): install from npmjs after package is published. -pnpm add https://github.com/open-rmf/rmf-web#koonpeng/merge-react-components:packages/rmf-dashboard-framework -pnpm install +git clone --depth 1 https://github.com/open-rmf/rmf-web +``` + + +Add modify the following to resolve `rmf-dashboard-framework` as if it is installed from npmjs. + +pnpm-workspace.yaml (create if not exist) +```yaml +packages: + - "." + - "rmf-web/**/*" +``` + +package.json +``` +"dependencies": { + ... + "rmf-dashboard-framework": "workspace:*" +} +``` + +tsconfig.app.json +``` +"paths": { + "rmf-dashboard-framework/*": ["./node_modules/rmf-dashboard-framework/src/*"] +} ``` ### Creating a Basic Dashboard diff --git a/packages/rmf-dashboard-framework/examples/custom-theme/index.tsx b/packages/rmf-dashboard-framework/examples/custom-theme/index.tsx index a3a3dede0..78e33c9ea 100644 --- a/packages/rmf-dashboard-framework/examples/custom-theme/index.tsx +++ b/packages/rmf-dashboard-framework/examples/custom-theme/index.tsx @@ -5,16 +5,16 @@ import '@fontsource/roboto/700.css'; import { createTheme } from '@mui/material'; import ReactDOM from 'react-dom/client'; -import { RmfDashboard } from 'rmf-dashboard/components'; -import { LocallyPersistentWorkspace } from 'rmf-dashboard/components/workspace'; -import { MicroAppManifest } from 'rmf-dashboard/micro-apps'; -import doorsApp from 'rmf-dashboard/micro-apps/doors-app'; -import liftsApp from 'rmf-dashboard/micro-apps/lifts-app'; -import createMapApp from 'rmf-dashboard/micro-apps/map-app'; -import robotMutexGroupsApp from 'rmf-dashboard/micro-apps/robot-mutex-groups-app'; -import robotsApp from 'rmf-dashboard/micro-apps/robots-app'; -import tasksApp from 'rmf-dashboard/micro-apps/tasks-app'; -import StubAuthenticator from 'rmf-dashboard/services/stub-authenticator'; +import { RmfDashboard } from 'rmf-dashboard-framework/components'; +import { LocallyPersistentWorkspace } from 'rmf-dashboard-framework/components/workspace'; +import { MicroAppManifest } from 'rmf-dashboard-framework/micro-apps'; +import doorsApp from 'rmf-dashboard-framework/micro-apps/doors-app'; +import liftsApp from 'rmf-dashboard-framework/micro-apps/lifts-app'; +import createMapApp from 'rmf-dashboard-framework/micro-apps/map-app'; +import robotMutexGroupsApp from 'rmf-dashboard-framework/micro-apps/robot-mutex-groups-app'; +import robotsApp from 'rmf-dashboard-framework/micro-apps/robots-app'; +import tasksApp from 'rmf-dashboard-framework/micro-apps/tasks-app'; +import StubAuthenticator from 'rmf-dashboard-framework/services/stub-authenticator'; /* eslint-disable @typescript-eslint/no-unused-vars,@typescript-eslint/ban-ts-comment */ // Polar Night diff --git a/packages/rmf-dashboard-framework/examples/demo/index.tsx b/packages/rmf-dashboard-framework/examples/demo/index.tsx index d140ec1a2..9d6c3ba17 100644 --- a/packages/rmf-dashboard-framework/examples/demo/index.tsx +++ b/packages/rmf-dashboard-framework/examples/demo/index.tsx @@ -4,20 +4,20 @@ import '@fontsource/roboto/500.css'; import '@fontsource/roboto/700.css'; import ReactDOM from 'react-dom/client'; -import { RmfDashboard } from 'rmf-dashboard/components'; +import { RmfDashboard } from 'rmf-dashboard-framework/components'; import { InitialWindow, LocallyPersistentWorkspace, Workspace, -} from 'rmf-dashboard/components/workspace'; -import { MicroAppManifest } from 'rmf-dashboard/micro-apps'; -import doorsApp from 'rmf-dashboard/micro-apps/doors-app'; -import liftsApp from 'rmf-dashboard/micro-apps/lifts-app'; -import createMapApp from 'rmf-dashboard/micro-apps/map-app'; -import robotMutexGroupsApp from 'rmf-dashboard/micro-apps/robot-mutex-groups-app'; -import robotsApp from 'rmf-dashboard/micro-apps/robots-app'; -import tasksApp from 'rmf-dashboard/micro-apps/tasks-app'; -import StubAuthenticator from 'rmf-dashboard/services/stub-authenticator'; +} from 'rmf-dashboard-framework/components/workspace'; +import { MicroAppManifest } from 'rmf-dashboard-framework/micro-apps'; +import doorsApp from 'rmf-dashboard-framework/micro-apps/doors-app'; +import liftsApp from 'rmf-dashboard-framework/micro-apps/lifts-app'; +import createMapApp from 'rmf-dashboard-framework/micro-apps/map-app'; +import robotMutexGroupsApp from 'rmf-dashboard-framework/micro-apps/robot-mutex-groups-app'; +import robotsApp from 'rmf-dashboard-framework/micro-apps/robots-app'; +import tasksApp from 'rmf-dashboard-framework/micro-apps/tasks-app'; +import StubAuthenticator from 'rmf-dashboard-framework/services/stub-authenticator'; const mapApp = createMapApp({ attributionPrefix: 'Open-RMF', diff --git a/packages/rmf-dashboard-framework/examples/shared/index.tsx b/packages/rmf-dashboard-framework/examples/shared/index.tsx index c37caac53..8221e9e83 100644 --- a/packages/rmf-dashboard-framework/examples/shared/index.tsx +++ b/packages/rmf-dashboard-framework/examples/shared/index.tsx @@ -5,20 +5,20 @@ import '@fontsource/roboto/700.css'; import './app.css'; import ReactDOM from 'react-dom/client'; -import { RmfDashboard } from 'rmf-dashboard/components'; +import { RmfDashboard } from 'rmf-dashboard-framework/components'; import { InitialWindow, LocallyPersistentWorkspace, Workspace, -} from 'rmf-dashboard/components/workspace'; -import { MicroAppManifest } from 'rmf-dashboard/micro-apps'; -import doorsApp from 'rmf-dashboard/micro-apps/doors-app'; -import liftsApp from 'rmf-dashboard/micro-apps/lifts-app'; -import createMapApp from 'rmf-dashboard/micro-apps/map-app'; -import robotMutexGroupsApp from 'rmf-dashboard/micro-apps/robot-mutex-groups-app'; -import robotsApp from 'rmf-dashboard/micro-apps/robots-app'; -import tasksApp from 'rmf-dashboard/micro-apps/tasks-app'; -import StubAuthenticator from 'rmf-dashboard/services/stub-authenticator'; +} from 'rmf-dashboard-framework/components/workspace'; +import { MicroAppManifest } from 'rmf-dashboard-framework/micro-apps'; +import doorsApp from 'rmf-dashboard-framework/micro-apps/doors-app'; +import liftsApp from 'rmf-dashboard-framework/micro-apps/lifts-app'; +import createMapApp from 'rmf-dashboard-framework/micro-apps/map-app'; +import robotMutexGroupsApp from 'rmf-dashboard-framework/micro-apps/robot-mutex-groups-app'; +import robotsApp from 'rmf-dashboard-framework/micro-apps/robots-app'; +import tasksApp from 'rmf-dashboard-framework/micro-apps/tasks-app'; +import StubAuthenticator from 'rmf-dashboard-framework/services/stub-authenticator'; const mapApp = createMapApp({ attributionPrefix: 'Open-RMF', diff --git a/packages/rmf-dashboard-framework/examples/shared/vite.config.ts b/packages/rmf-dashboard-framework/examples/shared/vite.config.ts index e6394d559..5972ebe86 100644 --- a/packages/rmf-dashboard-framework/examples/shared/vite.config.ts +++ b/packages/rmf-dashboard-framework/examples/shared/vite.config.ts @@ -8,7 +8,7 @@ export default defineConfig({ publicDir: path.resolve(__dirname, 'public'), resolve: { alias: { - 'rmf-dashboard': path.resolve(__dirname, '../../src'), + 'rmf-dashboard-framework': path.resolve(__dirname, '../../src'), }, }, }); diff --git a/packages/rmf-dashboard-framework/tsconfig.app.json b/packages/rmf-dashboard-framework/tsconfig.app.json index 35af115c0..9b3ccaf36 100644 --- a/packages/rmf-dashboard-framework/tsconfig.app.json +++ b/packages/rmf-dashboard-framework/tsconfig.app.json @@ -25,7 +25,7 @@ "noFallthroughCasesInSwitch": true, "paths": { - "rmf-dashboard/*": ["./src/*"] + "rmf-dashboard-framework/*": ["./src/*"] } }, "include": ["src", "examples", ".storybook/*"] From 024d4d81f725630ef50058da569f264ef6ac97ee Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Mon, 2 Sep 2024 09:35:16 +0000 Subject: [PATCH 09/30] fix @aldabil/react-scheduler incompatibility Signed-off-by: Teo Koon Peng --- packages/rmf-dashboard-framework/package.json | 2 +- pnpm-lock.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/rmf-dashboard-framework/package.json b/packages/rmf-dashboard-framework/package.json index 958eeaa56..1721b7261 100644 --- a/packages/rmf-dashboard-framework/package.json +++ b/packages/rmf-dashboard-framework/package.json @@ -21,7 +21,7 @@ "test:coverage": "vitest --coverage" }, "peerDependencies": { - "@aldabil/react-scheduler": "^2.7.8", + "@aldabil/react-scheduler": "~2.7.8", "@emotion/react": "^11.13.0", "@emotion/styled": "^11.13.0", "@fontsource/roboto": "^4.3.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 11068b19a..9b9f9d992 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -129,7 +129,7 @@ importers: packages/rmf-dashboard-framework: dependencies: '@aldabil/react-scheduler': - specifier: ^2.7.8 + specifier: ~2.7.8 version: 2.7.8(5p2u46g4dnuejshpvwpzugasde) '@emotion/react': specifier: ^11.13.0 From 0ffa017d00c8f0644ddb733801766c5c0d0b02b1 Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Mon, 2 Sep 2024 09:47:51 +0000 Subject: [PATCH 10/30] rename index.tsx to main.tsx to follow vite default template Signed-off-by: Teo Koon Peng --- .../rmf-dashboard-framework/docs/getting-started.md | 11 ++++++++++- .../examples/custom-theme/index.html | 2 +- .../examples/custom-theme/{index.tsx => main.tsx} | 0 .../rmf-dashboard-framework/examples/demo/index.html | 2 +- .../examples/demo/{index.tsx => main.tsx} | 0 5 files changed, 12 insertions(+), 3 deletions(-) rename packages/rmf-dashboard-framework/examples/custom-theme/{index.tsx => main.tsx} (100%) rename packages/rmf-dashboard-framework/examples/demo/{index.tsx => main.tsx} (100%) diff --git a/packages/rmf-dashboard-framework/docs/getting-started.md b/packages/rmf-dashboard-framework/docs/getting-started.md index 0a78d917e..cb5d2b07f 100644 --- a/packages/rmf-dashboard-framework/docs/getting-started.md +++ b/packages/rmf-dashboard-framework/docs/getting-started.md @@ -48,6 +48,15 @@ tsconfig.app.json } ``` -### Creating a Basic Dashboard +Finally install and build the deps +```bash +# TODO(koonpeng): -w flag not needed after rmf-dashboard-framework is published +pnpm add -w @fontsource/roboto +pnpm install --filter basic-dashboard... +pnpm --filter basic-dashboard^... build +``` + +### Creating a Basic Dashboard +At this point, you should be able to follow the [demo dashboard example](../examples/demo/main.tsx). diff --git a/packages/rmf-dashboard-framework/examples/custom-theme/index.html b/packages/rmf-dashboard-framework/examples/custom-theme/index.html index f13043862..97431e709 100644 --- a/packages/rmf-dashboard-framework/examples/custom-theme/index.html +++ b/packages/rmf-dashboard-framework/examples/custom-theme/index.html @@ -13,6 +13,6 @@
- + diff --git a/packages/rmf-dashboard-framework/examples/custom-theme/index.tsx b/packages/rmf-dashboard-framework/examples/custom-theme/main.tsx similarity index 100% rename from packages/rmf-dashboard-framework/examples/custom-theme/index.tsx rename to packages/rmf-dashboard-framework/examples/custom-theme/main.tsx diff --git a/packages/rmf-dashboard-framework/examples/demo/index.html b/packages/rmf-dashboard-framework/examples/demo/index.html index f13043862..97431e709 100644 --- a/packages/rmf-dashboard-framework/examples/demo/index.html +++ b/packages/rmf-dashboard-framework/examples/demo/index.html @@ -13,6 +13,6 @@
- + diff --git a/packages/rmf-dashboard-framework/examples/demo/index.tsx b/packages/rmf-dashboard-framework/examples/demo/main.tsx similarity index 100% rename from packages/rmf-dashboard-framework/examples/demo/index.tsx rename to packages/rmf-dashboard-framework/examples/demo/main.tsx From 530b5c0406355a69b9ff690e7bf73594934466b8 Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Mon, 2 Sep 2024 09:57:07 +0000 Subject: [PATCH 11/30] cleanup Signed-off-by: Teo Koon Peng --- packages/rmf-dashboard-framework/.gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/rmf-dashboard-framework/.gitignore b/packages/rmf-dashboard-framework/.gitignore index e67d4324d..abe6a5761 100644 --- a/packages/rmf-dashboard-framework/.gitignore +++ b/packages/rmf-dashboard-framework/.gitignore @@ -27,6 +27,5 @@ npm-debug.log* web_server.log /.rmf -/.out *storybook.log From daa5ff32ec1eba66ee9c4efd96b3bcc49a49f7df Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Tue, 3 Sep 2024 04:53:50 +0000 Subject: [PATCH 12/30] abit of refactor to make it easier to create custom windows Signed-off-by: Teo Koon Peng --- .../src/components/tasks/tasks-window.tsx | 158 ++++++++++-------- .../src/components/window/index.ts | 1 + .../components/window/window-container.tsx | 2 +- .../src/components/window/window.tsx | 39 +++-- 4 files changed, 114 insertions(+), 86 deletions(-) diff --git a/packages/rmf-dashboard-framework/src/components/tasks/tasks-window.tsx b/packages/rmf-dashboard-framework/src/components/tasks/tasks-window.tsx index fbd429cfc..ee068dc07 100644 --- a/packages/rmf-dashboard-framework/src/components/tasks/tasks-window.tsx +++ b/packages/rmf-dashboard-framework/src/components/tasks/tasks-window.tsx @@ -1,9 +1,11 @@ +import CloseIcon from '@mui/icons-material/Close'; import DownloadIcon from '@mui/icons-material/Download'; import RefreshIcon from '@mui/icons-material/Refresh'; import { Box, Button, Grid, + IconButton, Menu, MenuItem, styled, @@ -20,7 +22,7 @@ import { useAppController } from '../../hooks/use-app-controller'; import { useRmfApi } from '../../hooks/use-rmf-api'; import { MicroAppProps } from '../../micro-apps'; import { AppEvents } from '../app-events'; -import { Window } from '../window'; +import { Window, WindowManagerStateContext, WindowToolbar } from '../window'; import { TaskSchedule } from './task-schedule'; import { TaskSummary } from './task-summary'; import { @@ -294,86 +296,100 @@ export const TasksWindow = React.memo( setAutoRefresh(newSelectedTabIndex === TaskTablePanel.QueueTable); }; + const windowManagerState = React.useContext(WindowManagerStateContext); + return ( - - - - - { - exportTasksToCsv(true); - handleCloseExportMenu(); - }} - disableRipple - > - Export Minimal - - { - exportTasksToCsv(false); - handleCloseExportMenu(); + + + + + + - Export Full - - - - + + + + + {windowManagerState.designMode && ( + - } + className="window-toolbar-close" + sx={{ pointerEvents: 'auto' }} + onClick={() => onClose && onClose()} > - Refresh Task Queue - - - + + + )} + } {...otherProps} > diff --git a/packages/rmf-dashboard-framework/src/components/window/index.ts b/packages/rmf-dashboard-framework/src/components/window/index.ts index 2ddd54bae..c0278eb24 100644 --- a/packages/rmf-dashboard-framework/src/components/window/index.ts +++ b/packages/rmf-dashboard-framework/src/components/window/index.ts @@ -1,3 +1,4 @@ +export * from './context'; export * from './window'; export * from './window-container'; export * from './window-toolbar'; diff --git a/packages/rmf-dashboard-framework/src/components/window/window-container.tsx b/packages/rmf-dashboard-framework/src/components/window/window-container.tsx index b5a6ea0c1..6f0152275 100644 --- a/packages/rmf-dashboard-framework/src/components/window/window-container.tsx +++ b/packages/rmf-dashboard-framework/src/components/window/window-container.tsx @@ -60,7 +60,7 @@ export const WindowContainer: React.FC = ({ isResizable={designMode} isDraggable={designMode} onLayoutChange={onLayoutChange} - draggableCancel=".custom-resize-handle,.window-toolbar-items" + draggableCancel=".custom-resize-handle,.window-toolbar-close" resizeHandle={} > {children} diff --git a/packages/rmf-dashboard-framework/src/components/window/window.tsx b/packages/rmf-dashboard-framework/src/components/window/window.tsx index d9643a4a1..0688b0f8b 100644 --- a/packages/rmf-dashboard-framework/src/components/window/window.tsx +++ b/packages/rmf-dashboard-framework/src/components/window/window.tsx @@ -8,9 +8,18 @@ import { WindowManagerStateContext } from './context'; import { WindowToolbar } from './window-toolbar'; export interface WindowProps extends PaperProps { + /** + * The title to show on the toolbar when using the default toolbar. Will be ignored when using custom toolbar. + */ title: string; + 'data-grid'?: Layout; + + /** + * A custom toolbar to use. + */ toolbar?: React.ReactNode; + onClose?: () => void; } @@ -40,24 +49,26 @@ export const Window = styled( '& > :not(.custom-resize-handle)': { pointerEvents: windowManagerState.designMode ? 'none' : undefined, }, - '& .window-toolbar-items': { - pointerEvents: 'auto', - }, ...sx, }} {...otherProps} > - - {toolbar} - {windowManagerState.designMode && ( - onClose && onClose()}> - - - )} - + {toolbar ? ( + toolbar + ) : ( + + {windowManagerState.designMode && ( + onClose && onClose()} + > + + + )} + + )} {childComponents} From 829b2e06dd8d1ecc88314de4c463dc29df92ad8c Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Tue, 3 Sep 2024 06:12:14 +0000 Subject: [PATCH 13/30] build deps before starting example Signed-off-by: Teo Koon Peng --- packages/rmf-dashboard-framework/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/rmf-dashboard-framework/package.json b/packages/rmf-dashboard-framework/package.json index 1721b7261..21f11e4e1 100644 --- a/packages/rmf-dashboard-framework/package.json +++ b/packages/rmf-dashboard-framework/package.json @@ -11,7 +11,7 @@ "start": "concurrently npm:start:rmf-server 'npm:start:example examples/demo'", "start:airport": "RMF_DASHBOARD_DEMO_MAP=airport_terminal.launch.xml pnpm run start:sim", "start:clinic": "RMF_DASHBOARD_DEMO_MAP=clinic.launch.xml pnpm run start:sim", - "start:example": "vite -c examples/shared/vite.config.ts", + "start:example": "pnpm --filter=rmf-dashboard-framework^... build && vite -c examples/shared/vite.config.ts", "start:rmf": "node scripts/start-rmf.js", "start:rmf-server": "RMF_SERVER_USE_SIM_TIME=true npm --prefix ../api-server start", "start:rmf-server:psql": "RMF_SERVER_USE_SIM_TIME=true npm run --prefix ../api-server start:psql", From 32551ea949718e8ba5cf7b764cb725b3976b56e3 Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Tue, 3 Sep 2024 08:11:30 +0000 Subject: [PATCH 14/30] update docs Signed-off-by: Teo Koon Peng --- .../docs/getting-started.md | 54 +++++++- .../docs/micro-apps.md | 126 ++++++++++++++++++ .../src/components/tasks/tasks-window.tsx | 17 +-- .../src/components/window/index.ts | 1 + .../components/window/window-close-button.tsx | 24 ++++ .../src/components/window/window.tsx | 15 +-- .../src/micro-apps/tasks-app.ts | 9 -- .../src/micro-apps/tasks-app.tsx | 16 +++ 8 files changed, 224 insertions(+), 38 deletions(-) create mode 100644 packages/rmf-dashboard-framework/docs/micro-apps.md create mode 100644 packages/rmf-dashboard-framework/src/components/window/window-close-button.tsx delete mode 100644 packages/rmf-dashboard-framework/src/micro-apps/tasks-app.ts create mode 100644 packages/rmf-dashboard-framework/src/micro-apps/tasks-app.tsx diff --git a/packages/rmf-dashboard-framework/docs/getting-started.md b/packages/rmf-dashboard-framework/docs/getting-started.md index cb5d2b07f..1522200fd 100644 --- a/packages/rmf-dashboard-framework/docs/getting-started.md +++ b/packages/rmf-dashboard-framework/docs/getting-started.md @@ -52,11 +52,61 @@ Finally install and build the deps ```bash # TODO(koonpeng): -w flag not needed after rmf-dashboard-framework is published -pnpm add -w @fontsource/roboto pnpm install --filter basic-dashboard... pnpm --filter basic-dashboard^... build ``` ### Creating a Basic Dashboard -At this point, you should be able to follow the [demo dashboard example](../examples/demo/main.tsx). +At this point, you should be able to follow the [demo dashboard example](../examples/demo/main.tsx). You may need to install additional deps if you want to use the same fonts and the demo. + +```bash +pnpm add -w @fontsource/roboto +``` + +### Starting a Dev Server + +Before starting the dev server, we need a rmf api server backend for the frontend to connect to. If you are targeting an existing deployment, change the `apiServerUrl` prop to connect to the correct url. If you do not have an existing server, you can start a local server with docker. + + +```bash +docker run \ + --network host -it --rm \ + -e ROS_DOMAIN_ID= \ + -e RMW_IMPLEMENTATION= \ + ghcr.io/open-rmf/rmf-web/api-server:latest +``` + +By default the testing server will be listening on http://localhost:8000, ensure that the `apiServerUrl` prop is correct. + +Now you can start the actual vite dev server + +```bash +pnpm dev +``` + +Navigate to http://localhost:5173 on a browser and you should see the dashboard. + +### Starting RMF Simulation + +If you are testing locally, you may see that the map, doors, robots etc are all empty, this is because the api server is not receiving any data from RMF. Check out [`rmf_demos`](https://github.com/open-rmf/rmf_demos) if you want to test with a RMF simulation. + +### Adding a New Tab + +The `tabs` props in `RmfDashboard` lets you configure the tabs available in the dashboard, you can add an item to the array to add a new tab, for example this will create a new tab that contain a single "Doors" MicroApp. + +```tsx +{ + name: 'My New Tab', + route: 'mynewtab', + element: , +} +``` + +The `layout` property defines the position and size of a MicroApp, the screen is divided into 12 columns and an unlimited number of rows, so this MicroApp will be positioned at the top left and have a width spanning the view port. For more information on the `layout` property, see [react-grid-layout](https://github.com/react-grid-layout/react-grid-layout). diff --git a/packages/rmf-dashboard-framework/docs/micro-apps.md b/packages/rmf-dashboard-framework/docs/micro-apps.md new file mode 100644 index 000000000..131834c2a --- /dev/null +++ b/packages/rmf-dashboard-framework/docs/micro-apps.md @@ -0,0 +1,126 @@ +## MicroApps + +"MicroApps" are the building blocks of `rmf-dashboard-framework`. Each "window" you see in the demo example is a MicroApp. Under the hood, MicroApps are really just react components that receive props of the type `MicroAppProps`. + +### Creating a MicroApp + +The easiest way to create a MicroApp is to use the `createMicroApp` function. The function takes a `appId`, `displayName`, a callback that returns a dynamic import and a callback that return the props passed to the component. + +For example, if you have a `Foo` component in `foo.tsx`, this is how you can create a MicroApp from it. + +foo.tsx + +```tsx +export const Foo = () =>
hello
; +export default Foo; +``` + +foo-app.tsx + +```ts +createMicroApp( + 'example.foo', + 'Foo', + () => import('./foo'), + () => ({}), +); +``` + +Notice that we never import `Foo` directly, instead we only import it dynamically, this is so that vite can code-split the MicroApps and load only the MicroApps used in a tab. + +### Setting Props in the MicroApp + +The above example works because `Foo` does not take any props, but what if `Foo` display a message based on the props? + +foo.tsx + +```tsx +export const Foo = ({ message }) =>
{message}
; +export default Foo; +``` + +`message` will always be undefined because `rmf-dashboard-framework` does not know how to render your component, infact it wouldn't even build because there will be typescript errors. + +In this case, you can tell `rmf-dashboard-framework` how to render your component with the `props` param. + +foo-app.ts + +```ts +createMicroApp( + 'example.foo', + 'Foo', + () => import('./foo'), + () => ({ message: 'hello' }), +); +``` + +### Integrating with RMF + +In most cases, you want your MicroApp to display some information from RMF, `rmf-dashboard-framework` provide hooks for you to do that. The most important hook is `useRmfApi`, this will return a `RmfApi` instance that you can use to interact with RMF. + +For example, this will create a component that display the current floor of the lift `main_lift`. + +foo.tsx + +```tsx +export const Foo = () => { + const [liftState, setLiftState] = React.useState(null); + const rmfApi = useRmfApi(); + + React.useEffect(() => { + rmfApi.getLiftStateObs('main_lift').subscribe(setLiftState); + }, [rmfApi]); + + return
{liftState?.current_floor || 'Unknown'}
; +}; +``` + +### MicroApps with Custom Toolbar + +When you create a MicroApp with `createMicroApp`, it will use a default toolbar, in some cases, you may want to expose some actions on the toolbar. The `Tasks` MicroApp is an example that uses the toolbar this way. Since "MicroApps" are really just react components that takes a subset of `Window` props, you can create a custom MicroApp with a custom toolbar by creating a similar component to `Window`. + +foo.tsx + +```tsx +export const Foo = ({ onClose, ...otherProps }: MicroAppProps) => { + const [liftState, setLiftState] = React.useState(null); + const rmfApi = useRmfApi(); + + React.useEffect(() => { + rmfApi.getLiftStateObs('main_lift').subscribe(setLiftState); + }, [rmfApi]); + + return ( + + + onClose && onClose()} /> + + } + {...otherProps} + > +
{liftState?.current_floor || 'Unknown'}
+
+ ); +}; +``` + +foo-app.tsx + +```tsx +const Foo = lazy(() => import('./foo')); + +export default { + appId: 'example.foo', + displayName: 'Foo', + Component: (props) => ( + + + + ), +} satisfies MicroAppManifest; +``` + +Keep in mind that when creating a custom MicroApp this way, it is not enforced via typescript that the component is loaded lazily but it is still highly recommended for you to do so. Also unlike MicroApps created with `createMicroApp`, the entire `Window` is lazy loaded, not just the contents, this means that while the MicroApp is loading, nothing would be rendered unless you provide a `fallback` to `Suspense`. diff --git a/packages/rmf-dashboard-framework/src/components/tasks/tasks-window.tsx b/packages/rmf-dashboard-framework/src/components/tasks/tasks-window.tsx index ee068dc07..e44061ddd 100644 --- a/packages/rmf-dashboard-framework/src/components/tasks/tasks-window.tsx +++ b/packages/rmf-dashboard-framework/src/components/tasks/tasks-window.tsx @@ -1,11 +1,9 @@ -import CloseIcon from '@mui/icons-material/Close'; import DownloadIcon from '@mui/icons-material/Download'; import RefreshIcon from '@mui/icons-material/Refresh'; import { Box, Button, Grid, - IconButton, Menu, MenuItem, styled, @@ -22,7 +20,7 @@ import { useAppController } from '../../hooks/use-app-controller'; import { useRmfApi } from '../../hooks/use-rmf-api'; import { MicroAppProps } from '../../micro-apps'; import { AppEvents } from '../app-events'; -import { Window, WindowManagerStateContext, WindowToolbar } from '../window'; +import { Window, WindowCloseButton, WindowToolbar } from '../window'; import { TaskSchedule } from './task-schedule'; import { TaskSummary } from './task-summary'; import { @@ -296,8 +294,6 @@ export const TasksWindow = React.memo( setAutoRefresh(newSelectedTabIndex === TaskTablePanel.QueueTable); }; - const windowManagerState = React.useContext(WindowManagerStateContext); - return ( - {windowManagerState.designMode && ( - onClose && onClose()} - > - - - )} + onClose && onClose()} /> } {...otherProps} diff --git a/packages/rmf-dashboard-framework/src/components/window/index.ts b/packages/rmf-dashboard-framework/src/components/window/index.ts index c0278eb24..160aca78c 100644 --- a/packages/rmf-dashboard-framework/src/components/window/index.ts +++ b/packages/rmf-dashboard-framework/src/components/window/index.ts @@ -1,4 +1,5 @@ export * from './context'; export * from './window'; +export * from './window-close-button'; export * from './window-container'; export * from './window-toolbar'; diff --git a/packages/rmf-dashboard-framework/src/components/window/window-close-button.tsx b/packages/rmf-dashboard-framework/src/components/window/window-close-button.tsx new file mode 100644 index 000000000..19c62a101 --- /dev/null +++ b/packages/rmf-dashboard-framework/src/components/window/window-close-button.tsx @@ -0,0 +1,24 @@ +import CloseIcon from '@mui/icons-material/Close'; +import { IconButton, IconButtonProps } from '@mui/material'; +import React from 'react'; + +import { WindowManagerStateContext } from './context'; + +export const WindowCloseButton = ({ className, sx, ...otherProps }: IconButtonProps) => { + const windowManagerState = React.useContext(WindowManagerStateContext); + + return ( + windowManagerState.designMode && ( + + + + ) + ); +}; + +export default WindowCloseButton; diff --git a/packages/rmf-dashboard-framework/src/components/window/window.tsx b/packages/rmf-dashboard-framework/src/components/window/window.tsx index 0688b0f8b..e3dd6191f 100644 --- a/packages/rmf-dashboard-framework/src/components/window/window.tsx +++ b/packages/rmf-dashboard-framework/src/components/window/window.tsx @@ -1,10 +1,10 @@ import type {} from '@emotion/styled'; -import CloseIcon from '@mui/icons-material/Close'; -import { Box, IconButton, Paper, PaperProps, styled, useTheme } from '@mui/material'; +import { Box, Paper, PaperProps, styled, useTheme } from '@mui/material'; import React from 'react'; import { Layout } from 'react-grid-layout'; import { WindowManagerStateContext } from './context'; +import WindowCloseButton from './window-close-button'; import { WindowToolbar } from './window-toolbar'; export interface WindowProps extends PaperProps { @@ -57,16 +57,7 @@ export const Window = styled( toolbar ) : ( - {windowManagerState.designMode && ( - onClose && onClose()} - > - - - )} + onClose && onClose()} /> )} diff --git a/packages/rmf-dashboard-framework/src/micro-apps/tasks-app.ts b/packages/rmf-dashboard-framework/src/micro-apps/tasks-app.ts deleted file mode 100644 index e0290812a..000000000 --- a/packages/rmf-dashboard-framework/src/micro-apps/tasks-app.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { lazy } from 'react'; - -import { MicroAppManifest } from '.'; - -export default { - appId: 'tasks', - displayName: 'Tasks', - Component: lazy(() => import('../components/tasks/tasks-window')), -} satisfies MicroAppManifest; diff --git a/packages/rmf-dashboard-framework/src/micro-apps/tasks-app.tsx b/packages/rmf-dashboard-framework/src/micro-apps/tasks-app.tsx new file mode 100644 index 000000000..b25fb2303 --- /dev/null +++ b/packages/rmf-dashboard-framework/src/micro-apps/tasks-app.tsx @@ -0,0 +1,16 @@ +import { lazy } from 'react'; +import { Suspense } from 'react'; + +import { MicroAppManifest } from '.'; + +const TasksWindow = lazy(() => import('../components/tasks/tasks-window')); + +export default { + appId: 'tasks', + displayName: 'Tasks', + Component: (props) => ( + + + + ), +} satisfies MicroAppManifest; From 9eaadb7710e02787310cb26619ed613fe0c207c9 Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Tue, 3 Sep 2024 08:25:06 +0000 Subject: [PATCH 15/30] english Signed-off-by: Teo Koon Peng --- packages/rmf-dashboard-framework/docs/getting-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/rmf-dashboard-framework/docs/getting-started.md b/packages/rmf-dashboard-framework/docs/getting-started.md index 1522200fd..5ef1c1cb8 100644 --- a/packages/rmf-dashboard-framework/docs/getting-started.md +++ b/packages/rmf-dashboard-framework/docs/getting-started.md @@ -58,7 +58,7 @@ pnpm --filter basic-dashboard^... build ### Creating a Basic Dashboard -At this point, you should be able to follow the [demo dashboard example](../examples/demo/main.tsx). You may need to install additional deps if you want to use the same fonts and the demo. +At this point, you should be able to follow the [demo dashboard example](../examples/demo/main.tsx). You may need to install additional deps if you want to use the same fonts as the demo. ```bash pnpm add -w @fontsource/roboto From be889d9059f7999b06485931436c5fbd6be9e5b1 Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Wed, 4 Sep 2024 08:01:05 +0000 Subject: [PATCH 16/30] add updateSettings to props param Signed-off-by: Teo Koon Peng --- .../docs/micro-apps.md | 33 +++++++++++++++++++ .../src/micro-apps/index.tsx | 9 +++-- 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/packages/rmf-dashboard-framework/docs/micro-apps.md b/packages/rmf-dashboard-framework/docs/micro-apps.md index 131834c2a..07bb16a13 100644 --- a/packages/rmf-dashboard-framework/docs/micro-apps.md +++ b/packages/rmf-dashboard-framework/docs/micro-apps.md @@ -54,6 +54,39 @@ createMicroApp( ); ``` +### MicroApp Settings + +Your component may want to expose some settings for the user to change, you can do that with `rmf-dashboard-framework`'s `useSettings` and `useAppController` hooks. + +foo.tsx + +```tsx +export const Foo = () => { + const settings = useSettings(); + const fooSettings = settings.microAppSettings['example.foo']; + const { updateSettings } = useAppController(); // call `updateSettings` to save new settings. + + return
{fooSettings.message}
; +}; + +export default Foo; +``` + +An alternative is to use the `settings` and `updateSettings` params in the `props` callback. + +foo-app.ts + +```ts +createMicroApp( + 'example.foo', + 'Foo', + () => import('./foo'), + (settings, updateSettings) => ({ message: settings.microAppSettings['example.foo'].message }), +); +``` + +Using the hooks is the recommended approach as the gives you the most flexibility in how to manage the settings. + ### Integrating with RMF In most cases, you want your MicroApp to display some information from RMF, `rmf-dashboard-framework` provide hooks for you to do that. The most important hook is `useRmfApi`, this will return a `RmfApi` instance that you can use to interact with RMF. diff --git a/packages/rmf-dashboard-framework/src/micro-apps/index.tsx b/packages/rmf-dashboard-framework/src/micro-apps/index.tsx index 28d26498a..2ab25e8a1 100644 --- a/packages/rmf-dashboard-framework/src/micro-apps/index.tsx +++ b/packages/rmf-dashboard-framework/src/micro-apps/index.tsx @@ -1,4 +1,5 @@ import React, { Suspense } from 'react'; +import { useAppController } from 'rmf-dashboard-framework/hooks/use-app-controller'; import { Window, WindowProps } from '../components/window'; import { useSettings } from '../hooks/use-settings'; @@ -25,7 +26,10 @@ export function createMicroApp

( appId: string, displayName: string, loadComponent: () => Promise<{ default: React.ComponentType

}>, - props: (settings: Settings) => React.PropsWithoutRef

& React.Attributes, + props: ( + settings: Settings, + updateSettings: (settings: Settings) => void, + ) => React.PropsWithoutRef

& React.Attributes, ): MicroAppManifest { const LazyComponent = React.lazy(loadComponent); return { @@ -34,10 +38,11 @@ export function createMicroApp

( Component: React.forwardRef( ({ children, ...otherProps }: React.PropsWithChildren, ref) => { const settings = useSettings(); + const { updateSettings } = useAppController(); return ( - + {/* this contains the resize handle */} {children} From 0f4897d0621309b3bb09b65f9f67110026b4cf75 Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Thu, 5 Sep 2024 01:58:37 +0000 Subject: [PATCH 17/30] fix after rebase Signed-off-by: Teo Koon Peng --- .../src/components/tasks/utils.ts | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/packages/rmf-dashboard-framework/src/components/tasks/utils.ts b/packages/rmf-dashboard-framework/src/components/tasks/utils.ts index 2a16e4c3b..d9694b094 100644 --- a/packages/rmf-dashboard-framework/src/components/tasks/utils.ts +++ b/packages/rmf-dashboard-framework/src/components/tasks/utils.ts @@ -1,4 +1,9 @@ -import { PostScheduledTaskRequest, TaskRequest, TaskStateOutput as TaskState } from 'api-client'; +import { + PostScheduledTaskRequest, + Priority, + TaskRequest, + TaskStateOutput as TaskState, +} from 'api-client'; import { Schedule } from './create-task'; import { getTaskBookingLabelFromTaskState } from './task-booking-label-utils'; @@ -117,3 +122,26 @@ export const toApiSchedule = ( schedules: apiSchedules, }; }; + +export function createTaskPriority(prioritize: boolean): Priority { + return { type: 'binary', value: prioritize ? 1 : 0 }; +} + +// FIXME(ac): This method of parsing is crude, and will be fixed using schemas +// when we migrate to jsonforms. +export function parseTaskPriority(priority: Priority | null | undefined): boolean { + if (!priority) { + return false; + } + + if ( + typeof priority == 'object' && + 'type' in priority && + priority['type'] === 'binary' && + 'value' in priority && + typeof priority['value'] == 'number' + ) { + return (priority['value'] as number) > 0; + } + return false; +} From 3b4c1e9236bc52b2fb91d170c1c2575df5f1d939 Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Thu, 5 Sep 2024 02:36:44 +0000 Subject: [PATCH 18/30] simplify getting started setup Signed-off-by: Teo Koon Peng --- .../docs/getting-started.md | 31 ++++++++++--------- .../src/components/rmf-dashboard.tsx | 2 -- .../src/micro-apps/index.tsx | 4 +-- 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/packages/rmf-dashboard-framework/docs/getting-started.md b/packages/rmf-dashboard-framework/docs/getting-started.md index 5ef1c1cb8..9fbd4a3d0 100644 --- a/packages/rmf-dashboard-framework/docs/getting-started.md +++ b/packages/rmf-dashboard-framework/docs/getting-started.md @@ -5,8 +5,9 @@ Welcome to RMF Dashboard Framework! This tutorial will guide you through the ini ### Setup Prerequisites: -* pnpm -* Latest Nodejs LTS + +- pnpm +- Latest Nodejs LTS Follow https://pnpm.io/installation to install pnpm, you can then install nodejs using pnpm @@ -16,32 +17,29 @@ pnpm env use --global lts Clone this repo and install deps + + ```bash pnpm create vite -t react-ts basic-dashboard cd basic-dashboard -# TODO(koonpeng): install from npmjs after package is published. git clone --depth 1 https://github.com/open-rmf/rmf-web ``` -Add modify the following to resolve `rmf-dashboard-framework` as if it is installed from npmjs. -pnpm-workspace.yaml (create if not exist) -```yaml -packages: - - "." - - "rmf-web/**/*" -``` +Modify the following to resolve `rmf-dashboard-framework` as if it is installed from npmjs. package.json + ``` "dependencies": { ... - "rmf-dashboard-framework": "workspace:*" + "rmf-dashboard-framework": "rmf-web/packages/rmf-dashboard-framework" } ``` tsconfig.app.json + ``` "paths": { "rmf-dashboard-framework/*": ["./node_modules/rmf-dashboard-framework/src/*"] @@ -51,9 +49,13 @@ tsconfig.app.json Finally install and build the deps ```bash -# TODO(koonpeng): -w flag not needed after rmf-dashboard-framework is published -pnpm install --filter basic-dashboard... -pnpm --filter basic-dashboard^... build +# install and build rmf-dashboard-framework +cd rmf-web +pnpm install --filter=rmf-dashboard-framework... +pnpm --filter=rmf-dashboard-framework^... build +# install basic-dashboard deps +cd .. +pnpm install ``` ### Creating a Basic Dashboard @@ -69,6 +71,7 @@ pnpm add -w @fontsource/roboto Before starting the dev server, we need a rmf api server backend for the frontend to connect to. If you are targeting an existing deployment, change the `apiServerUrl` prop to connect to the correct url. If you do not have an existing server, you can start a local server with docker. + ```bash docker run \ --network host -it --rm \ diff --git a/packages/rmf-dashboard-framework/src/components/rmf-dashboard.tsx b/packages/rmf-dashboard-framework/src/components/rmf-dashboard.tsx index 974b88d3f..84fa896c4 100644 --- a/packages/rmf-dashboard-framework/src/components/rmf-dashboard.tsx +++ b/packages/rmf-dashboard-framework/src/components/rmf-dashboard.tsx @@ -32,8 +32,6 @@ import { DashboardThemes } from './theme'; const DefaultAlertDuration = 2000; -export interface DashboardHome {} - export interface DashboardTab { name: string; route: string; diff --git a/packages/rmf-dashboard-framework/src/micro-apps/index.tsx b/packages/rmf-dashboard-framework/src/micro-apps/index.tsx index 2ab25e8a1..b698c87f7 100644 --- a/packages/rmf-dashboard-framework/src/micro-apps/index.tsx +++ b/packages/rmf-dashboard-framework/src/micro-apps/index.tsx @@ -1,7 +1,7 @@ import React, { Suspense } from 'react'; -import { useAppController } from 'rmf-dashboard-framework/hooks/use-app-controller'; import { Window, WindowProps } from '../components/window'; +import { useAppController } from '../hooks/use-app-controller'; import { useSettings } from '../hooks/use-settings'; import { Settings } from '../services/settings'; @@ -15,7 +15,7 @@ export interface MicroAppManifest { /** * Creates a micro app from a component. The component must be loaded using dynamic import. - * Note that the map should be created in a different module than the component. + * Note that the micro app should be created in a different module than the component. * * Example: * ```ts From 2ff9f39aee98360e07881700a8075c3280454117 Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Thu, 19 Sep 2024 08:30:00 +0000 Subject: [PATCH 19/30] update README Signed-off-by: Teo Koon Peng --- packages/rmf-dashboard-framework/README.md | 102 +++++++-------------- 1 file changed, 34 insertions(+), 68 deletions(-) diff --git a/packages/rmf-dashboard-framework/README.md b/packages/rmf-dashboard-framework/README.md index faf8ff62a..9df1146c7 100644 --- a/packages/rmf-dashboard-framework/README.md +++ b/packages/rmf-dashboard-framework/README.md @@ -1,48 +1,16 @@ -# rmf-dashboard +# rmf-dashboard-framework -`rmf-dashboard` is a web application that provides overall visualization and control over the RMF system. +`rmf-dashboard-framework` is a library that makes it easy to build a web application that provides visualization and control over the RMF system. -# Setup +## Getting Started -Follow the build instructions [here](../../README.md/#launching). +See the [Getting Started](./docs/getting-started.md) docs. -## Configuration +## MicroApps -Before building the dashboard, you must configure it according to the deployment. All the configurations is on `app-config.json`, the default configuration is for running the api-server and dashboard locally. You may check [src/app-config.ts](src/app-config.ts) for more details on the config file schema. +MicroApps are react components that can be used to build a page. The dashboard comes with many different micro-apps, each serving a different purpose when interacting with an Open-RMF deployment. The dashboard uses events to pipe information between micro-apps, for example clicking onto a task row in the Task app, will center the map onto the robot that the task was assigned to. -### (Optional) Add external resources. - -The `resources` option in the app config allows configuring various assets used by the dashboard. At the moment, it mainly allows configuring the header logo and robot icons, they should point to either the full url or absolute url, for example - -```json - "resources": { - "default": { - "fleets": { - "tinyRobot": { - "default": { - "icon": "https://raw.githubusercontent.com/open-rmf/rmf_demos/rmf-web-dashboard-resources/rmf_demos_dashboard_resources/office/icons/tinyRobot.png", - "scale": 0.00123 - } - } - }, - "logos": { - "header": "/resources/defaultLogo.png" - } - } - }, -``` - -In the above config, the header logo will be on absolute url `/resources/defaultLogo.png`, if the resources are hosted on a different domain (e.g. you are using a cdn), then it should include the full url, e.g. `https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]`. - -For testing, it is convenient to put the resources in the `public` folder and they will be served by the vite dev server. - -For dashboard resources for `rmf_demos` simulation worlds, check out the [rmf-web-dashboard-resources](https://github.com/open-rmf/rmf_demos/tree/rmf-web-dashboard-resources) branch of `rmf_demos`. - -### Micro-apps - -The dashboard comes with many different micro-apps, each serving a different purpose when interacting with an Open-RMF deployment. The dashboard uses events to pipe information between micro-apps, for example clicking onto a task row in the Task app, will center the map onto the robot that the task was assigned to. - -Here are the available apps, +Some of the built in MicroApps are: * Robots * Map * Doors @@ -54,39 +22,37 @@ Here are the available apps, * Task Details * Task Logs -### Workspace (tab) layouts +It is also possible to create new MicroApps, see [Creating a MicroApp](./docs/micro-apps.md#creating-a-microapp) for some examples. -Each workspace (tab) allows users to define how the layout of micro-apps should be. By modifying the `WorkspaceState` of the workspace, micro-apps can be resized, moved, added or removed. +## Workspaces -Here is an example workspace state, +A `Workspace` is a react component that render MicroApps based on a given layout, it makes it very easy to build a page in `rmf-dashboard-framework` by combining multiple MicroApps. Here is an example of a workspace -```typescript -export const robotsWorkspace: WorkspaceState = { - layout: [ - { i: 'robots', x: 0, y: 0, w: 7, h: 3 }, - { i: 'map', x: 8, y: 0, w: 5, h: 9 }, - { i: 'doors', x: 0, y: 0, w: 7, h: 3 }, - { i: 'lifts', x: 0, y: 0, w: 7, h: 3 }, - { i: 'beacons', x: 0, y: 0, w: 7, h: 3 }, - { i: 'mutexGroups', x: 8, y: 0, w: 5, h: 3 }, - ], - windows: [ - { key: 'robots', appName: 'Robots' }, - { key: 'map', appName: 'Map' }, - { key: 'doors', appName: 'Doors' }, - { key: 'lifts', appName: 'Lifts' }, - { key: 'beacons', appName: 'Beacons' }, - { key: 'mutexGroups', appName: 'Mutex Groups' }, - ], -}; +```tsx + ``` -### Custom tab(s) - -With the dashboard configuration parameter `customTabs: true`, 2 custom tabs would be available on the App bar. These custom tabs allow users to create a custom layout of desired micro-apps, if a custom workflow is desired. - -These custom layouts will be cached locally on the browser's machine, where it can be brought up again. +The above workspace renders a "Tasks" and "Map" MicroApp with a fixed layout, but it supports a `designMode` that allows free customizable of the layout by the user at runtime + +```tsx + +``` -To edit a custom tab, click onto the wand icon on the right end of the App bar, and proceed to add, resize, move or remove micro-apps from the layout. +## Examples -![](https://github.com/open-rmf/rmf-web/blob/media/custom-tabs.gif) +See [examples](./examples/) From 97f5914b5a603cef2de4ba6822e16f28907c86bd Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Thu, 19 Sep 2024 08:38:49 +0000 Subject: [PATCH 20/30] update README Signed-off-by: Teo Koon Peng --- README.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 2174140d9..f08401a78 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Nightly](https://github.com/open-rmf/rmf-web/actions/workflows/nightly.yml/badge.svg)](https://github.com/open-rmf/rmf-web/actions/workflows/nightly.yml) [![Dashboard End-to-End](https://github.com/open-rmf/rmf-web/actions/workflows/dashboard-e2e.yml/badge.svg)](https://github.com/open-rmf/rmf-web/actions/workflows/dashboard-e2e.yml) [![react-components](https://github.com/open-rmf/rmf-web/workflows/react-components/badge.svg)](https://github.com/open-rmf/rmf-web/actions?query=workflow%3Areact-components+branch%3Amain) [![dashboard](https://github.com/open-rmf/rmf-web/workflows/dashboard/badge.svg)](https://github.com/open-rmf/rmf-web/actions?query=workflow%3Adashboard+branch%3Amain) [![api-server](https://github.com/open-rmf/rmf-web/workflows/api-server/badge.svg)](https://github.com/open-rmf/rmf-web/actions?query=workflow%3Aapi-server+branch%3Amain) [![ros-translator](https://github.com/open-rmf/rmf-web/actions/workflows/ros-translator.yml/badge.svg)](https://github.com/open-rmf/rmf-web/actions/workflows/ros-translator.yml) [![api-client](https://github.com/open-rmf/rmf-web/actions/workflows/api-client.yml/badge.svg)](https://github.com/open-rmf/rmf-web/actions/workflows/api-client.yml) [![codecov](https://codecov.io/gh/open-rmf/rmf-web/branch/main/graph/badge.svg)](https://codecov.io/gh/open-rmf/rmf-web) +[![Nightly](https://github.com/open-rmf/rmf-web/actions/workflows/nightly.yml/badge.svg)](https://github.com/open-rmf/rmf-web/actions/workflows/nightly.yml) [![Dashboard End-to-End](https://github.com/open-rmf/rmf-web/actions/workflows/dashboard-e2e.yml/badge.svg)](https://github.com/open-rmf/rmf-web/actions/workflows/dashboard-e2e.yml) [![react-components](https://github.com/open-rmf/rmf-web/workflows/react-components/badge.svg)](https://github.com/open-rmf/rmf-web/actions?query=workflow%3Areact-components+branch%3Amain) [![rmf-dashboard-framework](https://github.com/open-rmf/rmf-web/actions/workflows/rmf-dashboard-framework.yml/badge.svg)](https://github.com/open-rmf/rmf-web/actions/workflows/rmf-dashboard-framework.yml) [![api-server](https://github.com/open-rmf/rmf-web/workflows/api-server/badge.svg)](https://github.com/open-rmf/rmf-web/actions?query=workflow%3Aapi-server+branch%3Amain) [![ros-translator](https://github.com/open-rmf/rmf-web/actions/workflows/ros-translator.yml/badge.svg)](https://github.com/open-rmf/rmf-web/actions/workflows/ros-translator.yml) [![api-client](https://github.com/open-rmf/rmf-web/actions/workflows/api-client.yml/badge.svg)](https://github.com/open-rmf/rmf-web/actions/workflows/api-client.yml) [![codecov](https://codecov.io/gh/open-rmf/rmf-web/branch/main/graph/badge.svg)](https://codecov.io/gh/open-rmf/rmf-web) # RMF Web @@ -10,7 +10,7 @@ Open-RMF Web is a collection of packages that provide a web-based interface for - [Getting started from source](#getting-started-from-source) - [API server](packages/api-server) - [API client](packages/api-client) -- [Dashboard](packages/dashboard) +- [RMF Dashboard Framework](packages/rmf-dashboard-framework) - [Configuration](#configuration) - [Contribution guide](#contribution-guide) - [Roadmap](https://github.com/orgs/open-rmf/projects/10) @@ -19,14 +19,14 @@ Open-RMF Web is a collection of packages that provide a web-based interface for These docker images are useful when trying out [`rmf_demos`](https://github.com/open-rmf/rmf_demos). -Start the dashboard with host network access, `RMF_SERVER_URL` and `TRAJECTORY_SERVER_URL` configured accordingly. The dashboard will then accessible on `localhost:3000` by default. +Start the demo dashboard with host network access, `RMF_SERVER_URL` and `TRAJECTORY_SERVER_URL` configured accordingly. The demo dashboard will then accessible on `localhost:3000` by default. ```bash docker run \ --network host -it --rm \ -e RMF_SERVER_URL=http://localhost:8000 \ -e TRAJECTORY_SERVER_URL=ws://localhost:8006 \ - ghcr.io/open-rmf/rmf-web/dashboard:latest + ghcr.io/open-rmf/rmf-web/demo-dashboard:latest ``` > **Note** @@ -49,7 +49,7 @@ docker run \ ### Prerequisites -We currently support [Ubuntu 24.04](https://releases.ubuntu.com/noble/), [ROS 2 Jazzy](https://docs.ros.org/en/jazzy/index.html) and Open-RMF's [22.09](https://github.com/open-rmf/rmf/releases/tag/22.09) release. Other distributions may work as well, but is not guaranteed. +We currently support [Ubuntu 24.04](https://releases.ubuntu.com/noble/), [ROS 2 Jazzy](https://docs.ros.org/en/jazzy/index.html) and the latest Open-RMF release. Other distributions may work as well, but is not guaranteed. Install pnpm and nodejs @@ -89,7 +89,7 @@ pnpm install -w --filter ... ### Launching for development -Source Open-RMF and launch the dashboard in development mode, +Source Open-RMF and launch the demo dashboard in development mode, ```bash # For binary installation @@ -102,7 +102,7 @@ cd packages/rmf-dashboard-framework pnpm start ``` -This starts up the API server (by default at port 8000) which sets up endpoints to communicate with an Open-RMF deployment, as well as begin compilation of the dashboard. Once completed, it can be viewed at [localhost:3000](http://localhost:3000). +This starts up the API server (by default at port 8000) which sets up endpoints to communicate with an Open-RMF deployment, as well as begin compilation of the demo dashboard. Once completed, it can be viewed at [localhost:5173](http://localhost:5173). If presented with a login screen, use `user=admin password=admin`. @@ -131,7 +131,7 @@ pnpm start - For general contribution guidelines, see [CONTRIBUTING](CONTRIBUTING.md). - Follow [typescript guidelines](https://basarat.gitbook.io/typescript/styleguide). - When introducing a new feature or component in [`react-components`](packages/react-components), write tests and stories. -- When introducing a new feature in [`dashboard`](packages/dashboard), write tests as well as [e2e](packages/dashboard-e2e) test whenever possible. +- When introducing a new feature in [`rmf-dashboard-framework`](packages/rmf-dashboard-framework), write tests as well as [e2e](packages/dashboard-e2e) test whenever possible. - When introducing API changes with [`api-server`](packages/api-server), - If the new changes are to be used externally (outside of the web packages, with other Open-RMF packages for example), make changes to [`rmf_api_msgs`](https://github.com/open-rmf/rmf_api_msgs), before generating the required models using [this script](packages/api-server/generate-models.sh) with modified commit hashes. - Don't forget to update the API client with the newly added changes with [these instructions](packages/api-client/README.md/#generating-rest-api-client). @@ -142,7 +142,6 @@ pnpm start # Configuration -- See the [rmf-dashboard](packages/dashboard/README.md#configuration) docs for the frontend build-time and run-time configurations. - See the [api-server](packages/api-server/README.md#configuration) docs for API server run-time configurations. # Troubleshooting From 09bc73b363f727fe24c8b487cc0f9574b3ff444b Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Wed, 25 Sep 2024 09:05:25 +0000 Subject: [PATCH 21/30] update storybook Signed-off-by: Teo Koon Peng --- packages/rmf-dashboard-framework/package.json | 18 +- pnpm-lock.yaml | 11958 ++++++---------- 2 files changed, 4398 insertions(+), 7578 deletions(-) diff --git a/packages/rmf-dashboard-framework/package.json b/packages/rmf-dashboard-framework/package.json index 21f11e4e1..6545dd697 100644 --- a/packages/rmf-dashboard-framework/package.json +++ b/packages/rmf-dashboard-framework/package.json @@ -68,14 +68,14 @@ }, "devDependencies": { "@babel/core": "^7.18.6", - "@storybook/addon-essentials": "^8.0.5", - "@storybook/addon-interactions": "^8.0.5", - "@storybook/addon-links": "^8.0.5", - "@storybook/addon-onboarding": "^8.0.5", - "@storybook/blocks": "^8.0.5", - "@storybook/react": "^8.0.5", - "@storybook/react-vite": "^8.2.6", - "@storybook/test": "^8.0.5", + "@storybook/addon-essentials": "^8.3.3", + "@storybook/addon-interactions": "^8.3.3", + "@storybook/addon-links": "^8.3.3", + "@storybook/addon-onboarding": "^8.3.3", + "@storybook/blocks": "^8.3.3", + "@storybook/react": "^8.3.3", + "@storybook/react-vite": "^8.3.3", + "@storybook/test": "^8.3.3", "@testing-library/dom": "^9.3.4", "@testing-library/react": "^14.2.2", "@testing-library/user-event": "^14.5.2", @@ -86,7 +86,7 @@ "eslint": "^8.57.0", "history": "^5.3.0", "jsdom": "^24.1.1", - "storybook": "^8.0.5", + "storybook": "^8.3.3", "typescript": "~5.5.4", "typescript-json-schema": "^0.64.0", "vite": "^5.3.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8dd5d2fa9..e26c1bf9f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -265,29 +265,29 @@ importers: specifier: ^7.18.6 version: 7.25.2 '@storybook/addon-essentials': - specifier: ^8.0.5 - version: 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) + specifier: ^8.3.3 + version: 8.3.3(storybook@8.3.3) '@storybook/addon-interactions': - specifier: ^8.0.5 - version: 8.2.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)))(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))(vitest@2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6)) + specifier: ^8.3.3 + version: 8.3.3(storybook@8.3.3) '@storybook/addon-links': - specifier: ^8.0.5 - version: 8.2.2(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) + specifier: ^8.3.3 + version: 8.3.3(react@18.3.1)(storybook@8.3.3) '@storybook/addon-onboarding': - specifier: ^8.0.5 - version: 8.2.2(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) + specifier: ^8.3.3 + version: 8.3.3(react@18.3.1)(storybook@8.3.3) '@storybook/blocks': - specifier: ^8.0.5 - version: 8.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) + specifier: ^8.3.3 + version: 8.3.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.3) '@storybook/react': - specifier: ^8.0.5 - version: 8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))(typescript@5.5.4) + specifier: ^8.3.3 + version: 8.3.3(@storybook/test@8.3.3(storybook@8.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.3)(typescript@5.5.4) '@storybook/react-vite': - specifier: ^8.2.6 - version: 8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.19.0)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))(typescript@5.5.4)(vite@5.3.5(@types/node@22.2.0)(terser@5.31.6)) + specifier: ^8.3.3 + version: 8.3.3(@storybook/test@8.3.3(storybook@8.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.19.0)(storybook@8.3.3)(typescript@5.5.4)(vite@5.3.5(@types/node@22.2.0)(terser@5.31.6)) '@storybook/test': - specifier: ^8.0.5 - version: 8.2.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)))(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))(vitest@2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6)) + specifier: ^8.3.3 + version: 8.3.3(storybook@8.3.3) '@testing-library/dom': specifier: ^9.3.4 version: 9.3.4 @@ -319,8 +319,8 @@ importers: specifier: ^24.1.1 version: 24.1.1(canvas@2.11.2) storybook: - specifier: ^8.0.5 - version: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) + specifier: ^8.3.3 + version: 8.3.3 typescript: specifier: ~5.5.4 version: 5.5.4 @@ -410,14 +410,6 @@ packages: resolution: {integrity: sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==} engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.24.7': - resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7': - resolution: {integrity: sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==} - engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.24.8': resolution: {integrity: sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==} engines: {node: '>=6.9.0'} @@ -426,23 +418,6 @@ packages: resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.24.8': - resolution: {integrity: sha512-4f6Oqnmyp2PP3olgUMmOwC3akxSm5aBYraQ6YDdKy7NcAMkDECHWG0DEnV6M2UAkERgIBhYt8S27rURPg7SxWA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-create-regexp-features-plugin@7.24.7': - resolution: {integrity: sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-define-polyfill-provider@0.6.2': - resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - '@babel/helper-environment-visitor@7.24.7': resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} engines: {node: '>=6.9.0'} @@ -455,10 +430,6 @@ packages: resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.24.8': - resolution: {integrity: sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==} - engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.24.7': resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} @@ -475,34 +446,10 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-optimise-call-expression@7.24.7': - resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} - engines: {node: '>=6.9.0'} - - '@babel/helper-plugin-utils@7.24.8': - resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-remap-async-to-generator@7.24.7': - resolution: {integrity: sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-replace-supers@7.24.7': - resolution: {integrity: sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-simple-access@7.24.7': resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} - '@babel/helper-skip-transparent-expression-wrappers@7.24.7': - resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==} - engines: {node: '>=6.9.0'} - '@babel/helper-split-export-declaration@7.24.7': resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} engines: {node: '>=6.9.0'} @@ -519,10 +466,6 @@ packages: resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} engines: {node: '>=6.9.0'} - '@babel/helper-wrap-function@7.24.7': - resolution: {integrity: sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==} - engines: {node: '>=6.9.0'} - '@babel/helpers@7.24.8': resolution: {integrity: sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==} engines: {node: '>=6.9.0'} @@ -545,7580 +488,5680 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.7': - resolution: {integrity: sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==} + '@babel/runtime-corejs3@7.24.8': + resolution: {integrity: sha512-DXG/BhegtMHhnN7YPIvxWd303/9aXvYFD1TjNL3CD6tUrhI2LVsg3Lck0aql5TRH29n4sj3emcROypkZVUfSuA==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.7': - resolution: {integrity: sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==} + '@babel/runtime@7.24.8': + resolution: {integrity: sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7': - resolution: {integrity: sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==} + '@babel/template@7.24.7': + resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.13.0 - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.7': - resolution: {integrity: sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg==} + '@babel/template@7.25.0': + resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': - resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + '@babel/traverse@7.24.8': + resolution: {integrity: sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-async-generators@7.8.4': - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-bigint@7.8.3': - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-class-properties@7.12.13': - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-class-static-block@7.14.5': - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + '@babel/traverse@7.25.3': + resolution: {integrity: sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-dynamic-import@7.8.3': - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-export-namespace-from@7.8.3': - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-flow@7.24.7': - resolution: {integrity: sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw==} + '@babel/types@7.24.8': + resolution: {integrity: sha512-SkSBEHwwJRU52QEVZBmMBnE5Ux2/6WU1grdYyOhpbCNxbmJrDuDCphBzKZSO3taf0zztp+qkWlymE5tVL5l0TA==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-assertions@7.24.7': - resolution: {integrity: sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==} + '@babel/types@7.25.2': + resolution: {integrity: sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-attributes@7.24.7': - resolution: {integrity: sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@base2/pretty-print-object@1.0.1': + resolution: {integrity: sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==} - '@babel/plugin-syntax-import-meta@7.10.4': - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@bcoe/v8-coverage@0.2.3': + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - '@babel/plugin-syntax-json-strings@7.8.3': - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@cspotcode/source-map-support@0.8.1': + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} - '@babel/plugin-syntax-jsx@7.24.7': - resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/babel-plugin@11.12.0': + resolution: {integrity: sha512-y2WQb+oP8Jqvvclh8Q55gLUyb7UFvgv7eJfsj7td5TToBrIUtPay2kMrZi4xjq9qw2vD0ZR5fSho0yqoFgX7Rw==} - '@babel/plugin-syntax-logical-assignment-operators@7.10.4': - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/cache@11.13.1': + resolution: {integrity: sha512-iqouYkuEblRcXmylXIwwOodiEK5Ifl7JcX7o6V4jI3iW4mLXX3dmt5xwBtIkJiQEXFAI+pC8X0i67yiPkH9Ucw==} - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/hash@0.9.2': + resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} - '@babel/plugin-syntax-numeric-separator@7.10.4': - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/is-prop-valid@1.3.0': + resolution: {integrity: sha512-SHetuSLvJDzuNbOdtPVbq6yMMMlLoW5Q94uDqJZqy50gcmAjxFkVqmzqSGEFq9gT2iMuIeKV1PXVWmvUhuZLlQ==} - '@babel/plugin-syntax-object-rest-spread@7.8.3': - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/memoize@0.9.0': + resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} - '@babel/plugin-syntax-optional-catch-binding@7.8.3': - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + '@emotion/react@11.13.0': + resolution: {integrity: sha512-WkL+bw1REC2VNV1goQyfxjx1GYJkcc23CRQkXX+vZNLINyfI7o+uUn/rTGPt/xJ3bJHd5GcljgnxHf4wRw5VWQ==} peerDependencies: - '@babel/core': ^7.0.0-0 + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true - '@babel/plugin-syntax-optional-chaining@7.8.3': - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/serialize@1.3.0': + resolution: {integrity: sha512-jACuBa9SlYajnpIVXB+XOXnfJHyckDfe6fOpORIM6yhBDlqGuExvDdZYHDQGoDf3bZXGv7tNr+LpLjJqiEQ6EA==} - '@babel/plugin-syntax-private-property-in-object@7.14.5': - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/sheet@1.4.0': + resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==} - '@babel/plugin-syntax-top-level-await@7.14.5': - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} + '@emotion/styled@11.13.0': + resolution: {integrity: sha512-tkzkY7nQhW/zC4hztlwucpT8QEZ6eUzpXDRhww/Eej4tFfO0FxQYWRyg/c5CCXa4d/f174kqeXYjuQRnhzf6dA==} peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/react': ^11.0.0-rc.0 + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true - '@babel/plugin-syntax-typescript@7.24.7': - resolution: {integrity: sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/unitless@0.9.0': + resolution: {integrity: sha512-TP6GgNZtmtFaFcsOgExdnfxLLpRDla4Q66tnenA9CktvVSdNKDvMVuUah4QvWPIpNjrWsGg3qeGo9a43QooGZQ==} - '@babel/plugin-syntax-unicode-sets-regex@7.18.6': - resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} - engines: {node: '>=6.9.0'} + '@emotion/use-insertion-effect-with-fallbacks@1.1.0': + resolution: {integrity: sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==} peerDependencies: - '@babel/core': ^7.0.0 + react: '>=16.8.0' - '@babel/plugin-transform-arrow-functions@7.24.7': - resolution: {integrity: sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/utils@1.4.0': + resolution: {integrity: sha512-spEnrA1b6hDR/C68lC2M7m6ALPUHZC0lIY7jAS/B/9DuuO1ZP04eov8SMv/6fwRd8pzmsn2AuJEznRREWlQrlQ==} - '@babel/plugin-transform-async-generator-functions@7.24.7': - resolution: {integrity: sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/weak-memoize@0.4.0': + resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} - '@babel/plugin-transform-async-to-generator@7.24.7': - resolution: {integrity: sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] - '@babel/plugin-transform-block-scoped-functions@7.24.7': - resolution: {integrity: sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] - '@babel/plugin-transform-block-scoping@7.24.7': - resolution: {integrity: sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] - '@babel/plugin-transform-class-properties@7.24.7': - resolution: {integrity: sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] - '@babel/plugin-transform-class-static-block@7.24.7': - resolution: {integrity: sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.12.0 + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] - '@babel/plugin-transform-classes@7.24.8': - resolution: {integrity: sha512-VXy91c47uujj758ud9wx+OMgheXm4qJfyhj1P18YvlrQkNOSrwsteHk+EFS3OMGfhMhpZa0A+81eE7G4QC+3CA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] - '@babel/plugin-transform-computed-properties@7.24.7': - resolution: {integrity: sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] - '@babel/plugin-transform-destructuring@7.24.8': - resolution: {integrity: sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] - '@babel/plugin-transform-dotall-regex@7.24.7': - resolution: {integrity: sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] - '@babel/plugin-transform-duplicate-keys@7.24.7': - resolution: {integrity: sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] - '@babel/plugin-transform-dynamic-import@7.24.7': - resolution: {integrity: sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] - '@babel/plugin-transform-exponentiation-operator@7.24.7': - resolution: {integrity: sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] - '@babel/plugin-transform-export-namespace-from@7.24.7': - resolution: {integrity: sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] - '@babel/plugin-transform-flow-strip-types@7.24.7': - resolution: {integrity: sha512-cjRKJ7FobOH2eakx7Ja+KpJRj8+y+/SiB3ooYm/n2UJfxu0oEaOoxOinitkJcPqv9KxS0kxTGPUaR7L2XcXDXA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] - '@babel/plugin-transform-for-of@7.24.7': - resolution: {integrity: sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] - '@babel/plugin-transform-function-name@7.24.7': - resolution: {integrity: sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] - '@babel/plugin-transform-json-strings@7.24.7': - resolution: {integrity: sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] - '@babel/plugin-transform-literals@7.24.7': - resolution: {integrity: sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-logical-assignment-operators@7.24.7': - resolution: {integrity: sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] - '@babel/plugin-transform-member-expression-literals@7.24.7': - resolution: {integrity: sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] - '@babel/plugin-transform-modules-amd@7.24.7': - resolution: {integrity: sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] - '@babel/plugin-transform-modules-commonjs@7.24.8': - resolution: {integrity: sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] - '@babel/plugin-transform-modules-systemjs@7.24.7': - resolution: {integrity: sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] - '@babel/plugin-transform-modules-umd@7.24.7': - resolution: {integrity: sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] - '@babel/plugin-transform-named-capturing-groups-regex@7.24.7': - resolution: {integrity: sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==} - engines: {node: '>=6.9.0'} + '@eslint-community/eslint-utils@4.4.0': + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - '@babel/core': ^7.0.0 + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@babel/plugin-transform-new-target@7.24.7': - resolution: {integrity: sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@eslint-community/regexpp@4.11.0': + resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@babel/plugin-transform-nullish-coalescing-operator@7.24.7': - resolution: {integrity: sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@eslint/eslintrc@2.1.4': + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@babel/plugin-transform-numeric-separator@7.24.7': - resolution: {integrity: sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@eslint/js@8.57.0': + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@babel/plugin-transform-object-rest-spread@7.24.7': - resolution: {integrity: sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@floating-ui/core@1.6.4': + resolution: {integrity: sha512-a4IowK4QkXl4SCWTGUR0INAfEOX3wtsYw3rKK5InQEHMGObkR8Xk44qYQD9P4r6HHw0iIfK6GUKECmY8sTkqRA==} - '@babel/plugin-transform-object-super@7.24.7': - resolution: {integrity: sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@floating-ui/dom@1.6.7': + resolution: {integrity: sha512-wmVfPG5o2xnKDU4jx/m4w5qva9FWHcnZ8BvzEe90D/RpwsJaTAVYPEPdQ8sbr/N8zZTAHlZUTQdqg8ZUbzHmng==} - '@babel/plugin-transform-optional-catch-binding@7.24.7': - resolution: {integrity: sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==} - engines: {node: '>=6.9.0'} + '@floating-ui/react-dom@2.1.1': + resolution: {integrity: sha512-4h84MJt3CHrtG18mGsXuLCHMrug49d7DFkU0RMIyshRveBeyV2hmV/pDaF2Uxtu8kgq5r46llp5E5FQiR0K2Yg==} peerDependencies: - '@babel/core': ^7.0.0-0 + react: '>=16.8.0' + react-dom: '>=16.8.0' - '@babel/plugin-transform-optional-chaining@7.24.8': - resolution: {integrity: sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@floating-ui/utils@0.2.4': + resolution: {integrity: sha512-dWO2pw8hhi+WrXq1YJy2yCuWoL20PddgGaqTgVe4cOS9Q6qklXCiA1tJEqX6BEwRNSCP84/afac9hd4MS+zEUA==} - '@babel/plugin-transform-parameters@7.24.7': - resolution: {integrity: sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@fontsource/roboto@4.5.8': + resolution: {integrity: sha512-CnD7zLItIzt86q4Sj3kZUiLcBk1dSk81qcqgMGaZe7SQ1P8hFNxhMl5AZthK1zrDM5m74VVhaOpuMGIL4gagaA==} - '@babel/plugin-transform-private-methods@7.24.7': - resolution: {integrity: sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@humanwhocodes/config-array@0.11.14': + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead - '@babel/plugin-transform-private-property-in-object@7.24.7': - resolution: {integrity: sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} - '@babel/plugin-transform-property-literals@7.24.7': - resolution: {integrity: sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@humanwhocodes/object-schema@2.0.3': + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead - '@babel/plugin-transform-regenerator@7.24.7': - resolution: {integrity: sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} - '@babel/plugin-transform-reserved-words@7.24.7': - resolution: {integrity: sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@istanbuljs/schema@0.1.3': + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} - '@babel/plugin-transform-shorthand-properties@7.24.7': - resolution: {integrity: sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@jest/expect-utils@28.1.3': + resolution: {integrity: sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - '@babel/plugin-transform-spread@7.24.7': - resolution: {integrity: sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@jest/schemas@28.1.3': + resolution: {integrity: sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - '@babel/plugin-transform-sticky-regex@7.24.7': - resolution: {integrity: sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@jest/types@28.1.3': + resolution: {integrity: sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - '@babel/plugin-transform-template-literals@7.24.7': - resolution: {integrity: sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==} - engines: {node: '>=6.9.0'} + '@jimp/bmp@0.16.13': + resolution: {integrity: sha512-9edAxu7N2FX7vzkdl5Jo1BbACfycUtBQX+XBMcHA2bk62P8R0otgkHg798frgAk/WxQIzwxqOH6wMiCwrlAzdQ==} peerDependencies: - '@babel/core': ^7.0.0-0 + '@jimp/custom': '>=0.3.5' - '@babel/plugin-transform-typeof-symbol@7.24.8': - resolution: {integrity: sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@jimp/core@0.16.13': + resolution: {integrity: sha512-qXpA1tzTnlkTku9yqtuRtS/wVntvE6f3m3GNxdTdtmc+O+Wcg9Xo2ABPMh7Nc0AHbMKzwvwgB2JnjZmlmJEObg==} - '@babel/plugin-transform-typescript@7.24.8': - resolution: {integrity: sha512-CgFgtN61BbdOGCP4fLaAMOPkzWUh6yQZNMr5YSt8uz2cZSSiQONCQFWqsE4NeVfOIhqDOlS9CR3WD91FzMeB2Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@jimp/custom@0.16.13': + resolution: {integrity: sha512-LTATglVUPGkPf15zX1wTMlZ0+AU7cGEGF6ekVF1crA8eHUWsGjrYTB+Ht4E3HTrCok8weQG+K01rJndCp/l4XA==} - '@babel/plugin-transform-unicode-escapes@7.24.7': - resolution: {integrity: sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==} - engines: {node: '>=6.9.0'} + '@jimp/gif@0.16.13': + resolution: {integrity: sha512-yFAMZGv3o+YcjXilMWWwS/bv1iSqykFahFMSO169uVMtfQVfa90kt4/kDwrXNR6Q9i6VHpFiGZMlF2UnHClBvg==} peerDependencies: - '@babel/core': ^7.0.0-0 + '@jimp/custom': '>=0.3.5' - '@babel/plugin-transform-unicode-property-regex@7.24.7': - resolution: {integrity: sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==} - engines: {node: '>=6.9.0'} + '@jimp/jpeg@0.16.13': + resolution: {integrity: sha512-BJHlDxzTlCqP2ThqP8J0eDrbBfod7npWCbJAcfkKqdQuFk0zBPaZ6KKaQKyKxmWJ87Z6ohANZoMKEbtvrwz1AA==} peerDependencies: - '@babel/core': ^7.0.0-0 + '@jimp/custom': '>=0.3.5' - '@babel/plugin-transform-unicode-regex@7.24.7': - resolution: {integrity: sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==} - engines: {node: '>=6.9.0'} + '@jimp/plugin-resize@0.16.13': + resolution: {integrity: sha512-qoqtN8LDknm3fJm9nuPygJv30O3vGhSBD2TxrsCnhtOsxKAqVPJtFVdGd/qVuZ8nqQANQmTlfqTiK9mVWQ7MiQ==} peerDependencies: - '@babel/core': ^7.0.0-0 + '@jimp/custom': '>=0.3.5' - '@babel/plugin-transform-unicode-sets-regex@7.24.7': - resolution: {integrity: sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==} - engines: {node: '>=6.9.0'} + '@jimp/png@0.16.13': + resolution: {integrity: sha512-8cGqINvbWJf1G0Her9zbq9I80roEX0A+U45xFby3tDWfzn+Zz8XKDF1Nv9VUwVx0N3zpcG1RPs9hfheG4Cq2kg==} peerDependencies: - '@babel/core': ^7.0.0 + '@jimp/custom': '>=0.3.5' - '@babel/preset-env@7.24.8': - resolution: {integrity: sha512-vObvMZB6hNWuDxhSaEPTKCwcqkAIuDtE+bQGn4XMXne1DSLzFVY8Vmj1bm+mUQXYNN8NmaQEO+r8MMbzPr1jBQ==} - engines: {node: '>=6.9.0'} + '@jimp/tiff@0.16.13': + resolution: {integrity: sha512-oJY8d9u95SwW00VPHuCNxPap6Q1+E/xM5QThb9Hu+P6EGuu6lIeLaNBMmFZyblwFbwrH+WBOZlvIzDhi4Dm/6Q==} peerDependencies: - '@babel/core': ^7.0.0-0 + '@jimp/custom': '>=0.3.5' - '@babel/preset-flow@7.24.7': - resolution: {integrity: sha512-NL3Lo0NorCU607zU3NwRyJbpaB6E3t0xtd3LfAQKDfkeX4/ggcDXvkmkW42QWT5owUeW/jAe4hn+2qvkV1IbfQ==} - engines: {node: '>=6.9.0'} + '@jimp/types@0.16.13': + resolution: {integrity: sha512-mC0yVNUobFDjoYLg4hoUwzMKgNlxynzwt3cDXzumGvRJ7Kb8qQGOWJQjQFo5OxmGExqzPphkirdbBF88RVLBCg==} peerDependencies: - '@babel/core': ^7.0.0-0 + '@jimp/custom': '>=0.3.5' - '@babel/preset-modules@0.1.6-no-external-plugins': - resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} - peerDependencies: - '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + '@jimp/utils@0.16.13': + resolution: {integrity: sha512-VyCpkZzFTHXtKgVO35iKN0sYR10psGpV6SkcSeV4oF7eSYlR8Bl6aQLCzVeFjvESF7mxTmIiI3/XrMobVrtxDA==} - '@babel/preset-typescript@7.24.7': - resolution: {integrity: sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==} - engines: {node: '>=6.9.0'} + '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0': + resolution: {integrity: sha512-2D6y7fNvFmsLmRt6UCOFJPvFoPMJGT0Uh1Wg0RaigUp7kdQPs6yYn8Dmx6GZkOH/NW0yMTwRz/p0SRMMRo50vA==} peerDependencies: - '@babel/core': ^7.0.0-0 + typescript: '>= 4.3.x' + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true - '@babel/register@7.24.6': - resolution: {integrity: sha512-WSuFCc2wCqMeXkz/i3yfAAsxwWflEgbVkZzivgAmXl/MxrXeoYFZOOPllbC8R8WTF7u61wSRQtDVZ1879cdu6w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} - '@babel/regjsgen@0.8.0': - resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} - '@babel/runtime-corejs3@7.24.8': - resolution: {integrity: sha512-DXG/BhegtMHhnN7YPIvxWd303/9aXvYFD1TjNL3CD6tUrhI2LVsg3Lck0aql5TRH29n4sj3emcROypkZVUfSuA==} - engines: {node: '>=6.9.0'} + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} - '@babel/runtime@7.24.8': - resolution: {integrity: sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==} - engines: {node: '>=6.9.0'} + '@jridgewell/source-map@0.3.6': + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} - '@babel/template@7.24.7': - resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} - engines: {node: '>=6.9.0'} + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - '@babel/template@7.25.0': - resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} - engines: {node: '>=6.9.0'} + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - '@babel/traverse@7.24.8': - resolution: {integrity: sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==} - engines: {node: '>=6.9.0'} + '@jridgewell/trace-mapping@0.3.9': + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@babel/traverse@7.25.3': - resolution: {integrity: sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==} - engines: {node: '>=6.9.0'} + '@lukeed/csprng@1.1.0': + resolution: {integrity: sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==} + engines: {node: '>=8'} - '@babel/types@7.24.8': - resolution: {integrity: sha512-SkSBEHwwJRU52QEVZBmMBnE5Ux2/6WU1grdYyOhpbCNxbmJrDuDCphBzKZSO3taf0zztp+qkWlymE5tVL5l0TA==} - engines: {node: '>=6.9.0'} + '@mapbox/node-pre-gyp@1.0.11': + resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} + hasBin: true - '@babel/types@7.25.2': - resolution: {integrity: sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==} - engines: {node: '>=6.9.0'} + '@mdx-js/react@3.0.1': + resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==} + peerDependencies: + '@types/react': '>=16' + react: '>=16' - '@base2/pretty-print-object@1.0.1': - resolution: {integrity: sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==} + '@mediapipe/tasks-vision@0.10.8': + resolution: {integrity: sha512-Rp7ll8BHrKB3wXaRFKhrltwZl1CiXGdibPxuWXvqGnKTnv8fqa/nvftYNuSbf+pbJWKYCXdBtYTITdAUTGGh0Q==} - '@bcoe/v8-coverage@0.2.3': - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + '@monogrid/gainmap-js@3.0.5': + resolution: {integrity: sha512-53sCTG4FaJBaAq/tcufARtVYDMDGqyBT9i7F453pWGhZ5LqubDHDWtYoHo9VhQqMcHTEexdJqSsR58y+9HVmQA==} + peerDependencies: + three: '>= 0.159.0' - '@cspotcode/source-map-support@0.8.1': - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} + '@mui/base@5.0.0-beta.40': + resolution: {integrity: sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true - '@emotion/babel-plugin@11.12.0': - resolution: {integrity: sha512-y2WQb+oP8Jqvvclh8Q55gLUyb7UFvgv7eJfsj7td5TToBrIUtPay2kMrZi4xjq9qw2vD0ZR5fSho0yqoFgX7Rw==} + '@mui/core-downloads-tracker@5.16.1': + resolution: {integrity: sha512-62Jq7ACYi/55Kjkh/nVfEL3F3ytTYTsdB8MGJ9iI+eRQv+Aoem5CPUAzQihUo25qqh1VkVu9/jQn3dFbyrXHgw==} - '@emotion/cache@11.13.1': - resolution: {integrity: sha512-iqouYkuEblRcXmylXIwwOodiEK5Ifl7JcX7o6V4jI3iW4mLXX3dmt5xwBtIkJiQEXFAI+pC8X0i67yiPkH9Ucw==} - - '@emotion/hash@0.9.2': - resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} - - '@emotion/is-prop-valid@1.3.0': - resolution: {integrity: sha512-SHetuSLvJDzuNbOdtPVbq6yMMMlLoW5Q94uDqJZqy50gcmAjxFkVqmzqSGEFq9gT2iMuIeKV1PXVWmvUhuZLlQ==} - - '@emotion/memoize@0.9.0': - resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} - - '@emotion/react@11.13.0': - resolution: {integrity: sha512-WkL+bw1REC2VNV1goQyfxjx1GYJkcc23CRQkXX+vZNLINyfI7o+uUn/rTGPt/xJ3bJHd5GcljgnxHf4wRw5VWQ==} + '@mui/icons-material@5.16.1': + resolution: {integrity: sha512-ogQPweYba4+5XZykilwxn2/oS78uwoQ0BVBpOhhCJo0ooZsqTTsalhzP2qD/RdGqMQ8xyXPz1sYM2djTruVVVA==} + engines: {node: '>=12.0.0'} peerDependencies: - '@types/react': '*' - react: '>=16.8.0' + '@mui/material': ^5.0.0 + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 peerDependenciesMeta: '@types/react': optional: true - '@emotion/serialize@1.3.0': - resolution: {integrity: sha512-jACuBa9SlYajnpIVXB+XOXnfJHyckDfe6fOpORIM6yhBDlqGuExvDdZYHDQGoDf3bZXGv7tNr+LpLjJqiEQ6EA==} - - '@emotion/sheet@1.4.0': - resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==} + '@mui/lab@5.0.0-alpha.172': + resolution: {integrity: sha512-stpa3WTsDE1HamFR4eeS6Bhxalm+u9FhzzNph/PrDMdWSRBHlJs2mqvZ6FEoO22O7MOCwNMqbXTkvEwsyEf0ew==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@mui/material': '>=5.15.0' + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@types/react': + optional: true - '@emotion/styled@11.13.0': - resolution: {integrity: sha512-tkzkY7nQhW/zC4hztlwucpT8QEZ6eUzpXDRhww/Eej4tFfO0FxQYWRyg/c5CCXa4d/f174kqeXYjuQRnhzf6dA==} + '@mui/material@5.16.1': + resolution: {integrity: sha512-BGTgJRb0d/hX9tus5CEb6N/Fo8pE4tYA+s9r4/S0PCrtZ3urCLXlTH4qrAvggQbiF1cYRAbHCkVHoQ+4Pdxl+w==} + engines: {node: '>=12.0.0'} peerDependencies: - '@emotion/react': ^11.0.0-rc.0 - '@types/react': '*' - react: '>=16.8.0' + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true '@types/react': optional: true - '@emotion/unitless@0.9.0': - resolution: {integrity: sha512-TP6GgNZtmtFaFcsOgExdnfxLLpRDla4Q66tnenA9CktvVSdNKDvMVuUah4QvWPIpNjrWsGg3qeGo9a43QooGZQ==} + '@mui/private-theming@5.16.1': + resolution: {integrity: sha512-2EGCKnAlq9vRIFj61jNWNXlKAxXp56577OVvsts7fAqRx+G1y6F+N7Q198SBaz8jYQeGKSz8ZMXK/M3FqjdEyw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true - '@emotion/use-insertion-effect-with-fallbacks@1.1.0': - resolution: {integrity: sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==} + '@mui/styled-engine@5.16.1': + resolution: {integrity: sha512-JwWUBaYR8HHCFefSeos0z6JoTbu0MnjAuNHu4QoDgPxl2EE70XH38CsKay66Iy0QkNWmGTRXVU2sVFgUOPL/Dw==} + engines: {node: '>=12.0.0'} peerDependencies: - react: '>=16.8.0' + '@emotion/react': ^11.4.1 + '@emotion/styled': ^11.3.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true - '@emotion/utils@1.4.0': - resolution: {integrity: sha512-spEnrA1b6hDR/C68lC2M7m6ALPUHZC0lIY7jAS/B/9DuuO1ZP04eov8SMv/6fwRd8pzmsn2AuJEznRREWlQrlQ==} + '@mui/system@5.16.1': + resolution: {integrity: sha512-VaFcClC+uhvIEzhzcNmh9FRBvrG9IPjsOokhj6U1HPZsFnLzHV7AD7dJcT6LxWoiIZj9Ej0GK+MGh/b8+BtSlQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@types/react': + optional: true - '@emotion/weak-memoize@0.4.0': - resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} + '@mui/types@7.2.15': + resolution: {integrity: sha512-nbo7yPhtKJkdf9kcVOF8JZHPZTmqXjJ/tI0bdWgHg5tp9AnIN4Y7f7wm9T+0SyGYJk76+GYZ8Q5XaTYAsUHN0Q==} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true - '@esbuild/aix-ppc64@0.21.5': - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] + '@mui/utils@5.16.4': + resolution: {integrity: sha512-nlppYwq10TBIFqp7qxY0SvbACOXeOjeVL3pOcDsK0FT8XjrEXh9/+lkg8AEIzD16z7YfiJDQjaJG2OLkE7BxNg==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true - '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] + '@mui/x-data-grid@5.17.26': + resolution: {integrity: sha512-eGJq9J0g9cDGLFfMmugOadZx0mJeOd/yQpHwEa5gUXyONS6qF0OhXSWyDOhDdA3l2TOoQzotMN5dY/T4Wl1KYA==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@mui/material': ^5.4.1 + '@mui/system': ^5.4.1 + react: ^17.0.2 || ^18.0.0 + react-dom: ^17.0.2 || ^18.0.0 - '@esbuild/android-arm@0.21.5': - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] + '@mui/x-date-pickers@6.19.0': + resolution: {integrity: sha512-/GccT+iFJTKjI6b9b0MWojyRKnizL/VYYAfPnR1q0wSVVXjYv7a1NK0uQlan4JbnovqoQCNVeTOCy/0bUJyD2Q==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@emotion/react': ^11.9.0 + '@emotion/styled': ^11.8.1 + '@mui/material': ^5.8.6 + '@mui/system': ^5.8.0 + date-fns: ^2.25.0 || ^3.2.0 + date-fns-jalali: ^2.13.0-0 + dayjs: ^1.10.7 + luxon: ^3.0.2 + moment: ^2.29.4 + moment-hijri: ^2.1.2 + moment-jalaali: ^0.7.4 || ^0.8.0 || ^0.9.0 || ^0.10.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + date-fns: + optional: true + date-fns-jalali: + optional: true + dayjs: + optional: true + luxon: + optional: true + moment: + optional: true + moment-hijri: + optional: true + moment-jalaali: + optional: true - '@esbuild/android-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] + '@nestjs/axios@3.0.2': + resolution: {integrity: sha512-Z6GuOUdNQjP7FX+OuV2Ybyamse+/e0BFdTWBX5JxpBDKA+YkdLynDgG6HTF04zy6e9zPa19UX0WA2VDoehwhXQ==} + peerDependencies: + '@nestjs/common': ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 + axios: ^1.3.1 + rxjs: ^6.0.0 || ^7.0.0 - '@esbuild/darwin-arm64@0.21.5': - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] + '@nestjs/common@10.3.0': + resolution: {integrity: sha512-DGv34UHsZBxCM3H5QGE2XE/+oLJzz5+714JQjBhjD9VccFlQs3LRxo/epso4l7nJIiNlZkPyIUC8WzfU/5RTsQ==} + peerDependencies: + class-transformer: '*' + class-validator: '*' + reflect-metadata: ^0.1.12 + rxjs: ^7.1.0 + peerDependenciesMeta: + class-transformer: + optional: true + class-validator: + optional: true - '@esbuild/darwin-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] + '@nestjs/core@10.3.0': + resolution: {integrity: sha512-N06P5ncknW/Pm8bj964WvLIZn2gNhHliCBoAO1LeBvNImYkecqKcrmLbY49Fa1rmMfEM3MuBHeDys3edeuYAOA==} + peerDependencies: + '@nestjs/common': ^10.0.0 + '@nestjs/microservices': ^10.0.0 + '@nestjs/platform-express': ^10.0.0 + '@nestjs/websockets': ^10.0.0 + reflect-metadata: ^0.1.12 + rxjs: ^7.1.0 + peerDependenciesMeta: + '@nestjs/microservices': + optional: true + '@nestjs/platform-express': + optional: true + '@nestjs/websockets': + optional: true - '@esbuild/freebsd-arm64@0.21.5': - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} - '@esbuild/freebsd-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} - '@esbuild/linux-arm64@0.21.5': - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} - '@esbuild/linux-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.21.5': - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.21.5': - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/sunos-x64@0.21.5': - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.21.5': - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@eslint-community/eslint-utils@4.4.0': - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.11.0': - resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@eslint/js@8.57.0': - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@floating-ui/core@1.6.4': - resolution: {integrity: sha512-a4IowK4QkXl4SCWTGUR0INAfEOX3wtsYw3rKK5InQEHMGObkR8Xk44qYQD9P4r6HHw0iIfK6GUKECmY8sTkqRA==} - - '@floating-ui/dom@1.6.7': - resolution: {integrity: sha512-wmVfPG5o2xnKDU4jx/m4w5qva9FWHcnZ8BvzEe90D/RpwsJaTAVYPEPdQ8sbr/N8zZTAHlZUTQdqg8ZUbzHmng==} - - '@floating-ui/react-dom@2.1.1': - resolution: {integrity: sha512-4h84MJt3CHrtG18mGsXuLCHMrug49d7DFkU0RMIyshRveBeyV2hmV/pDaF2Uxtu8kgq5r46llp5E5FQiR0K2Yg==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - - '@floating-ui/utils@0.2.4': - resolution: {integrity: sha512-dWO2pw8hhi+WrXq1YJy2yCuWoL20PddgGaqTgVe4cOS9Q6qklXCiA1tJEqX6BEwRNSCP84/afac9hd4MS+zEUA==} - - '@fontsource/roboto@4.5.8': - resolution: {integrity: sha512-CnD7zLItIzt86q4Sj3kZUiLcBk1dSk81qcqgMGaZe7SQ1P8hFNxhMl5AZthK1zrDM5m74VVhaOpuMGIL4gagaA==} - - '@humanwhocodes/config-array@0.11.14': - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead - - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead - - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - - '@istanbuljs/load-nyc-config@1.1.0': - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} - - '@istanbuljs/schema@0.1.3': - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} - - '@jest/console@29.7.0': - resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/core@29.7.0': - resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - '@jest/environment@29.7.0': - resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/expect-utils@28.1.3': - resolution: {integrity: sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - - '@jest/expect-utils@29.7.0': - resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/expect@29.7.0': - resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/fake-timers@29.7.0': - resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/globals@29.7.0': - resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/reporters@29.7.0': - resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - '@jest/schemas@28.1.3': - resolution: {integrity: sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/source-map@29.6.3': - resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/test-result@29.7.0': - resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/test-sequencer@29.7.0': - resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/transform@29.7.0': - resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/types@28.1.3': - resolution: {integrity: sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - - '@jest/types@29.6.3': - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jimp/bmp@0.16.13': - resolution: {integrity: sha512-9edAxu7N2FX7vzkdl5Jo1BbACfycUtBQX+XBMcHA2bk62P8R0otgkHg798frgAk/WxQIzwxqOH6wMiCwrlAzdQ==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - - '@jimp/core@0.16.13': - resolution: {integrity: sha512-qXpA1tzTnlkTku9yqtuRtS/wVntvE6f3m3GNxdTdtmc+O+Wcg9Xo2ABPMh7Nc0AHbMKzwvwgB2JnjZmlmJEObg==} - - '@jimp/custom@0.16.13': - resolution: {integrity: sha512-LTATglVUPGkPf15zX1wTMlZ0+AU7cGEGF6ekVF1crA8eHUWsGjrYTB+Ht4E3HTrCok8weQG+K01rJndCp/l4XA==} - - '@jimp/gif@0.16.13': - resolution: {integrity: sha512-yFAMZGv3o+YcjXilMWWwS/bv1iSqykFahFMSO169uVMtfQVfa90kt4/kDwrXNR6Q9i6VHpFiGZMlF2UnHClBvg==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - - '@jimp/jpeg@0.16.13': - resolution: {integrity: sha512-BJHlDxzTlCqP2ThqP8J0eDrbBfod7npWCbJAcfkKqdQuFk0zBPaZ6KKaQKyKxmWJ87Z6ohANZoMKEbtvrwz1AA==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - - '@jimp/plugin-resize@0.16.13': - resolution: {integrity: sha512-qoqtN8LDknm3fJm9nuPygJv30O3vGhSBD2TxrsCnhtOsxKAqVPJtFVdGd/qVuZ8nqQANQmTlfqTiK9mVWQ7MiQ==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - - '@jimp/png@0.16.13': - resolution: {integrity: sha512-8cGqINvbWJf1G0Her9zbq9I80roEX0A+U45xFby3tDWfzn+Zz8XKDF1Nv9VUwVx0N3zpcG1RPs9hfheG4Cq2kg==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - - '@jimp/tiff@0.16.13': - resolution: {integrity: sha512-oJY8d9u95SwW00VPHuCNxPap6Q1+E/xM5QThb9Hu+P6EGuu6lIeLaNBMmFZyblwFbwrH+WBOZlvIzDhi4Dm/6Q==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - - '@jimp/types@0.16.13': - resolution: {integrity: sha512-mC0yVNUobFDjoYLg4hoUwzMKgNlxynzwt3cDXzumGvRJ7Kb8qQGOWJQjQFo5OxmGExqzPphkirdbBF88RVLBCg==} - peerDependencies: - '@jimp/custom': '>=0.3.5' - - '@jimp/utils@0.16.13': - resolution: {integrity: sha512-VyCpkZzFTHXtKgVO35iKN0sYR10psGpV6SkcSeV4oF7eSYlR8Bl6aQLCzVeFjvESF7mxTmIiI3/XrMobVrtxDA==} - - '@joshwooding/vite-plugin-react-docgen-typescript@0.3.1': - resolution: {integrity: sha512-pdoMZ9QaPnVlSM+SdU/wgg0nyD/8wQ7y90ttO2CMCyrrm7RxveYIJ5eNfjPaoMFqW41LZra7QO9j+xV4Y18Glw==} - peerDependencies: - typescript: '>= 4.3.x' - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true - - '@jridgewell/gen-mapping@0.3.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - - '@jridgewell/source-map@0.3.6': - resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} - - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - - '@jridgewell/trace-mapping@0.3.9': - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - - '@lukeed/csprng@1.1.0': - resolution: {integrity: sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==} - engines: {node: '>=8'} - - '@mapbox/node-pre-gyp@1.0.11': - resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} - hasBin: true - - '@mdx-js/react@3.0.1': - resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==} - peerDependencies: - '@types/react': '>=16' - react: '>=16' - - '@mediapipe/tasks-vision@0.10.8': - resolution: {integrity: sha512-Rp7ll8BHrKB3wXaRFKhrltwZl1CiXGdibPxuWXvqGnKTnv8fqa/nvftYNuSbf+pbJWKYCXdBtYTITdAUTGGh0Q==} - - '@monogrid/gainmap-js@3.0.5': - resolution: {integrity: sha512-53sCTG4FaJBaAq/tcufARtVYDMDGqyBT9i7F453pWGhZ5LqubDHDWtYoHo9VhQqMcHTEexdJqSsR58y+9HVmQA==} - peerDependencies: - three: '>= 0.159.0' - - '@mui/base@5.0.0-beta.40': - resolution: {integrity: sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - - '@mui/core-downloads-tracker@5.16.1': - resolution: {integrity: sha512-62Jq7ACYi/55Kjkh/nVfEL3F3ytTYTsdB8MGJ9iI+eRQv+Aoem5CPUAzQihUo25qqh1VkVu9/jQn3dFbyrXHgw==} - - '@mui/icons-material@5.16.1': - resolution: {integrity: sha512-ogQPweYba4+5XZykilwxn2/oS78uwoQ0BVBpOhhCJo0ooZsqTTsalhzP2qD/RdGqMQ8xyXPz1sYM2djTruVVVA==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@mui/material': ^5.0.0 - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - - '@mui/lab@5.0.0-alpha.172': - resolution: {integrity: sha512-stpa3WTsDE1HamFR4eeS6Bhxalm+u9FhzzNph/PrDMdWSRBHlJs2mqvZ6FEoO22O7MOCwNMqbXTkvEwsyEf0ew==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@emotion/react': ^11.5.0 - '@emotion/styled': ^11.3.0 - '@mui/material': '>=5.15.0' - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@emotion/react': - optional: true - '@emotion/styled': - optional: true - '@types/react': - optional: true - - '@mui/material@5.16.1': - resolution: {integrity: sha512-BGTgJRb0d/hX9tus5CEb6N/Fo8pE4tYA+s9r4/S0PCrtZ3urCLXlTH4qrAvggQbiF1cYRAbHCkVHoQ+4Pdxl+w==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@emotion/react': ^11.5.0 - '@emotion/styled': ^11.3.0 - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@emotion/react': - optional: true - '@emotion/styled': - optional: true - '@types/react': - optional: true - - '@mui/private-theming@5.16.1': - resolution: {integrity: sha512-2EGCKnAlq9vRIFj61jNWNXlKAxXp56577OVvsts7fAqRx+G1y6F+N7Q198SBaz8jYQeGKSz8ZMXK/M3FqjdEyw==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - - '@mui/styled-engine@5.16.1': - resolution: {integrity: sha512-JwWUBaYR8HHCFefSeos0z6JoTbu0MnjAuNHu4QoDgPxl2EE70XH38CsKay66Iy0QkNWmGTRXVU2sVFgUOPL/Dw==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@emotion/react': ^11.4.1 - '@emotion/styled': ^11.3.0 - react: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@emotion/react': - optional: true - '@emotion/styled': - optional: true - - '@mui/system@5.16.1': - resolution: {integrity: sha512-VaFcClC+uhvIEzhzcNmh9FRBvrG9IPjsOokhj6U1HPZsFnLzHV7AD7dJcT6LxWoiIZj9Ej0GK+MGh/b8+BtSlQ==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@emotion/react': ^11.5.0 - '@emotion/styled': ^11.3.0 - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@emotion/react': - optional: true - '@emotion/styled': - optional: true - '@types/react': - optional: true - - '@mui/types@7.2.15': - resolution: {integrity: sha512-nbo7yPhtKJkdf9kcVOF8JZHPZTmqXjJ/tI0bdWgHg5tp9AnIN4Y7f7wm9T+0SyGYJk76+GYZ8Q5XaTYAsUHN0Q==} - peerDependencies: - '@types/react': ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - - '@mui/utils@5.16.4': - resolution: {integrity: sha512-nlppYwq10TBIFqp7qxY0SvbACOXeOjeVL3pOcDsK0FT8XjrEXh9/+lkg8AEIzD16z7YfiJDQjaJG2OLkE7BxNg==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - - '@mui/x-data-grid@5.17.26': - resolution: {integrity: sha512-eGJq9J0g9cDGLFfMmugOadZx0mJeOd/yQpHwEa5gUXyONS6qF0OhXSWyDOhDdA3l2TOoQzotMN5dY/T4Wl1KYA==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@mui/material': ^5.4.1 - '@mui/system': ^5.4.1 - react: ^17.0.2 || ^18.0.0 - react-dom: ^17.0.2 || ^18.0.0 - - '@mui/x-date-pickers@6.19.0': - resolution: {integrity: sha512-/GccT+iFJTKjI6b9b0MWojyRKnizL/VYYAfPnR1q0wSVVXjYv7a1NK0uQlan4JbnovqoQCNVeTOCy/0bUJyD2Q==} - engines: {node: '>=14.0.0'} - peerDependencies: - '@emotion/react': ^11.9.0 - '@emotion/styled': ^11.8.1 - '@mui/material': ^5.8.6 - '@mui/system': ^5.8.0 - date-fns: ^2.25.0 || ^3.2.0 - date-fns-jalali: ^2.13.0-0 - dayjs: ^1.10.7 - luxon: ^3.0.2 - moment: ^2.29.4 - moment-hijri: ^2.1.2 - moment-jalaali: ^0.7.4 || ^0.8.0 || ^0.9.0 || ^0.10.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@emotion/react': - optional: true - '@emotion/styled': - optional: true - date-fns: - optional: true - date-fns-jalali: - optional: true - dayjs: - optional: true - luxon: - optional: true - moment: - optional: true - moment-hijri: - optional: true - moment-jalaali: - optional: true - - '@nestjs/axios@3.0.2': - resolution: {integrity: sha512-Z6GuOUdNQjP7FX+OuV2Ybyamse+/e0BFdTWBX5JxpBDKA+YkdLynDgG6HTF04zy6e9zPa19UX0WA2VDoehwhXQ==} - peerDependencies: - '@nestjs/common': ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 - axios: ^1.3.1 - rxjs: ^6.0.0 || ^7.0.0 - - '@nestjs/common@10.3.0': - resolution: {integrity: sha512-DGv34UHsZBxCM3H5QGE2XE/+oLJzz5+714JQjBhjD9VccFlQs3LRxo/epso4l7nJIiNlZkPyIUC8WzfU/5RTsQ==} - peerDependencies: - class-transformer: '*' - class-validator: '*' - reflect-metadata: ^0.1.12 - rxjs: ^7.1.0 - peerDependenciesMeta: - class-transformer: - optional: true - class-validator: - optional: true - - '@nestjs/core@10.3.0': - resolution: {integrity: sha512-N06P5ncknW/Pm8bj964WvLIZn2gNhHliCBoAO1LeBvNImYkecqKcrmLbY49Fa1rmMfEM3MuBHeDys3edeuYAOA==} - peerDependencies: - '@nestjs/common': ^10.0.0 - '@nestjs/microservices': ^10.0.0 - '@nestjs/platform-express': ^10.0.0 - '@nestjs/websockets': ^10.0.0 - reflect-metadata: ^0.1.12 - rxjs: ^7.1.0 - peerDependenciesMeta: - '@nestjs/microservices': - optional: true - '@nestjs/platform-express': - optional: true - '@nestjs/websockets': - optional: true - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@nuxtjs/opencollective@0.3.2': - resolution: {integrity: sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==} - engines: {node: '>=8.0.0', npm: '>=5.0.0'} - hasBin: true - - '@openapitools/openapi-generator-cli@2.13.4': - resolution: {integrity: sha512-4JKyrk55ohQK2FcuZbPdNvxdyXD14jjOIvE8hYjJ+E1cHbRbfXQXbYnjTODFE52Gx8eAxz8C9icuhDYDLn7nww==} - engines: {node: '>=10.0.0'} - hasBin: true - - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - - '@popperjs/core@2.11.8': - resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} - - '@react-spring/animated@9.6.1': - resolution: {integrity: sha512-ls/rJBrAqiAYozjLo5EPPLLOb1LM0lNVQcXODTC1SMtS6DbuBCPaKco5svFUQFMP2dso3O+qcC4k9FsKc0KxMQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - - '@react-spring/core@9.6.1': - resolution: {integrity: sha512-3HAAinAyCPessyQNNXe5W0OHzRfa8Yo5P748paPcmMowZ/4sMfaZ2ZB6e5x5khQI8NusOHj8nquoutd6FRY5WQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - - '@react-spring/rafz@9.6.1': - resolution: {integrity: sha512-v6qbgNRpztJFFfSE3e2W1Uz+g8KnIBs6SmzCzcVVF61GdGfGOuBrbjIcp+nUz301awVmREKi4eMQb2Ab2gGgyQ==} - - '@react-spring/shared@9.6.1': - resolution: {integrity: sha512-PBFBXabxFEuF8enNLkVqMC9h5uLRBo6GQhRMQT/nRTnemVENimgRd+0ZT4yFnAQ0AxWNiJfX3qux+bW2LbG6Bw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - - '@react-spring/three@9.6.1': - resolution: {integrity: sha512-Tyw2YhZPKJAX3t2FcqvpLRb71CyTe1GvT3V+i+xJzfALgpk10uPGdGaQQ5Xrzmok1340DAeg2pR/MCfaW7b8AA==} - peerDependencies: - '@react-three/fiber': '>=6.0' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - three: '>=0.126' - - '@react-spring/types@9.6.1': - resolution: {integrity: sha512-POu8Mk0hIU3lRXB3bGIGe4VHIwwDsQyoD1F394OK7STTiX9w4dG3cTLljjYswkQN+hDSHRrj4O36kuVa7KPU8Q==} - - '@react-three/drei@9.108.3': - resolution: {integrity: sha512-414jioJq9hGaq24kCfwCZ2mQ9HLkikICTmDjxU5eHaOYwT6MiSrfxZnFDsUNWUwY0GeuF9M8hJjsGagCtGA22Q==} - peerDependencies: - '@react-three/fiber': '>=8.0' - react: '>=18.0' - react-dom: '>=18.0' - three: '>=0.137' - peerDependenciesMeta: - react-dom: - optional: true - - '@react-three/fiber@8.16.8': - resolution: {integrity: sha512-Lc8fjATtvQEfSd8d5iKdbpHtRm/aPMeFj7jQvp6TNHfpo8IQTW3wwcE1ZMrGGoUH+w2mnyS+0MK1NLPLnuzGkQ==} - peerDependencies: - expo: '>=43.0' - expo-asset: '>=8.4' - expo-file-system: '>=11.0' - expo-gl: '>=11.0' - react: '>=18.0' - react-dom: '>=18.0' - react-native: '>=0.64' - three: '>=0.133' - peerDependenciesMeta: - expo: - optional: true - expo-asset: - optional: true - expo-file-system: - optional: true - expo-gl: - optional: true - react-dom: - optional: true - react-native: - optional: true - - '@remix-run/router@1.17.1': - resolution: {integrity: sha512-mCOMec4BKd6BRGBZeSnGiIgwsbLGp3yhVqAD8H+PxiRNEHgDpZb8J1TnrSDlg97t0ySKMQJTHCWBCmBpSmkF6Q==} - engines: {node: '>=14.0.0'} - - '@rollup/pluginutils@5.1.0': - resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/rollup-android-arm-eabi@4.19.0': - resolution: {integrity: sha512-JlPfZ/C7yn5S5p0yKk7uhHTTnFlvTgLetl2VxqE518QgyM7C9bSfFTYvB/Q/ftkq0RIPY4ySxTz+/wKJ/dXC0w==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.19.0': - resolution: {integrity: sha512-RDxUSY8D1tWYfn00DDi5myxKgOk6RvWPxhmWexcICt/MEC6yEMr4HNCu1sXXYLw8iAsg0D44NuU+qNq7zVWCrw==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.19.0': - resolution: {integrity: sha512-emvKHL4B15x6nlNTBMtIaC9tLPRpeA5jMvRLXVbl/W9Ie7HhkrE7KQjvgS9uxgatL1HmHWDXk5TTS4IaNJxbAA==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.19.0': - resolution: {integrity: sha512-fO28cWA1dC57qCd+D0rfLC4VPbh6EOJXrreBmFLWPGI9dpMlER2YwSPZzSGfq11XgcEpPukPTfEVFtw2q2nYJg==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-linux-arm-gnueabihf@4.19.0': - resolution: {integrity: sha512-2Rn36Ubxdv32NUcfm0wB1tgKqkQuft00PtM23VqLuCUR4N5jcNWDoV5iBC9jeGdgS38WK66ElncprqgMUOyomw==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.19.0': - resolution: {integrity: sha512-gJuzIVdq/X1ZA2bHeCGCISe0VWqCoNT8BvkQ+BfsixXwTOndhtLUpOg0A1Fcx/+eA6ei6rMBzlOz4JzmiDw7JQ==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.19.0': - resolution: {integrity: sha512-0EkX2HYPkSADo9cfeGFoQ7R0/wTKb7q6DdwI4Yn/ULFE1wuRRCHybxpl2goQrx4c/yzK3I8OlgtBu4xvted0ug==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.19.0': - resolution: {integrity: sha512-GlIQRj9px52ISomIOEUq/IojLZqzkvRpdP3cLgIE1wUWaiU5Takwlzpz002q0Nxxr1y2ZgxC2obWxjr13lvxNQ==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.19.0': - resolution: {integrity: sha512-N6cFJzssruDLUOKfEKeovCKiHcdwVYOT1Hs6dovDQ61+Y9n3Ek4zXvtghPPelt6U0AH4aDGnDLb83uiJMkWYzQ==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.19.0': - resolution: {integrity: sha512-2DnD3mkS2uuam/alF+I7M84koGwvn3ZVD7uG+LEWpyzo/bq8+kKnus2EVCkcvh6PlNB8QPNFOz6fWd5N8o1CYg==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.19.0': - resolution: {integrity: sha512-D6pkaF7OpE7lzlTOFCB2m3Ngzu2ykw40Nka9WmKGUOTS3xcIieHe82slQlNq69sVB04ch73thKYIWz/Ian8DUA==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.19.0': - resolution: {integrity: sha512-HBndjQLP8OsdJNSxpNIN0einbDmRFg9+UQeZV1eiYupIRuZsDEoeGU43NQsS34Pp166DtwQOnpcbV/zQxM+rWA==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.19.0': - resolution: {integrity: sha512-HxfbvfCKJe/RMYJJn0a12eiOI9OOtAUF4G6ozrFUK95BNyoJaSiBjIOHjZskTUffUrB84IPKkFG9H9nEvJGW6A==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-win32-arm64-msvc@4.19.0': - resolution: {integrity: sha512-HxDMKIhmcguGTiP5TsLNolwBUK3nGGUEoV/BO9ldUBoMLBssvh4J0X8pf11i1fTV7WShWItB1bKAKjX4RQeYmg==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.19.0': - resolution: {integrity: sha512-xItlIAZZaiG/u0wooGzRsx11rokP4qyc/79LkAOdznGRAbOFc+SfEdfUOszG1odsHNgwippUJavag/+W/Etc6Q==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.19.0': - resolution: {integrity: sha512-xNo5fV5ycvCCKqiZcpB65VMR11NJB+StnxHz20jdqRAktfdfzhgjTiJ2doTDQE/7dqGaV5I7ZGqKpgph6lCIag==} - cpu: [x64] - os: [win32] - - '@sinclair/typebox@0.24.51': - resolution: {integrity: sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==} - - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - - '@sindresorhus/is@4.6.0': - resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} - engines: {node: '>=10'} - - '@sindresorhus/merge-streams@2.3.0': - resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} - engines: {node: '>=18'} - - '@sinonjs/commons@3.0.1': - resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} - - '@sinonjs/fake-timers@10.3.0': - resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} - - '@socket.io/component-emitter@3.1.2': - resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} - - '@storybook/addon-actions@8.2.2': - resolution: {integrity: sha512-SN4cSRt3f0qXi5te+yhMseSdQuZntA8lGlASbRmN77YQTpIaGsNiH88xFoky0s9qz531hiRfU1R0ZSMylBwSKw==} - peerDependencies: - storybook: ^8.2.2 - - '@storybook/addon-backgrounds@8.2.2': - resolution: {integrity: sha512-m/xJe7uKL+kfJx7pQcHwAeIvJ3tdLIpDGrMAVDNDJHcAxfe44cFjIInaV/1HKf3y5Awap+DZFW66ekkxuI9zzA==} - peerDependencies: - storybook: ^8.2.2 - - '@storybook/addon-controls@8.2.2': - resolution: {integrity: sha512-y241aOANGzT5XBADUIvALwG/xF5eC6UItzmWJaFvOzSBCq74GIA0+Hu9atyFdvFQbXOrdvPWC4jR+9iuBFRxAA==} - peerDependencies: - storybook: ^8.2.2 - - '@storybook/addon-docs@8.2.2': - resolution: {integrity: sha512-qk/yjAR9RpsSrKLLbeCgb6u58c8TmYqyJSnXgbAozZZNKHBWlIpvZ/hTNYud8qo0coPlxnLdjnZf32TykWGlAg==} - peerDependencies: - storybook: ^8.2.2 - - '@storybook/addon-essentials@8.2.2': - resolution: {integrity: sha512-yN//BFMbSvNV0+Sll2hcKmgJX06TUKQDm6pZimUjkXczFtOmK7K/UdDmKjWS+qjhfJdWpxdRoEpxoHvvRmNfsA==} - peerDependencies: - storybook: ^8.2.2 - - '@storybook/addon-highlight@8.2.2': - resolution: {integrity: sha512-yDTRzzL+IJAymgY32xoZl09BGBVmPOUV2wVNGYcZkkBLvz2GSQMTfUe1/7F4jAx//+rFBu48/MQzsTC7Bk8kPw==} - peerDependencies: - storybook: ^8.2.2 - - '@storybook/addon-interactions@8.2.2': - resolution: {integrity: sha512-zRRuUwm/l41JtTUgjIoQTUgLT99Hsdz9cqKca/8NYo1MGBdEcKE41DH4aBIzKaOKFu7p9q00/o/X1EqYX4LMUA==} - peerDependencies: - storybook: ^8.2.2 - - '@storybook/addon-links@8.2.2': - resolution: {integrity: sha512-eGh7O7SgTJMtnuXC0HlRPOegu1njcJS2cnVqjbzjvjxsPSBhbHpdYMi9Q9E7al/FKuqMUOjIR9YLIlmK1AJaqA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.2.2 - peerDependenciesMeta: - react: - optional: true - - '@storybook/addon-measure@8.2.2': - resolution: {integrity: sha512-3rCo/aMltt5FrBVdr2dYlD8HlE2q9TLKGJZnwh9on4QyL6ArHbdYw0LmyHe/LrFahJ49w1XQZBMSJcAdRkkS7w==} - peerDependencies: - storybook: ^8.2.2 - - '@storybook/addon-onboarding@8.2.2': - resolution: {integrity: sha512-dCdE8Mt/JW6cq6dY7co35Sul/bAkUT3ixaxBrUagFUYUQ/PTYM6p4/B+45RURD5S9z8LVHH1rVgmEeScm3U78w==} - peerDependencies: - storybook: ^8.2.2 - - '@storybook/addon-outline@8.2.2': - resolution: {integrity: sha512-Y+PQtfTNO8GLX5nz+3x5AMfHNvdGvBXazJ29+Rl1ygYN1+Q9ZhRJDE1kAK0wLxb7CG14peAgdYEaQb3Rduv7HQ==} - peerDependencies: - storybook: ^8.2.2 - - '@storybook/addon-toolbars@8.2.2': - resolution: {integrity: sha512-JGOueOc3EPljlCl9dVSQee0aMYoqGNvN0UH+R6wYJ3bDZ+tUG/iYpsZVPUOvS8vzp3Imk5Is1kzQbQYJtzdGLg==} - peerDependencies: - storybook: ^8.2.2 - - '@storybook/addon-viewport@8.2.2': - resolution: {integrity: sha512-gkZ8bsjGGP0NuevkT2iKC+szezSy+w4BrBDknf490mRU2K/B2e7TGojf/j/AtxzILMzD4IKzKUXbE/zwcqjZvA==} - peerDependencies: - storybook: ^8.2.2 - - '@storybook/blocks@8.2.2': - resolution: {integrity: sha512-av0Tryg4toDl2L/d1ABErtsAk9wvM1su6+M4wq5/Go50sk5IjGTldhbZFa9zNOohxLkZwaj0Q5xAgJ1Y+m5KrQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.2.2 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - - '@storybook/builder-vite@8.2.6': - resolution: {integrity: sha512-3PrsPZAedpQUbzRBEl23Fi1zG5bkQD76JsygVwmfiSm4Est4K8kW2AIB2ht9cIfKXh3mfQkyQlxXKHeQEHeQwQ==} - peerDependencies: - '@preact/preset-vite': '*' - storybook: ^8.2.6 - typescript: '>= 4.3.x' - vite: ^4.0.0 || ^5.0.0 - vite-plugin-glimmerx: '*' - peerDependenciesMeta: - '@preact/preset-vite': - optional: true - typescript: - optional: true - vite-plugin-glimmerx: - optional: true - - '@storybook/codemod@8.2.2': - resolution: {integrity: sha512-wRUVKLHVUhbLJYKW3QOufUxJGwaUT4jTCD8+HOGpHPdJO3NrwXu186xt4tuPZO2Y/NnacPeCQPsaK5ok4O8o7A==} - - '@storybook/components@8.2.6': - resolution: {integrity: sha512-H8ckH1AnLkHtMtvJ3J8LxnmDtHxkJ7NJacGctHMRrsBIvdKTVwlT4su5nAVVJlan/PrEou+jESfw+OjjBYE5PA==} - peerDependencies: - storybook: ^8.2.6 - - '@storybook/core@8.2.2': - resolution: {integrity: sha512-L4ojYI+Os/i5bCReDIlFgEDQSS94mbJlNU9WRzEGZpqNC5/hbFEC9Tip7P1MiRx9NrewkzU7b+UCP7mi3e4drQ==} - - '@storybook/csf-plugin@8.2.2': - resolution: {integrity: sha512-3K2RUpDDvq3DT46qAIj2VBC+fzTTebRUcZUsRfS6G1AzaX9p25iClEHiwcJacFkgQKhkci8A/Ly3Z4JJ3b4Pgw==} - peerDependencies: - storybook: ^8.2.2 - - '@storybook/csf-plugin@8.2.6': - resolution: {integrity: sha512-USn7E/bMQYVqvFBuW6d9rKoSuCImjk0BAmc/0wIOuMQ/yQNp2Xze0m8eVkNHUIUDokyx0TXDjRjwq10Xxk16ag==} - peerDependencies: - storybook: ^8.2.6 - - '@storybook/csf@0.0.1': - resolution: {integrity: sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw==} - - '@storybook/csf@0.1.11': - resolution: {integrity: sha512-dHYFQH3mA+EtnCkHXzicbLgsvzYjcDJ1JWsogbItZogkPHgSJM/Wr71uMkcvw8v9mmCyP4NpXJuu6bPoVsOnzg==} - - '@storybook/global@5.0.0': - resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} - - '@storybook/icons@1.2.9': - resolution: {integrity: sha512-cOmylsz25SYXaJL/gvTk/dl3pyk7yBFRfeXTsHvTA3dfhoU/LWSq0NKL9nM7WBasJyn6XPSGnLS4RtKXLw5EUg==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - - '@storybook/instrumenter@8.2.2': - resolution: {integrity: sha512-refwnHqKHhya45MgqakhMG0jKhTiEIAl0aOwAaQy9+zf9ncMIYQAXRQsSZ2Z188lFWE24wbeHKteb62a5ZfWwQ==} - peerDependencies: - storybook: ^8.2.2 - - '@storybook/manager-api@8.2.6': - resolution: {integrity: sha512-uv36h/b5RhlajWtEg4cVPBYV8gZs6juux0nIE+6G9i7vt8Ild6gM9tW1KNabgZcaHFiyWJYCNWxJZoKjgUmXDg==} - peerDependencies: - storybook: ^8.2.6 - - '@storybook/preview-api@8.2.6': - resolution: {integrity: sha512-5vTj2ndX5ng4nDntZYe+r8UwLjCIGFymhq5/r2adAvRKL+Bo4zQDWGO7bhvGJk16do2THb2JvPz49ComW9LLZw==} - peerDependencies: - storybook: ^8.2.6 - - '@storybook/react-dom-shim@8.2.2': - resolution: {integrity: sha512-4fb1/yT9WXHzHjs0In6orIEZxga5eXd9UaXEFGudBgowCjDUVP9LabDdKTbGusz20lfaAkATsRG/W+EcSLoh8w==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.2.2 - - '@storybook/react-dom-shim@8.2.6': - resolution: {integrity: sha512-B+x8UAEQPDp1yhN3tMh09NvSL38QNfJB7PAyLgKrfE7xIAzvewq+RLW2DfGkoZCy+Zr7QSHm1p7NOgud8+sQCg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.2.6 - - '@storybook/react-vite@8.2.6': - resolution: {integrity: sha512-BpbteaIzsJZL1QN3iR7uuslrPfdtbZYXPhcU9awpfl5pW5MOQThuvl7728mwT8V7KdANeikJPgsnlETOb/afDA==} - engines: {node: '>=18.0.0'} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.2.6 - vite: ^4.0.0 || ^5.0.0 - - '@storybook/react@8.2.6': - resolution: {integrity: sha512-awJlzfiAMrf8l9AgiLhjXEJ+HvS3VKPxNNQaRwBELGq/vigjJe656tMrhvg4OIlJXtlS+6XPshd2knLwjIWNLw==} - engines: {node: '>=18.0.0'} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.2.6 - typescript: '>= 4.2.x' - peerDependenciesMeta: - typescript: - optional: true - - '@storybook/test@8.2.2': - resolution: {integrity: sha512-X2qAKErjTh1X7XLAZqCMtU0ZK8JuwdKmgiqU0oXWxIDmCX6/Dm9ZIcdMZHs/S+K/UnIByjNlQpTShLVfRUeN1w==} - peerDependencies: - storybook: ^8.2.2 - - '@storybook/theming@8.2.6': - resolution: {integrity: sha512-ICnYuLIVsYifVCMQljdHgrp+5vAquNybHxDGWiPeOxBicotwHF8rLhTckD2CdVQbMp0jk6r6jetvjXbFJ2MbvQ==} - peerDependencies: - storybook: ^8.2.6 - - '@swc/core-darwin-arm64@1.5.7': - resolution: {integrity: sha512-bZLVHPTpH3h6yhwVl395k0Mtx8v6CGhq5r4KQdAoPbADU974Mauz1b6ViHAJ74O0IVE5vyy7tD3OpkQxL/vMDQ==} - engines: {node: '>=10'} - cpu: [arm64] - os: [darwin] - - '@swc/core-darwin-x64@1.5.7': - resolution: {integrity: sha512-RpUyu2GsviwTc2qVajPL0l8nf2vKj5wzO3WkLSHAHEJbiUZk83NJrZd1RVbEknIMO7+Uyjh54hEh8R26jSByaw==} - engines: {node: '>=10'} - cpu: [x64] - os: [darwin] - - '@swc/core-linux-arm-gnueabihf@1.5.7': - resolution: {integrity: sha512-cTZWTnCXLABOuvWiv6nQQM0hP6ZWEkzdgDvztgHI/+u/MvtzJBN5lBQ2lue/9sSFYLMqzqff5EHKlFtrJCA9dQ==} - engines: {node: '>=10'} - cpu: [arm] - os: [linux] - - '@swc/core-linux-arm64-gnu@1.5.7': - resolution: {integrity: sha512-hoeTJFBiE/IJP30Be7djWF8Q5KVgkbDtjySmvYLg9P94bHg9TJPSQoC72tXx/oXOgXvElDe/GMybru0UxhKx4g==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - - '@swc/core-linux-arm64-musl@1.5.7': - resolution: {integrity: sha512-+NDhK+IFTiVK1/o7EXdCeF2hEzCiaRSrb9zD7X2Z7inwWlxAntcSuzZW7Y6BRqGQH89KA91qYgwbnjgTQ22PiQ==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - - '@swc/core-linux-x64-gnu@1.5.7': - resolution: {integrity: sha512-25GXpJmeFxKB+7pbY7YQLhWWjkYlR+kHz5I3j9WRl3Lp4v4UD67OGXwPe+DIcHqcouA1fhLhsgHJWtsaNOMBNg==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - - '@swc/core-linux-x64-musl@1.5.7': - resolution: {integrity: sha512-0VN9Y5EAPBESmSPPsCJzplZHV26akC0sIgd3Hc/7S/1GkSMoeuVL+V9vt+F/cCuzr4VidzSkqftdP3qEIsXSpg==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - - '@swc/core-win32-arm64-msvc@1.5.7': - resolution: {integrity: sha512-RtoNnstBwy5VloNCvmvYNApkTmuCe4sNcoYWpmY7C1+bPR+6SOo8im1G6/FpNem8AR5fcZCmXHWQ+EUmRWJyuA==} - engines: {node: '>=10'} - cpu: [arm64] - os: [win32] - - '@swc/core-win32-ia32-msvc@1.5.7': - resolution: {integrity: sha512-Xm0TfvcmmspvQg1s4+USL3x8D+YPAfX2JHygvxAnCJ0EHun8cm2zvfNBcsTlnwYb0ybFWXXY129aq1wgFC9TpQ==} - engines: {node: '>=10'} - cpu: [ia32] - os: [win32] - - '@swc/core-win32-x64-msvc@1.5.7': - resolution: {integrity: sha512-tp43WfJLCsKLQKBmjmY/0vv1slVywR5Q4qKjF5OIY8QijaEW7/8VwPyUyVoJZEnDgv9jKtUTG5PzqtIYPZGnyg==} - engines: {node: '>=10'} - cpu: [x64] - os: [win32] - - '@swc/core@1.5.7': - resolution: {integrity: sha512-U4qJRBefIJNJDRCCiVtkfa/hpiZ7w0R6kASea+/KLp+vkus3zcLSB8Ub8SvKgTIxjWpwsKcZlPf5nrv4ls46SQ==} - engines: {node: '>=10'} - peerDependencies: - '@swc/helpers': ^0.5.0 - peerDependenciesMeta: - '@swc/helpers': - optional: true - - '@swc/counter@0.1.3': - resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - - '@swc/types@0.1.7': - resolution: {integrity: sha512-scHWahbHF0eyj3JsxG9CFJgFdFNaVQCNAimBlT6PzS3n/HptxqREjsm4OH6AN3lYcffZYSPxXW8ua2BEHp0lJQ==} - - '@szmarczak/http-timer@4.0.6': - resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} - engines: {node: '>=10'} - - '@testing-library/dom@10.1.0': - resolution: {integrity: sha512-wdsYKy5zupPyLCW2Je5DLHSxSfbIp6h80WoHOQc+RPtmPGA52O9x5MJEkv92Sjonpq+poOAtUKhh1kBGAXBrNA==} - engines: {node: '>=18'} - - '@testing-library/dom@9.3.4': - resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} - engines: {node: '>=14'} - - '@testing-library/jest-dom@6.4.5': - resolution: {integrity: sha512-AguB9yvTXmCnySBP1lWjfNNUwpbElsaQ567lt2VdGqAdHtpieLgjmcVyv1q7PMIvLbgpDdkWV5Ydv3FEejyp2A==} - engines: {node: '>=14', npm: '>=6', yarn: '>=1'} - peerDependencies: - '@jest/globals': '>= 28' - '@types/bun': latest - '@types/jest': '>= 28' - jest: '>= 28' - vitest: '>= 0.32' - peerDependenciesMeta: - '@jest/globals': - optional: true - '@types/bun': - optional: true - '@types/jest': - optional: true - jest: - optional: true - vitest: - optional: true - - '@testing-library/react@14.3.1': - resolution: {integrity: sha512-H99XjUhWQw0lTgyMN05W3xQG1Nh4lq574D8keFf1dDoNTJgp66VbJozRaczoF+wsiaPJNt/TcnfpLGufGxSrZQ==} - engines: {node: '>=14'} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - - '@testing-library/user-event@14.5.2': - resolution: {integrity: sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==} - engines: {node: '>=12', npm: '>=6'} - peerDependencies: - '@testing-library/dom': '>=7.21.4' - - '@tokenizer/token@0.3.0': - resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} - - '@tsconfig/node10@1.0.11': - resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} - - '@tsconfig/node12@1.0.11': - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - - '@tsconfig/node14@1.0.3': - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - - '@tsconfig/node16@1.0.4': - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - - '@tweenjs/tween.js@23.1.2': - resolution: {integrity: sha512-kMCNaZCJugWI86xiEHaY338CU5JpD0B97p1j1IKNn/Zto8PgACjQx0UxbHjmOcLl/dDOBnItwD07KmCs75pxtQ==} - - '@types/aria-query@4.2.2': - resolution: {integrity: sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==} - - '@types/aria-query@5.0.4': - resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} - - '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - - '@types/babel__generator@7.6.8': - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} - - '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - - '@types/babel__traverse@7.20.6': - resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} - - '@types/body-parser@1.19.5': - resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} - - '@types/cacheable-request@6.0.3': - resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} - - '@types/connect@3.4.38': - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - - '@types/crc@3.8.3': - resolution: {integrity: sha512-XR7+BLIOgpI8vEmABN30VEjxOq/AT+e03elBJjXgQEKW4/BAOTnjD93vdP6fAmisQ569/wuJNguvgBcg1fclbA==} - - '@types/cross-spawn@6.0.6': - resolution: {integrity: sha512-fXRhhUkG4H3TQk5dBhQ7m/JDdSNHKwR2BBia62lhwEIq9xGiQKLxd6LymNhn47SjXhsUEPmxi+PKw2OkW4LLjA==} - - '@types/debug@4.1.12': - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - - '@types/diff@5.2.1': - resolution: {integrity: sha512-uxpcuwWJGhe2AR1g8hD9F5OYGCqjqWnBUQFD8gMZsDbv8oPHzxJF6iMO6n8Tk0AdzlxoaaoQhOYlIg/PukVU8g==} - - '@types/doctrine@0.0.9': - resolution: {integrity: sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==} - - '@types/draco3d@1.4.10': - resolution: {integrity: sha512-AX22jp8Y7wwaBgAixaSvkoG4M/+PlAcm3Qs4OW8yT9DM4xUpWKeFhLueTAyZF39pviAdcDdeJoACapiAceqNcw==} - - '@types/easy-table@0.0.33': - resolution: {integrity: sha512-/vvqcJPmZUfQwCgemL0/34G7bIQnCuvgls379ygRlcC1FqNqk3n+VZ15dAO51yl6JNDoWd8vsk+kT8zfZ1VZSw==} - - '@types/ejs@3.1.5': - resolution: {integrity: sha512-nv+GSx77ZtXiJzwKdsASqi+YQ5Z7vwHsTP0JY2SiQgjGckkBRKZnk8nIM+7oUZ1VCtuTz0+By4qVR7fqzp/Dfg==} - - '@types/emscripten@1.39.13': - resolution: {integrity: sha512-cFq+fO/isvhvmuP/+Sl4K4jtU6E23DoivtbO4r50e3odaxAiVdbfSYRDdJ4gCdxx+3aRjhphS5ZMwIH4hFy/Cw==} - - '@types/escodegen@0.0.6': - resolution: {integrity: sha512-AjwI4MvWx3HAOaZqYsjKWyEObT9lcVV0Y0V8nXo6cXzN8ZiMxVhf6F3d/UNvXVGKrEzL/Dluc5p+y9GkzlTWig==} - - '@types/estree@0.0.51': - resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} - - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - - '@types/express-serve-static-core@4.19.5': - resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} - - '@types/express@4.17.21': - resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} - - '@types/find-cache-dir@3.2.1': - resolution: {integrity: sha512-frsJrz2t/CeGifcu/6uRo4b+SzAwT4NYCVPu1GN8IB9XTzrpPkGuV0tmh9mN+/L0PklAlsC3u5Fxt0ju00LXIw==} - - '@types/fs-extra@9.0.13': - resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} - - '@types/glob@7.2.0': - resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} - - '@types/graceful-fs@4.1.9': - resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} - - '@types/hast@3.0.4': - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - - '@types/http-cache-semantics@4.0.4': - resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} - - '@types/http-errors@2.0.4': - resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} - - '@types/inquirer@7.3.3': - resolution: {integrity: sha512-HhxyLejTHMfohAuhRun4csWigAMjXTmRyiJTU1Y/I1xmggikFMkOUoMQRlFm+zQcPEGHSs3io/0FAmNZf8EymQ==} - - '@types/istanbul-lib-coverage@2.0.6': - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - - '@types/istanbul-lib-report@3.0.3': - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} - - '@types/istanbul-reports@3.0.4': - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - - '@types/jasmine@3.10.18': - resolution: {integrity: sha512-jOk52a1Kz+1oU5fNWwAcNe64/GsE7r/Q6ronwDox0D3ETo/cr4ICMQyeXrj7G6FPW1n8YjRoAZA2F0XBr6GicQ==} - - '@types/jest@29.5.12': - resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} - - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - - '@types/keyv@3.1.4': - resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} - - '@types/lodash.flattendeep@4.4.9': - resolution: {integrity: sha512-Oacs/ZMuMvVWkhMqvj+Spad457Beln5pnkauif+6s65fE2cSL7J7NoMfwkxjuQsOsr4DUCDH/iDbmuZo81Nypw==} - - '@types/lodash.pickby@4.6.9': - resolution: {integrity: sha512-SPI248FYnyd3jOxDeJq2vX2UKQnDzqacuqdeOVqwE1MPSk8gN8TA3FcHSMQWLlpBnuHgXvgKInvywbOFbidpJA==} - - '@types/lodash.union@4.6.9': - resolution: {integrity: sha512-l/GEj9Xp2DptsfFYZ1JUczg6W/6JGbbDi0mVK8urg8XLUMguNJ2L1ya0QJzMctrtlP9+t5lfyL4QLF6P9/6ssQ==} - - '@types/lodash@4.17.6': - resolution: {integrity: sha512-OpXEVoCKSS3lQqjx9GGGOapBeuW5eUboYHRlHP9urXPX25IKZ6AnP5ZRxtVf63iieUbsHxLn8NQ5Nlftc6yzAA==} - - '@types/mdx@2.0.13': - resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} - - '@types/mime@1.3.5': - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - - '@types/minimatch@5.1.2': - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - - '@types/mocha@9.1.1': - resolution: {integrity: sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==} - - '@types/ms@0.7.34': - resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - - '@types/node@10.17.60': - resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==} - - '@types/node@15.14.9': - resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==} - - '@types/node@16.9.1': - resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==} - - '@types/node@18.19.42': - resolution: {integrity: sha512-d2ZFc/3lnK2YCYhos8iaNIYu9Vfhr92nHiyJHRltXWjXUBjEE+A4I58Tdbnw4VhggSW+2j5y5gTrLs4biNnubg==} - - '@types/node@20.14.10': - resolution: {integrity: sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==} - - '@types/node@22.2.0': - resolution: {integrity: sha512-bm6EG6/pCpkxDf/0gDNDdtDILMOHgaQBVOJGdwsqClnxA3xL6jtMv76rLBc006RVMWbmaf0xbmom4Z/5o2nRkQ==} - - '@types/object-inspect@1.13.0': - resolution: {integrity: sha512-lwGTVESDDV+XsQ1pH4UifpJ1f7OtXzQ6QBOX2Afq2bM/T3oOt8hF6exJMjjIjtEWeAN2YAo25J7HxWh97CCz9w==} - - '@types/offscreencanvas@2019.7.3': - resolution: {integrity: sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==} - - '@types/parse-json@4.0.2': - resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - - '@types/prop-types@15.7.12': - resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} - - '@types/qs@6.9.15': - resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} - - '@types/range-parser@1.2.7': - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - - '@types/react-dom@18.3.0': - resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} - - '@types/react-grid-layout@1.3.5': - resolution: {integrity: sha512-WH/po1gcEcoR6y857yAnPGug+ZhkF4PaTUxgAbwfeSH/QOgVSakKHBXoPGad/sEznmkiaK3pqHk+etdWisoeBQ==} - - '@types/react-reconciler@0.26.7': - resolution: {integrity: sha512-mBDYl8x+oyPX/VBb3E638N0B7xG+SPk/EAMcVPeexqus/5aTpTphQi0curhhshOqRrc9t6OPoJfEUkbymse/lQ==} - - '@types/react-reconciler@0.28.8': - resolution: {integrity: sha512-SN9c4kxXZonFhbX4hJrZy37yw9e7EIxcpHCxQv5JUS18wDE5ovkQKlqQEkufdJCCMfuI9BnjUJvhYeJ9x5Ra7g==} - - '@types/react-transition-group@4.4.10': - resolution: {integrity: sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==} - - '@types/react-virtualized-auto-sizer@1.0.4': - resolution: {integrity: sha512-nhYwlFiYa8M3S+O2T9QO/e1FQUYMr/wJENUdf/O0dhRi1RS/93rjrYQFYdbUqtdFySuhrtnEDX29P6eKOttY+A==} - - '@types/react-window@1.8.8': - resolution: {integrity: sha512-8Ls660bHR1AUA2kuRvVG9D/4XpRC6wjAaPT9dil7Ckc76eP9TKWZwwmgfq8Q1LANX3QNDnoU4Zp48A3w+zK69Q==} - - '@types/react@18.3.3': - resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} - - '@types/recursive-readdir@2.2.4': - resolution: {integrity: sha512-84REEGT3lcgopvpkmGApzmU5UEG0valme5rQS/KGiguTkJ70/Au8UYZTyrzoZnY9svuX9351+1uvrRPzWDD/uw==} - - '@types/resolve@1.20.6': - resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} - - '@types/responselike@1.0.3': - resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} - - '@types/semver@7.5.8': - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - - '@types/send@0.17.4': - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} - - '@types/serve-static@1.15.7': - resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} - - '@types/shallowequal@1.1.5': - resolution: {integrity: sha512-8afr1hbNqvZ/FBMY2mcfkkbk7xhlTZN4lVCgQf55YdjUQpWLemmrcvcHg94vjw+ZVIfPa3UZz/sOE6CkaMlDnQ==} - - '@types/stack-utils@2.0.3': - resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - - '@types/stats.js@0.17.3': - resolution: {integrity: sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ==} - - '@types/stream-buffers@3.0.7': - resolution: {integrity: sha512-azOCy05sXVXrO+qklf0c/B07H/oHaIuDDAiHPVwlk3A9Ek+ksHyTeMajLZl3r76FxpPpxem//4Te61G1iW3Giw==} - - '@types/supports-color@8.1.3': - resolution: {integrity: sha512-Hy6UMpxhE3j1tLpl27exp1XqHD7n8chAiNPzWfz16LPZoMMoSc4dzLl6w9qijkEb/r5O1ozdu1CWGA2L83ZeZg==} - - '@types/three@0.163.0': - resolution: {integrity: sha512-uIdDhsXRpQiBUkflBS/i1l3JX14fW6Ot9csed60nfbZNXHDTRsnV2xnTVwXcgbvTiboAR4IW+t+lTL5f1rqIqA==} - - '@types/three@0.166.0': - resolution: {integrity: sha512-FHMnpcdhdbdOOIYbfkTkUVpYMW53odxbTRwd0/xJpYnTzEsjnVnondGAvHZb4z06UW0vo6WPVuvH0/9qrxKx7g==} - - '@types/through@0.0.33': - resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==} - - '@types/unist@3.0.2': - resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} - - '@types/uuid@9.0.8': - resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} - - '@types/webxr@0.5.19': - resolution: {integrity: sha512-4hxA+NwohSgImdTSlPXEqDqqFktNgmTXQ05ff1uWam05tNGroCMp4G+4XVl6qWm1p7GQ/9oD41kAYsSssF6Mzw==} - - '@types/which@1.3.2': - resolution: {integrity: sha512-8oDqyLC7eD4HM307boe2QWKyuzdzWBj56xI/imSl2cpL+U3tCMaTAkMJ4ee5JBZ/FsOJlvRGeIShiZDAl1qERA==} - - '@types/yargs-parser@21.0.3': - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - - '@types/yargs@17.0.32': - resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} - - '@types/yargs@17.0.33': - resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - - '@types/yauzl@2.10.3': - resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - - '@typescript-eslint/eslint-plugin@7.16.0': - resolution: {integrity: sha512-py1miT6iQpJcs1BiJjm54AMzeuMPBSPuKPlnT8HlfudbcS5rYeX5jajpLf3mrdRh9dA/Ec2FVUY0ifeVNDIhZw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@7.16.0': - resolution: {integrity: sha512-ar9E+k7CU8rWi2e5ErzQiC93KKEFAXA2Kky0scAlPcxYblLt8+XZuHUZwlyfXILyQa95P6lQg+eZgh/dDs3+Vw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/scope-manager@5.62.0': - resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@typescript-eslint/scope-manager@7.16.0': - resolution: {integrity: sha512-8gVv3kW6n01Q6TrI1cmTZ9YMFi3ucDT7i7aI5lEikk2ebk1AEjrwX8MDTdaX5D7fPXMBLvnsaa0IFTAu+jcfOw==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/type-utils@7.16.0': - resolution: {integrity: sha512-j0fuUswUjDHfqV/UdW6mLtOQQseORqfdmoBNDFOqs9rvNVR2e+cmu6zJu/Ku4SDuqiJko6YnhwcL8x45r8Oqxg==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/types@5.62.0': - resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@typescript-eslint/types@7.16.0': - resolution: {integrity: sha512-fecuH15Y+TzlUutvUl9Cc2XJxqdLr7+93SQIbcZfd4XRGGKoxyljK27b+kxKamjRkU7FYC6RrbSCg0ALcZn/xw==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/typescript-estree@5.62.0': - resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/typescript-estree@7.16.0': - resolution: {integrity: sha512-a5NTvk51ZndFuOLCh5OaJBELYc2O3Zqxfl3Js78VFE1zE46J2AaVuW+rEbVkQznjkmlzWsUI15BG5tQMixzZLw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/utils@5.62.0': - resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - - '@typescript-eslint/utils@7.16.0': - resolution: {integrity: sha512-PqP4kP3hb4r7Jav+NiRCntlVzhxBNWq6ZQ+zQwII1y/G/1gdIPeYDCKr2+dH6049yJQsWZiHU6RlwvIFBXXGNA==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - - '@typescript-eslint/visitor-keys@5.62.0': - resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@typescript-eslint/visitor-keys@7.16.0': - resolution: {integrity: sha512-rMo01uPy9C7XxG7AFsxa8zLnWXTF8N3PYclekWSrurvhwiw1eW88mrKiAYe6s53AUY57nTRz8dJsuuXdkAhzCg==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@ungap/promise-all-settled@1.1.2': - resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==} - - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - - '@use-gesture/core@10.3.1': - resolution: {integrity: sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw==} - - '@use-gesture/react@10.3.1': - resolution: {integrity: sha512-Yy19y6O2GJq8f7CHf7L0nxL8bf4PZCPaVOCgJrusOeFHY1LvHgYXnmnXg6N5iwAnbgbZCDjo60SiM6IPJi9C5g==} - peerDependencies: - react: '>= 16.8.0' - - '@vitejs/plugin-react-swc@3.7.0': - resolution: {integrity: sha512-yrknSb3Dci6svCd/qhHqhFPDSw0QtjumcqdKMoNNzmOl5lMXTTiqzjWtG4Qask2HdvvzaNgSunbQGet8/GrKdA==} - peerDependencies: - vite: ^4 || ^5 - - '@vitest/coverage-v8@2.0.4': - resolution: {integrity: sha512-i4lx/Wpg5zF1h2op7j0wdwuEQxaL/YTwwQaKuKMHYj7MMh8c7I4W7PNfOptZBCSBZI0z1qwn64o0pM/pA8Tz1g==} - peerDependencies: - vitest: 2.0.4 - - '@vitest/expect@1.6.0': - resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==} - - '@vitest/expect@2.0.4': - resolution: {integrity: sha512-39jr5EguIoanChvBqe34I8m1hJFI4+jxvdOpD7gslZrVQBKhh8H9eD7J/LJX4zakrw23W+dITQTDqdt43xVcJw==} - - '@vitest/pretty-format@2.0.4': - resolution: {integrity: sha512-RYZl31STbNGqf4l2eQM1nvKPXE0NhC6Eq0suTTePc4mtMQ1Fn8qZmjV4emZdEdG2NOWGKSCrHZjmTqDCDoeFBw==} - - '@vitest/runner@2.0.4': - resolution: {integrity: sha512-Gk+9Su/2H2zNfNdeJR124gZckd5st4YoSuhF1Rebi37qTXKnqYyFCd9KP4vl2cQHbtuVKjfEKrNJxHHCW8thbQ==} - - '@vitest/snapshot@2.0.4': - resolution: {integrity: sha512-or6Mzoz/pD7xTvuJMFYEtso1vJo1S5u6zBTinfl+7smGUhqybn6VjzCDMhmTyVOFWwkCMuNjmNNxnyXPgKDoPw==} - - '@vitest/spy@1.6.0': - resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==} - - '@vitest/spy@2.0.4': - resolution: {integrity: sha512-uTXU56TNoYrTohb+6CseP8IqNwlNdtPwEO0AWl+5j7NelS6x0xZZtP0bDWaLvOfUbaYwhhWp1guzXUxkC7mW7Q==} - - '@vitest/utils@1.6.0': - resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} - - '@vitest/utils@2.0.4': - resolution: {integrity: sha512-Zc75QuuoJhOBnlo99ZVUkJIuq4Oj0zAkrQ2VzCqNCx6wAwViHEh5Fnp4fiJTE9rA+sAoXRf00Z9xGgfEzV6fzQ==} - - '@wdio/browserstack-service@7.11.1': - resolution: {integrity: sha512-TC2g6Kor15uwBKvupD2GGyT3QZnYS2sQ8MSl5YZacrWXgGvYdp7JADS/gQrTVy4beH1MrN8Ae8KnalLCh/D2GQ==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@wdio/cli': ^7.0.0 - - '@wdio/cli@7.11.1': - resolution: {integrity: sha512-CGFX7vy5U9i9ccsUNmcOv+LzFaoKNFPr1+mopELld/b0wUVN9yM70jfgmUMjpHQnAMl3lqxIjBQuDrxE8/qTEw==} - engines: {node: '>=12.0.0'} - hasBin: true - - '@wdio/config@7.10.1': - resolution: {integrity: sha512-EA+kJBNPeIxkkyilHcmiIwqjtOUcWx5FVp69kSBs4BN2fG+6CgpzoVecuTm/qPU6D0DT5KIfxVR4FRHCF99F/g==} - engines: {node: '>=12.0.0'} - - '@wdio/local-runner@7.11.1': - resolution: {integrity: sha512-aoRQg46RMfNdFCVqtHDYhIyhLoeXyOHLLv7Teyp+FJuqVNtpQT2eZACf8sZL2IfF7ZBP6JtvoV/MJ7sMXpOV2A==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@wdio/cli': ^7.0.0 - - '@wdio/logger@7.7.0': - resolution: {integrity: sha512-XX/OkC8NlvsBdhKsb9j7ZbuQtF/Vuo0xf38PXdqYtVezOrYbDuba0hPG++g/IGNuAF34ZbSi+49cvz4u5w92kQ==} - engines: {node: '>=12.0.0'} - - '@wdio/mocha-framework@7.11.1': - resolution: {integrity: sha512-66P2eTOso9W9Y0IMzhHmYZ98bfBDIkwswqJzGCrAbhuFpvOnqboF8wlrfUUADJ3b2rIVmsw02FCECNPS2EnQyQ==} - engines: {node: '>=12.0.0'} - - '@wdio/protocols@7.11.0': - resolution: {integrity: sha512-yWKmCUmbHB1AH0U3lebXRh/G3+JtsD9Tx9fevgP9qA7Hq+rHj7KqUf15k1lPPodhOms8ncPj0J6ET1E13wh2qg==} - engines: {node: '>=12.0.0'} - - '@wdio/repl@7.11.0': - resolution: {integrity: sha512-2GtWkUqepQ0QGvdo7fLWiZklf/O4eh3AB4vcafwGVKQhE8bpSh0l8/fkXOzYU7oK/PBGHJyWXxPOVf+H5DAViA==} - engines: {node: '>=12.0.0'} - - '@wdio/reporter@7.10.1': - resolution: {integrity: sha512-zgyHQc6j+GzlOnwlu3yhCQ8yAaTfo0MpNQG1GCiqtSKJ2c50J2HR5d9LYWrM7L8v13X4YWMxhW+3oYT+f35Gjw==} - engines: {node: '>=12.0.0'} - - '@wdio/runner@7.11.1': - resolution: {integrity: sha512-mPKqdpk/WTwpwlCg84J/Y+6ZURUSZ8jrSoBpCVsvs9NesdIkHtxLfvlA2btmXXRw5Al7VBtN/FFCBFBp5db+1Q==} - engines: {node: '>=12.0.0'} - - '@wdio/spec-reporter@7.10.1': - resolution: {integrity: sha512-Yo/XvBY3OkOhs3m32KcbeilJowVO4Ii0ZeNtn4KPPV6Z4pYglV8vYdTDJ/BIinuBBJWJPbS6EFLZtrsaSuuFYg==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@wdio/cli': ^7.0.0 - - '@wdio/types@7.10.1': - resolution: {integrity: sha512-wEDmdux2VCGO4wWVj7v9UbVRqQG7liHnDVPYJuQURPj3hJMiQQTIHwRi7EmwYfbJ9/mRoHBOGeZt7nSvtcjeaQ==} - engines: {node: '>=12.0.0'} - - '@wdio/utils@7.11.0': - resolution: {integrity: sha512-0n5mZha2QktV0181nMhw+IQ8MgYrqyvVDjP20P7JEnl6hehSkyXTAYQcYuKaw5AAVqipV3Eh96JBi5CnhpsoKQ==} - engines: {node: '>=12.0.0'} - - '@yarnpkg/fslib@2.10.3': - resolution: {integrity: sha512-41H+Ga78xT9sHvWLlFOZLIhtU6mTGZ20pZ29EiZa97vnxdohJD2AF42rCoAoWfqUz486xY6fhjMH+DYEM9r14A==} - engines: {node: '>=12 <14 || 14.2 - 14.9 || >14.10.0'} - - '@yarnpkg/libzip@2.3.0': - resolution: {integrity: sha512-6xm38yGVIa6mKm/DUCF2zFFJhERh/QWp1ufm4cNUvxsONBmfPg8uZ9pZBdOmF6qFGr/HlT6ABBkCSx/dlEtvWg==} - engines: {node: '>=12 <14 || 14.2 - 14.9 || >14.10.0'} - - '@zeit/schemas@2.6.0': - resolution: {integrity: sha512-uUrgZ8AxS+Lio0fZKAipJjAh415JyrOZowliZAzmnJSsf7piVL5w+G0+gFJ0KSu3QRhvui/7zuvpLz03YjXAhg==} - - abbrev@1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - - accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - - acorn-walk@7.2.0: - resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} - engines: {node: '>=0.4.0'} - - acorn-walk@8.3.3: - resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} - engines: {node: '>=0.4.0'} - - acorn@7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} - engines: {node: '>=0.4.0'} - hasBin: true - - acorn@8.12.1: - resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} - engines: {node: '>=0.4.0'} + '@nuxtjs/opencollective@0.3.2': + resolution: {integrity: sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==} + engines: {node: '>=8.0.0', npm: '>=5.0.0'} hasBin: true - agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - - agent-base@7.1.1: - resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} - engines: {node: '>= 14'} - - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - - ajv@6.5.3: - resolution: {integrity: sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==} - - ansi-align@2.0.0: - resolution: {integrity: sha512-TdlOggdA/zURfMYa7ABC66j+oqfMew58KpJMbUlH3bcZP1b+cBHIHDDn5uH9INsxrHBPjsqM0tDB4jPTF/vgJA==} - - ansi-colors@4.1.1: - resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} - engines: {node: '>=6'} - - ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - - ansi-escapes@6.2.1: - resolution: {integrity: sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==} - engines: {node: '>=14.16'} - - ansi-regex@2.1.1: - resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} - engines: {node: '>=0.10.0'} - - ansi-regex@3.0.1: - resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} - engines: {node: '>=4'} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} - - ansi-styles@2.2.1: - resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} - engines: {node: '>=0.10.0'} - - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - - ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - - any-base@1.1.0: - resolution: {integrity: sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==} - - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - - aproba@2.0.0: - resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - - arch@2.2.0: - resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} - - archiver-utils@2.1.0: - resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==} - engines: {node: '>= 6'} - - archiver-utils@3.0.4: - resolution: {integrity: sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==} - engines: {node: '>= 10'} - - archiver@5.3.2: - resolution: {integrity: sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==} - engines: {node: '>= 10'} - - are-we-there-yet@2.0.0: - resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} - engines: {node: '>=10'} - deprecated: This package is no longer supported. + '@openapitools/openapi-generator-cli@2.13.4': + resolution: {integrity: sha512-4JKyrk55ohQK2FcuZbPdNvxdyXD14jjOIvE8hYjJ+E1cHbRbfXQXbYnjTODFE52Gx8eAxz8C9icuhDYDLn7nww==} + engines: {node: '>=10.0.0'} + hasBin: true - arg@2.0.0: - resolution: {integrity: sha512-XxNTUzKnz1ctK3ZIcI2XUPlD96wbHP2nGqkPKpvk/HNRlPveYrXIVSTk9m3LcqOgDPg3B1nMvdV/K8wZd7PG4w==} + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} - arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + '@popperjs/core@2.11.8': + resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + '@react-spring/animated@9.6.1': + resolution: {integrity: sha512-ls/rJBrAqiAYozjLo5EPPLLOb1LM0lNVQcXODTC1SMtS6DbuBCPaKco5svFUQFMP2dso3O+qcC4k9FsKc0KxMQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + '@react-spring/core@9.6.1': + resolution: {integrity: sha512-3HAAinAyCPessyQNNXe5W0OHzRfa8Yo5P748paPcmMowZ/4sMfaZ2ZB6e5x5khQI8NusOHj8nquoutd6FRY5WQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 - aria-query@4.2.2: - resolution: {integrity: sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==} - engines: {node: '>=6.0'} + '@react-spring/rafz@9.6.1': + resolution: {integrity: sha512-v6qbgNRpztJFFfSE3e2W1Uz+g8KnIBs6SmzCzcVVF61GdGfGOuBrbjIcp+nUz301awVmREKi4eMQb2Ab2gGgyQ==} - aria-query@5.1.3: - resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} + '@react-spring/shared@9.6.1': + resolution: {integrity: sha512-PBFBXabxFEuF8enNLkVqMC9h5uLRBo6GQhRMQT/nRTnemVENimgRd+0ZT4yFnAQ0AxWNiJfX3qux+bW2LbG6Bw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 - aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + '@react-spring/three@9.6.1': + resolution: {integrity: sha512-Tyw2YhZPKJAX3t2FcqvpLRb71CyTe1GvT3V+i+xJzfALgpk10uPGdGaQQ5Xrzmok1340DAeg2pR/MCfaW7b8AA==} + peerDependencies: + '@react-three/fiber': '>=6.0' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + three: '>=0.126' - array-buffer-byte-length@1.0.1: - resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} - engines: {node: '>= 0.4'} + '@react-spring/types@9.6.1': + resolution: {integrity: sha512-POu8Mk0hIU3lRXB3bGIGe4VHIwwDsQyoD1F394OK7STTiX9w4dG3cTLljjYswkQN+hDSHRrj4O36kuVa7KPU8Q==} - array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + '@react-three/drei@9.108.3': + resolution: {integrity: sha512-414jioJq9hGaq24kCfwCZ2mQ9HLkikICTmDjxU5eHaOYwT6MiSrfxZnFDsUNWUwY0GeuF9M8hJjsGagCtGA22Q==} + peerDependencies: + '@react-three/fiber': '>=8.0' + react: '>=18.0' + react-dom: '>=18.0' + three: '>=0.137' + peerDependenciesMeta: + react-dom: + optional: true - array-includes@3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} - engines: {node: '>= 0.4'} + '@react-three/fiber@8.16.8': + resolution: {integrity: sha512-Lc8fjATtvQEfSd8d5iKdbpHtRm/aPMeFj7jQvp6TNHfpo8IQTW3wwcE1ZMrGGoUH+w2mnyS+0MK1NLPLnuzGkQ==} + peerDependencies: + expo: '>=43.0' + expo-asset: '>=8.4' + expo-file-system: '>=11.0' + expo-gl: '>=11.0' + react: '>=18.0' + react-dom: '>=18.0' + react-native: '>=0.64' + three: '>=0.133' + peerDependenciesMeta: + expo: + optional: true + expo-asset: + optional: true + expo-file-system: + optional: true + expo-gl: + optional: true + react-dom: + optional: true + react-native: + optional: true - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} + '@remix-run/router@1.17.1': + resolution: {integrity: sha512-mCOMec4BKd6BRGBZeSnGiIgwsbLGp3yhVqAD8H+PxiRNEHgDpZb8J1TnrSDlg97t0ySKMQJTHCWBCmBpSmkF6Q==} + engines: {node: '>=14.0.0'} - array.prototype.findlast@1.2.5: - resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} - engines: {node: '>= 0.4'} + '@rollup/pluginutils@5.1.0': + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true - array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} + '@rollup/rollup-android-arm-eabi@4.19.0': + resolution: {integrity: sha512-JlPfZ/C7yn5S5p0yKk7uhHTTnFlvTgLetl2VxqE518QgyM7C9bSfFTYvB/Q/ftkq0RIPY4ySxTz+/wKJ/dXC0w==} + cpu: [arm] + os: [android] - array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} - engines: {node: '>= 0.4'} + '@rollup/rollup-android-arm64@4.19.0': + resolution: {integrity: sha512-RDxUSY8D1tWYfn00DDi5myxKgOk6RvWPxhmWexcICt/MEC6yEMr4HNCu1sXXYLw8iAsg0D44NuU+qNq7zVWCrw==} + cpu: [arm64] + os: [android] - array.prototype.tosorted@1.1.4: - resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} - engines: {node: '>= 0.4'} + '@rollup/rollup-darwin-arm64@4.19.0': + resolution: {integrity: sha512-emvKHL4B15x6nlNTBMtIaC9tLPRpeA5jMvRLXVbl/W9Ie7HhkrE7KQjvgS9uxgatL1HmHWDXk5TTS4IaNJxbAA==} + cpu: [arm64] + os: [darwin] - arraybuffer.prototype.slice@1.0.3: - resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} - engines: {node: '>= 0.4'} + '@rollup/rollup-darwin-x64@4.19.0': + resolution: {integrity: sha512-fO28cWA1dC57qCd+D0rfLC4VPbh6EOJXrreBmFLWPGI9dpMlER2YwSPZzSGfq11XgcEpPukPTfEVFtw2q2nYJg==} + cpu: [x64] + os: [darwin] - assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + '@rollup/rollup-linux-arm-gnueabihf@4.19.0': + resolution: {integrity: sha512-2Rn36Ubxdv32NUcfm0wB1tgKqkQuft00PtM23VqLuCUR4N5jcNWDoV5iBC9jeGdgS38WK66ElncprqgMUOyomw==} + cpu: [arm] + os: [linux] - assertion-error@2.0.1: - resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} - engines: {node: '>=12'} + '@rollup/rollup-linux-arm-musleabihf@4.19.0': + resolution: {integrity: sha512-gJuzIVdq/X1ZA2bHeCGCISe0VWqCoNT8BvkQ+BfsixXwTOndhtLUpOg0A1Fcx/+eA6ei6rMBzlOz4JzmiDw7JQ==} + cpu: [arm] + os: [linux] - ast-types@0.16.1: - resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} - engines: {node: '>=4'} + '@rollup/rollup-linux-arm64-gnu@4.19.0': + resolution: {integrity: sha512-0EkX2HYPkSADo9cfeGFoQ7R0/wTKb7q6DdwI4Yn/ULFE1wuRRCHybxpl2goQrx4c/yzK3I8OlgtBu4xvted0ug==} + cpu: [arm64] + os: [linux] - async-exit-hook@2.0.1: - resolution: {integrity: sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==} - engines: {node: '>=0.12.0'} + '@rollup/rollup-linux-arm64-musl@4.19.0': + resolution: {integrity: sha512-GlIQRj9px52ISomIOEUq/IojLZqzkvRpdP3cLgIE1wUWaiU5Takwlzpz002q0Nxxr1y2ZgxC2obWxjr13lvxNQ==} + cpu: [arm64] + os: [linux] - async@3.2.5: - resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + '@rollup/rollup-linux-powerpc64le-gnu@4.19.0': + resolution: {integrity: sha512-N6cFJzssruDLUOKfEKeovCKiHcdwVYOT1Hs6dovDQ61+Y9n3Ek4zXvtghPPelt6U0AH4aDGnDLb83uiJMkWYzQ==} + cpu: [ppc64] + os: [linux] - asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + '@rollup/rollup-linux-riscv64-gnu@4.19.0': + resolution: {integrity: sha512-2DnD3mkS2uuam/alF+I7M84koGwvn3ZVD7uG+LEWpyzo/bq8+kKnus2EVCkcvh6PlNB8QPNFOz6fWd5N8o1CYg==} + cpu: [riscv64] + os: [linux] - atob@2.1.2: - resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} - engines: {node: '>= 4.5.0'} - hasBin: true + '@rollup/rollup-linux-s390x-gnu@4.19.0': + resolution: {integrity: sha512-D6pkaF7OpE7lzlTOFCB2m3Ngzu2ykw40Nka9WmKGUOTS3xcIieHe82slQlNq69sVB04ch73thKYIWz/Ian8DUA==} + cpu: [s390x] + os: [linux] - available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} + '@rollup/rollup-linux-x64-gnu@4.19.0': + resolution: {integrity: sha512-HBndjQLP8OsdJNSxpNIN0einbDmRFg9+UQeZV1eiYupIRuZsDEoeGU43NQsS34Pp166DtwQOnpcbV/zQxM+rWA==} + cpu: [x64] + os: [linux] - axios@1.6.8: - resolution: {integrity: sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==} + '@rollup/rollup-linux-x64-musl@4.19.0': + resolution: {integrity: sha512-HxfbvfCKJe/RMYJJn0a12eiOI9OOtAUF4G6ozrFUK95BNyoJaSiBjIOHjZskTUffUrB84IPKkFG9H9nEvJGW6A==} + cpu: [x64] + os: [linux] - axios@1.7.4: - resolution: {integrity: sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==} + '@rollup/rollup-win32-arm64-msvc@4.19.0': + resolution: {integrity: sha512-HxDMKIhmcguGTiP5TsLNolwBUK3nGGUEoV/BO9ldUBoMLBssvh4J0X8pf11i1fTV7WShWItB1bKAKjX4RQeYmg==} + cpu: [arm64] + os: [win32] - babel-core@7.0.0-bridge.0: - resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@rollup/rollup-win32-ia32-msvc@4.19.0': + resolution: {integrity: sha512-xItlIAZZaiG/u0wooGzRsx11rokP4qyc/79LkAOdznGRAbOFc+SfEdfUOszG1odsHNgwippUJavag/+W/Etc6Q==} + cpu: [ia32] + os: [win32] - babel-jest@29.7.0: - resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.8.0 + '@rollup/rollup-win32-x64-msvc@4.19.0': + resolution: {integrity: sha512-xNo5fV5ycvCCKqiZcpB65VMR11NJB+StnxHz20jdqRAktfdfzhgjTiJ2doTDQE/7dqGaV5I7ZGqKpgph6lCIag==} + cpu: [x64] + os: [win32] - babel-plugin-istanbul@6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} + '@sinclair/typebox@0.24.51': + resolution: {integrity: sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==} - babel-plugin-jest-hoist@29.6.3: - resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@sindresorhus/is@4.6.0': + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} - babel-plugin-macros@3.1.0: - resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} - engines: {node: '>=10', npm: '>=6'} + '@socket.io/component-emitter@3.1.2': + resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} - babel-plugin-polyfill-corejs2@0.4.11: - resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==} + '@storybook/addon-actions@8.3.3': + resolution: {integrity: sha512-cbpksmld7iADwDGXgojZ4r8LGI3YA3NP68duAHg2n1dtnx1oUaFK5wd6dbNuz7GdjyhIOIy3OKU1dAuylYNGOQ==} peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + storybook: ^8.3.3 - babel-plugin-polyfill-corejs3@0.10.4: - resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} + '@storybook/addon-backgrounds@8.3.3': + resolution: {integrity: sha512-aX0OIrtjIB7UgSaiv20SFkfC1iWwJIGMPsPSJ5ZPhXIIOWIEBtSujh8YXwjDEXSC4DOHalmeT4bitRRe5KrVKA==} peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + storybook: ^8.3.3 - babel-plugin-polyfill-regenerator@0.6.2: - resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==} + '@storybook/addon-controls@8.3.3': + resolution: {integrity: sha512-78xRtVpY7eX/Lti00JLgwYCBRB6ZcvzY3SWk0uQjEqcTnQGoQkVg2L7oWFDlDoA1LBY18P5ei2vu8MYT9GXU4g==} peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + storybook: ^8.3.3 - babel-preset-current-node-syntax@1.1.0: - resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==} + '@storybook/addon-docs@8.3.3': + resolution: {integrity: sha512-REUandqq1RnMNOhsocRwx5q2fdlBAYPTDFlKASYfEn4Ln5NgbQRGxOAWl7yXAAFzbDmUDU7K20hkauecF0tyMw==} peerDependencies: - '@babel/core': ^7.0.0 + storybook: ^8.3.3 - babel-preset-jest@29.6.3: - resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@storybook/addon-essentials@8.3.3': + resolution: {integrity: sha512-E/uXoUYcg8ulG3lVbsEKb4v5hnMeGkq9YJqiZYKgVK7iRFa6p4HeVB1wU1adnm7RgjWvh+p0vQRo4KL2CTNXqw==} peerDependencies: - '@babel/core': ^7.0.0 - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + storybook: ^8.3.3 - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + '@storybook/addon-highlight@8.3.3': + resolution: {integrity: sha512-MB084xJM66rLU+iFFk34kjLUiAWzDiy6Kz4uZRa1CnNqEK0sdI8HaoQGgOxTIa2xgJor05/8/mlYlMkP/0INsQ==} + peerDependencies: + storybook: ^8.3.3 - bidi-js@1.0.3: - resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==} + '@storybook/addon-interactions@8.3.3': + resolution: {integrity: sha512-3w5tpCGYdF33wF44xEhTS3Zmcwd6nITtwy5q+PJvHCJAm3fpjzL3xrjtlHKDvXNwYacJPRCbWKn2QwtxZIdN0g==} + peerDependencies: + storybook: ^8.3.3 - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} + '@storybook/addon-links@8.3.3': + resolution: {integrity: sha512-rz4KEbzr1ca4zZEZwbOnhKiaEsokCl1KkngxT/C1YIkpW908j/kg2nnIb5MrtlAW1nirXguAR74t6CGntvdU9w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.3.3 + peerDependenciesMeta: + react: + optional: true - bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + '@storybook/addon-measure@8.3.3': + resolution: {integrity: sha512-R20Z83gnxDRrocES344dw1Of/zDhe3XHSM6TLq80UQTJ9PhnMI+wYHQlK9DsdP3KiRkI+pQA6GCOp0s2ZRy5dg==} + peerDependencies: + storybook: ^8.3.3 - bmp-js@0.1.0: - resolution: {integrity: sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==} + '@storybook/addon-onboarding@8.3.3': + resolution: {integrity: sha512-QV3GZ54XSAh0KbdjHkcSmp7dmSuXrMvEKm1M106C33J9lJSai5wYqVhe3/DRVP9VbmSR96oa6gPc9Op4XJHFzw==} + peerDependencies: + storybook: ^8.3.3 - body-parser@1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + '@storybook/addon-outline@8.3.3': + resolution: {integrity: sha512-OwqYfieNuqSqWNtUZLu3UmsfQNnwA2UaSMBZyeC2Dte9Jd59PPYggcWmH+b0S6OTbYXWNAUK5U6WdK+X9Ypzdw==} + peerDependencies: + storybook: ^8.3.3 - boxen@1.3.0: - resolution: {integrity: sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==} - engines: {node: '>=4'} + '@storybook/addon-toolbars@8.3.3': + resolution: {integrity: sha512-4WyiVqDm4hlJdENIVQg9pLNLdfhnNKa+haerYYSzTVjzYrUx0X6Bxafshq+sud6aRtSYU14abwP56lfW8hgTlA==} + peerDependencies: + storybook: ^8.3.3 - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + '@storybook/addon-viewport@8.3.3': + resolution: {integrity: sha512-2S+UpbKAL+z1ppzUCkixjaem2UDMkfmm/kyJ1wm3A/ofGLYi4fjMSKNRckk+7NdolXGQJjBo0RcaotUTxFIFwQ==} + peerDependencies: + storybook: ^8.3.3 - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + '@storybook/blocks@8.3.3': + resolution: {integrity: sha512-8Vsvxqstop3xfbsx3Dn1nEjyxvQUcOYd8vpxyp2YumxYO8FlXIRuYL6HAkYbcX8JexsKvCZYxor52D2vUGIKZg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.3.3 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} + '@storybook/builder-vite@8.3.3': + resolution: {integrity: sha512-3yTXCLaB6bzhoPH3PqtacKkcaC1uV4L+IHTf1Zypx1NO1pLZHyhYf0T7dIOxTh2JZfqu1Pm9hTvOmWfR12m+9w==} + peerDependencies: + '@preact/preset-vite': '*' + storybook: ^8.3.3 + typescript: '>= 4.3.x' + vite: ^4.0.0 || ^5.0.0 + vite-plugin-glimmerx: '*' + peerDependenciesMeta: + '@preact/preset-vite': + optional: true + typescript: + optional: true + vite-plugin-glimmerx: + optional: true - browser-assert@1.2.1: - resolution: {integrity: sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==} + '@storybook/components@8.3.3': + resolution: {integrity: sha512-i2JYtesFGkdu+Hwuj+o9fLuO3yo+LPT1/8o5xBVYtEqsgDtEAyuRUWjSz8d8NPtzloGPOv5kvR6MokWDfbeMfw==} + peerDependencies: + storybook: ^8.3.3 - browser-stdout@1.3.1: - resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} + '@storybook/core@8.3.3': + resolution: {integrity: sha512-pmf2bP3fzh45e56gqOuBT8sDX05hGdUKIZ/hcI84d5xmd6MeHiPW8th2v946wCHcxHzxib2/UU9vQUh+mB4VNw==} - browserslist@4.23.2: - resolution: {integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true + '@storybook/csf-plugin@8.3.3': + resolution: {integrity: sha512-7AD7ojpXr3THqpTcEI4K7oKUfSwt1hummgL/cASuQvEPOwAZCVZl2gpGtKxcXhtJXTkn3GMCAvlYMoe7O/1YWw==} + peerDependencies: + storybook: ^8.3.3 - browserslist@4.23.3: - resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true + '@storybook/csf@0.0.1': + resolution: {integrity: sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw==} - browserstack-local@1.5.5: - resolution: {integrity: sha512-jKne7yosrMcptj3hqxp36TP9k0ZW2sCqhyurX24rUL4G3eT7OLgv+CSQN8iq5dtkv5IK+g+v8fWvsiC/S9KxMg==} + '@storybook/csf@0.1.11': + resolution: {integrity: sha512-dHYFQH3mA+EtnCkHXzicbLgsvzYjcDJ1JWsogbItZogkPHgSJM/Wr71uMkcvw8v9mmCyP4NpXJuu6bPoVsOnzg==} - bser@2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + '@storybook/global@5.0.0': + resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} - buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + '@storybook/icons@1.2.12': + resolution: {integrity: sha512-UxgyK5W3/UV4VrI3dl6ajGfHM4aOqMAkFLWe2KibeQudLf6NJpDrDMSHwZj+3iKC4jFU7dkKbbtH2h/al4sW3Q==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - buffer-equal@0.0.1: - resolution: {integrity: sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==} - engines: {node: '>=0.4.0'} + '@storybook/instrumenter@8.3.3': + resolution: {integrity: sha512-ZiODB9EwCQkl4PBxGJjBHXRTLxcNs68ZZvR+xeMr0eMFzzlJG+trXoX5kK95oA4BFhGN+3uM0Zl3MoRjBtJTNA==} + peerDependencies: + storybook: ^8.3.3 - buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + '@storybook/manager-api@8.3.3': + resolution: {integrity: sha512-Na4U+McOeVUJAR6qzJfQ6y2Qt0kUgEDUriNoAn+curpoKPTmIaZ79RAXBzIqBl31VyQKknKpZbozoRGf861YaQ==} + peerDependencies: + storybook: ^8.3.3 - buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + '@storybook/preview-api@8.3.3': + resolution: {integrity: sha512-GP2QlaF3BBQGAyo248N7549YkTQjCentsc1hUvqPnFWU4xfjkejbnFk8yLaIw0VbYbL7jfd7npBtjZ+6AnphMQ==} + peerDependencies: + storybook: ^8.3.3 - buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + '@storybook/react-dom-shim@8.3.3': + resolution: {integrity: sha512-0dPC9K7+K5+X/bt3GwYmh+pCpisUyKVjWsI+PkzqGnWqaXFakzFakjswowIAIO1rf7wYZR591x3ehUAyL2bJiQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.3.3 - bytes@3.0.0: - resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} - engines: {node: '>= 0.8'} + '@storybook/react-vite@8.3.3': + resolution: {integrity: sha512-vzOqVaA/rv+X5J17eWKxdZztMKEKfsCSP8pNNmrqXWxK3pSlW0fAPxtn1kw3UNxGtAv71pcqvaCUtTJKqI1PYA==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.3.3 + vite: ^4.0.0 || ^5.0.0 - bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} + '@storybook/react@8.3.3': + resolution: {integrity: sha512-fHOW/mNqI+sZWttGOE32Q+rAIbN7/Oib091cmE8usOM0z0vPNpywUBtqC2cCQH39vp19bhTsQaSsTcoBSweAHw==} + engines: {node: '>=18.0.0'} + peerDependencies: + '@storybook/test': 8.3.3 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.3.3 + typescript: '>= 4.2.x' + peerDependenciesMeta: + '@storybook/test': + optional: true + typescript: + optional: true - cac@3.0.4: - resolution: {integrity: sha512-hq4rxE3NT5PlaEiVV39Z45d6MoFcQZG5dsgJqtAUeOz3408LEQAElToDkf9i5IYSCOmK0If/81dLg7nKxqPR0w==} - engines: {node: '>=4'} + '@storybook/test@8.3.3': + resolution: {integrity: sha512-uZ8nMIovfI2ry989K2+cYAeEVD/3dpjj2+Rbmy7DiZWWVhFALfmqaTRkzZfShLmlH0TFv+rfcBPihGccBtw0FQ==} + peerDependencies: + storybook: ^8.3.3 - cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} + '@storybook/theming@8.3.3': + resolution: {integrity: sha512-gWJKetI6XJQgkrvvry4ez10+jLaGNCQKi5ygRPM9N+qrjA3BB8F2LCuFUTBuisa4l64TILDNjfwP/YTWV5+u5A==} + peerDependencies: + storybook: ^8.3.3 - cacheable-lookup@5.0.4: - resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} - engines: {node: '>=10.6.0'} + '@swc/core-darwin-arm64@1.5.7': + resolution: {integrity: sha512-bZLVHPTpH3h6yhwVl395k0Mtx8v6CGhq5r4KQdAoPbADU974Mauz1b6ViHAJ74O0IVE5vyy7tD3OpkQxL/vMDQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] - cacheable-request@7.0.4: - resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} - engines: {node: '>=8'} + '@swc/core-darwin-x64@1.5.7': + resolution: {integrity: sha512-RpUyu2GsviwTc2qVajPL0l8nf2vKj5wzO3WkLSHAHEJbiUZk83NJrZd1RVbEknIMO7+Uyjh54hEh8R26jSByaw==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] - call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} - engines: {node: '>= 0.4'} + '@swc/core-linux-arm-gnueabihf@1.5.7': + resolution: {integrity: sha512-cTZWTnCXLABOuvWiv6nQQM0hP6ZWEkzdgDvztgHI/+u/MvtzJBN5lBQ2lue/9sSFYLMqzqff5EHKlFtrJCA9dQ==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} + '@swc/core-linux-arm64-gnu@1.5.7': + resolution: {integrity: sha512-hoeTJFBiE/IJP30Be7djWF8Q5KVgkbDtjySmvYLg9P94bHg9TJPSQoC72tXx/oXOgXvElDe/GMybru0UxhKx4g==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] - camelcase-keys@3.0.0: - resolution: {integrity: sha512-U4E6A6aFyYnNW+tDt5/yIUKQURKXe3WMFPfX4FxrQFcwZ/R08AUk1xWcUtlr7oq6CV07Ji+aa69V2g7BSpblnQ==} - engines: {node: '>=0.10.0'} + '@swc/core-linux-arm64-musl@1.5.7': + resolution: {integrity: sha512-+NDhK+IFTiVK1/o7EXdCeF2hEzCiaRSrb9zD7X2Z7inwWlxAntcSuzZW7Y6BRqGQH89KA91qYgwbnjgTQ22PiQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] - camelcase@3.0.0: - resolution: {integrity: sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==} - engines: {node: '>=0.10.0'} + '@swc/core-linux-x64-gnu@1.5.7': + resolution: {integrity: sha512-25GXpJmeFxKB+7pbY7YQLhWWjkYlR+kHz5I3j9WRl3Lp4v4UD67OGXwPe+DIcHqcouA1fhLhsgHJWtsaNOMBNg==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] - camelcase@4.1.0: - resolution: {integrity: sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==} - engines: {node: '>=4'} + '@swc/core-linux-x64-musl@1.5.7': + resolution: {integrity: sha512-0VN9Y5EAPBESmSPPsCJzplZHV26akC0sIgd3Hc/7S/1GkSMoeuVL+V9vt+F/cCuzr4VidzSkqftdP3qEIsXSpg==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] - camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} + '@swc/core-win32-arm64-msvc@1.5.7': + resolution: {integrity: sha512-RtoNnstBwy5VloNCvmvYNApkTmuCe4sNcoYWpmY7C1+bPR+6SOo8im1G6/FpNem8AR5fcZCmXHWQ+EUmRWJyuA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] - camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + '@swc/core-win32-ia32-msvc@1.5.7': + resolution: {integrity: sha512-Xm0TfvcmmspvQg1s4+USL3x8D+YPAfX2JHygvxAnCJ0EHun8cm2zvfNBcsTlnwYb0ybFWXXY129aq1wgFC9TpQ==} engines: {node: '>=10'} + cpu: [ia32] + os: [win32] - camera-controls@2.8.5: - resolution: {integrity: sha512-7VTwRk7Nu1nRKsY7bEt9HVBfKt8DETvzyYhLN4OW26OByBayMDB5fUaNcPI+z++vG23RH5yqn6ZRhZcgLQy2rA==} - peerDependencies: - three: '>=0.126.1' + '@swc/core-win32-x64-msvc@1.5.7': + resolution: {integrity: sha512-tp43WfJLCsKLQKBmjmY/0vv1slVywR5Q4qKjF5OIY8QijaEW7/8VwPyUyVoJZEnDgv9jKtUTG5PzqtIYPZGnyg==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] - caniuse-lite@1.0.30001641: - resolution: {integrity: sha512-Phv5thgl67bHYo1TtMY/MurjkHhV4EDaCosezRXgZ8jzA/Ub+wjxAvbGvjoFENStinwi5kCyOYV3mi5tOGykwA==} + '@swc/core@1.5.7': + resolution: {integrity: sha512-U4qJRBefIJNJDRCCiVtkfa/hpiZ7w0R6kASea+/KLp+vkus3zcLSB8Ub8SvKgTIxjWpwsKcZlPf5nrv4ls46SQ==} + engines: {node: '>=10'} + peerDependencies: + '@swc/helpers': ^0.5.0 + peerDependenciesMeta: + '@swc/helpers': + optional: true - caniuse-lite@1.0.30001651: - resolution: {integrity: sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==} + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - canvas@2.11.2: - resolution: {integrity: sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==} - engines: {node: '>=6'} + '@swc/types@0.1.7': + resolution: {integrity: sha512-scHWahbHF0eyj3JsxG9CFJgFdFNaVQCNAimBlT6PzS3n/HptxqREjsm4OH6AN3lYcffZYSPxXW8ua2BEHp0lJQ==} - centra@2.7.0: - resolution: {integrity: sha512-PbFMgMSrmgx6uxCdm57RUos9Tc3fclMvhLSATYN39XsDV29B89zZ3KA89jmY0vwSGazyU+uerqwa6t+KaodPcg==} + '@szmarczak/http-timer@4.0.6': + resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} + engines: {node: '>=10'} - chai@4.4.1: - resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} - engines: {node: '>=4'} + '@testing-library/dom@10.4.0': + resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} + engines: {node: '>=18'} - chai@5.1.1: - resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} - engines: {node: '>=12'} + '@testing-library/dom@9.3.4': + resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} + engines: {node: '>=14'} - chalk@1.1.3: - resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} - engines: {node: '>=0.10.0'} + '@testing-library/jest-dom@6.5.0': + resolution: {integrity: sha512-xGGHpBXYSHUUr6XsKBfs85TWlYKpTc37cSBBVrXcib2MkHLboWlkClhWF37JKlDb9KEq3dHs+f2xR7XJEWGBxA==} + engines: {node: '>=14', npm: '>=6', yarn: '>=1'} - chalk@2.4.1: - resolution: {integrity: sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==} - engines: {node: '>=4'} + '@testing-library/react@14.3.1': + resolution: {integrity: sha512-H99XjUhWQw0lTgyMN05W3xQG1Nh4lq574D8keFf1dDoNTJgp66VbJozRaczoF+wsiaPJNt/TcnfpLGufGxSrZQ==} + engines: {node: '>=14'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} + '@testing-library/user-event@14.5.2': + resolution: {integrity: sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==} + engines: {node: '>=12', npm: '>=6'} + peerDependencies: + '@testing-library/dom': '>=7.21.4' - chalk@3.0.0: - resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} - engines: {node: '>=8'} + '@tokenizer/token@0.3.0': + resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} + '@tsconfig/node10@1.0.11': + resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} - chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + '@tsconfig/node12@1.0.11': + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - char-regex@1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} + '@tsconfig/node14@1.0.3': + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + '@tsconfig/node16@1.0.4': + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + '@tweenjs/tween.js@23.1.2': + resolution: {integrity: sha512-kMCNaZCJugWI86xiEHaY338CU5JpD0B97p1j1IKNn/Zto8PgACjQx0UxbHjmOcLl/dDOBnItwD07KmCs75pxtQ==} - check-error@2.1.1: - resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} - engines: {node: '>= 16'} + '@types/aria-query@4.2.2': + resolution: {integrity: sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==} - chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} + '@types/aria-query@5.0.4': + resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - chownr@1.1.4: - resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + '@types/babel__generator@7.6.8': + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} - chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - chrome-launcher@0.14.2: - resolution: {integrity: sha512-Nk8DUCIfPR6p9WClPPFeP2ztpAdkT8xueoiDS03csea1uoJjm4w0p5Oy1hjykyjT1EQ0MMrEshLD3C8gHXyiZw==} - engines: {node: '>=12.13.0'} + '@types/babel__traverse@7.20.6': + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} - ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} + '@types/body-parser@1.19.5': + resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} - citty@0.1.6: - resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + '@types/cacheable-request@6.0.3': + resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} - cjs-module-lexer@1.3.1: - resolution: {integrity: sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==} + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - cli-boxes@1.0.0: - resolution: {integrity: sha512-3Fo5wu8Ytle8q9iCzS4D2MWVL2X7JVWRiS1BnXbTFDhS9c/REkM9vd1AmabsoZoY5/dGi5TT9iKL8Kb6DeBRQg==} - engines: {node: '>=0.10.0'} + '@types/crc@3.8.3': + resolution: {integrity: sha512-XR7+BLIOgpI8vEmABN30VEjxOq/AT+e03elBJjXgQEKW4/BAOTnjD93vdP6fAmisQ569/wuJNguvgBcg1fclbA==} - cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - cli-cursor@4.0.0: - resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + '@types/diff@5.2.1': + resolution: {integrity: sha512-uxpcuwWJGhe2AR1g8hD9F5OYGCqjqWnBUQFD8gMZsDbv8oPHzxJF6iMO6n8Tk0AdzlxoaaoQhOYlIg/PukVU8g==} - cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} + '@types/doctrine@0.0.9': + resolution: {integrity: sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==} - cli-truncate@4.0.0: - resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} - engines: {node: '>=18'} + '@types/draco3d@1.4.10': + resolution: {integrity: sha512-AX22jp8Y7wwaBgAixaSvkoG4M/+PlAcm3Qs4OW8yT9DM4xUpWKeFhLueTAyZF39pviAdcDdeJoACapiAceqNcw==} - cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} + '@types/easy-table@0.0.33': + resolution: {integrity: sha512-/vvqcJPmZUfQwCgemL0/34G7bIQnCuvgls379ygRlcC1FqNqk3n+VZ15dAO51yl6JNDoWd8vsk+kT8zfZ1VZSw==} - clipboardy@1.2.3: - resolution: {integrity: sha512-2WNImOvCRe6r63Gk9pShfkwXsVtKCroMAevIbiae021mS850UkWPbevxsBz3tnvjZIEGvlwaqCPsw+4ulzNgJA==} - engines: {node: '>=4'} + '@types/ejs@3.1.5': + resolution: {integrity: sha512-nv+GSx77ZtXiJzwKdsASqi+YQ5Z7vwHsTP0JY2SiQgjGckkBRKZnk8nIM+7oUZ1VCtuTz0+By4qVR7fqzp/Dfg==} - cliui@7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + '@types/escodegen@0.0.6': + resolution: {integrity: sha512-AjwI4MvWx3HAOaZqYsjKWyEObT9lcVV0Y0V8nXo6cXzN8ZiMxVhf6F3d/UNvXVGKrEzL/Dluc5p+y9GkzlTWig==} - cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} + '@types/estree@0.0.51': + resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} - clone-deep@4.0.1: - resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} - engines: {node: '>=6'} + '@types/estree@1.0.5': + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - clone-response@1.0.3: - resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} + '@types/express-serve-static-core@4.19.5': + resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} - clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} + '@types/express@4.17.21': + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} - clsx@1.2.1: - resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} - engines: {node: '>=6'} + '@types/find-cache-dir@3.2.1': + resolution: {integrity: sha512-frsJrz2t/CeGifcu/6uRo4b+SzAwT4NYCVPu1GN8IB9XTzrpPkGuV0tmh9mN+/L0PklAlsC3u5Fxt0ju00LXIw==} - clsx@2.1.1: - resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} - engines: {node: '>=6'} + '@types/fs-extra@9.0.13': + resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} - co@4.6.0: - resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + '@types/glob@7.2.0': + resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} - collect-v8-coverage@1.0.2: - resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + '@types/http-cache-semantics@4.0.4': + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} + '@types/http-errors@2.0.4': + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + '@types/inquirer@7.3.3': + resolution: {integrity: sha512-HhxyLejTHMfohAuhRun4csWigAMjXTmRyiJTU1Y/I1xmggikFMkOUoMQRlFm+zQcPEGHSs3io/0FAmNZf8EymQ==} - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - color-support@1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true + '@types/istanbul-lib-report@3.0.3': + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} - colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + '@types/istanbul-reports@3.0.4': + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} + '@types/jasmine@3.10.18': + resolution: {integrity: sha512-jOk52a1Kz+1oU5fNWwAcNe64/GsE7r/Q6ronwDox0D3ETo/cr4ICMQyeXrj7G6FPW1n8YjRoAZA2F0XBr6GicQ==} - commander@12.1.0: - resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} - engines: {node: '>=18'} + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + '@types/keyv@3.1.4': + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} - commander@6.2.1: - resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} - engines: {node: '>= 6'} + '@types/lodash.flattendeep@4.4.9': + resolution: {integrity: sha512-Oacs/ZMuMvVWkhMqvj+Spad457Beln5pnkauif+6s65fE2cSL7J7NoMfwkxjuQsOsr4DUCDH/iDbmuZo81Nypw==} - commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} + '@types/lodash.pickby@4.6.9': + resolution: {integrity: sha512-SPI248FYnyd3jOxDeJq2vX2UKQnDzqacuqdeOVqwE1MPSk8gN8TA3FcHSMQWLlpBnuHgXvgKInvywbOFbidpJA==} - commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + '@types/lodash.union@4.6.9': + resolution: {integrity: sha512-l/GEj9Xp2DptsfFYZ1JUczg6W/6JGbbDi0mVK8urg8XLUMguNJ2L1ya0QJzMctrtlP9+t5lfyL4QLF6P9/6ssQ==} - compare-versions@4.1.4: - resolution: {integrity: sha512-FemMreK9xNyL8gQevsdRMrvO4lFCkQP7qbuktn1q8ndcNk1+0mz7lgE7b/sNvbhVgY4w6tMN1FDp6aADjqw2rw==} + '@types/lodash@4.17.6': + resolution: {integrity: sha512-OpXEVoCKSS3lQqjx9GGGOapBeuW5eUboYHRlHP9urXPX25IKZ6AnP5ZRxtVf63iieUbsHxLn8NQ5Nlftc6yzAA==} - compress-commons@4.1.2: - resolution: {integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==} - engines: {node: '>= 10'} + '@types/mdx@2.0.13': + resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} - compressible@2.0.18: - resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} - engines: {node: '>= 0.6'} + '@types/mime@1.3.5': + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - compression@1.7.3: - resolution: {integrity: sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==} - engines: {node: '>= 0.8.0'} + '@types/minimatch@5.1.2': + resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + '@types/mocha@9.1.1': + resolution: {integrity: sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==} - concurrently@6.5.1: - resolution: {integrity: sha512-FlSwNpGjWQfRwPLXvJ/OgysbBxPkWpiVjy1042b0U7on7S7qwwMIILRj7WTN1mTgqa582bG6NFuScOoh6Zgdag==} - engines: {node: '>=10.0.0'} - hasBin: true + '@types/ms@0.7.34': + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - concurrently@8.2.2: - resolution: {integrity: sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==} - engines: {node: ^14.13.0 || >=16.0.0} - hasBin: true + '@types/node@10.17.60': + resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==} + + '@types/node@15.14.9': + resolution: {integrity: sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==} - confbox@0.1.7: - resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} + '@types/node@16.9.1': + resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==} - consola@2.15.3: - resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} + '@types/node@20.14.10': + resolution: {integrity: sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==} - consola@3.2.3: - resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} - engines: {node: ^14.18.0 || >=16.10.0} + '@types/node@22.2.0': + resolution: {integrity: sha512-bm6EG6/pCpkxDf/0gDNDdtDILMOHgaQBVOJGdwsqClnxA3xL6jtMv76rLBc006RVMWbmaf0xbmom4Z/5o2nRkQ==} - console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + '@types/object-inspect@1.13.0': + resolution: {integrity: sha512-lwGTVESDDV+XsQ1pH4UifpJ1f7OtXzQ6QBOX2Afq2bM/T3oOt8hF6exJMjjIjtEWeAN2YAo25J7HxWh97CCz9w==} - console.table@0.10.0: - resolution: {integrity: sha512-dPyZofqggxuvSf7WXvNjuRfnsOk1YazkVP8FdxH4tcH2c37wc79/Yl6Bhr7Lsu00KMgy2ql/qCMuNu8xctZM8g==} - engines: {node: '> 0.10'} + '@types/offscreencanvas@2019.7.3': + resolution: {integrity: sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==} - content-disposition@0.5.2: - resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} - engines: {node: '>= 0.6'} + '@types/parse-json@4.0.2': + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} + '@types/prop-types@15.7.12': + resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} - content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} + '@types/qs@6.9.15': + resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} - convert-source-map@1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + '@types/range-parser@1.2.7': + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + '@types/react-dom@18.3.0': + resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} - cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + '@types/react-grid-layout@1.3.5': + resolution: {integrity: sha512-WH/po1gcEcoR6y857yAnPGug+ZhkF4PaTUxgAbwfeSH/QOgVSakKHBXoPGad/sEznmkiaK3pqHk+etdWisoeBQ==} - cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} - engines: {node: '>= 0.6'} + '@types/react-reconciler@0.26.7': + resolution: {integrity: sha512-mBDYl8x+oyPX/VBb3E638N0B7xG+SPk/EAMcVPeexqus/5aTpTphQi0curhhshOqRrc9t6OPoJfEUkbymse/lQ==} - core-js-compat@3.37.1: - resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==} + '@types/react-reconciler@0.28.8': + resolution: {integrity: sha512-SN9c4kxXZonFhbX4hJrZy37yw9e7EIxcpHCxQv5JUS18wDE5ovkQKlqQEkufdJCCMfuI9BnjUJvhYeJ9x5Ra7g==} - core-js-pure@3.37.1: - resolution: {integrity: sha512-J/r5JTHSmzTxbiYYrzXg9w1VpqrYt+gexenBE9pugeyhwPZTAEJddyiReJWsLO6uNQ8xJZFbod6XC7KKwatCiA==} + '@types/react-transition-group@4.4.10': + resolution: {integrity: sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==} - core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + '@types/react-virtualized-auto-sizer@1.0.4': + resolution: {integrity: sha512-nhYwlFiYa8M3S+O2T9QO/e1FQUYMr/wJENUdf/O0dhRi1RS/93rjrYQFYdbUqtdFySuhrtnEDX29P6eKOttY+A==} - cosmiconfig@7.1.0: - resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} - engines: {node: '>=10'} + '@types/react-window@1.8.8': + resolution: {integrity: sha512-8Ls660bHR1AUA2kuRvVG9D/4XpRC6wjAaPT9dil7Ckc76eP9TKWZwwmgfq8Q1LANX3QNDnoU4Zp48A3w+zK69Q==} - crc-32@1.2.2: - resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} - engines: {node: '>=0.8'} - hasBin: true + '@types/react@18.3.3': + resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} - crc32-stream@4.0.3: - resolution: {integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==} - engines: {node: '>= 10'} + '@types/recursive-readdir@2.2.4': + resolution: {integrity: sha512-84REEGT3lcgopvpkmGApzmU5UEG0valme5rQS/KGiguTkJ70/Au8UYZTyrzoZnY9svuX9351+1uvrRPzWDD/uw==} - crc@3.8.0: - resolution: {integrity: sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==} + '@types/resolve@1.20.6': + resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} - create-jest@29.7.0: - resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true + '@types/responselike@1.0.3': + resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} - create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + '@types/semver@7.5.8': + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - cross-env@7.0.3: - resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} - engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} - hasBin: true + '@types/send@0.17.4': + resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} - cross-spawn@4.0.2: - resolution: {integrity: sha512-yAXz/pA1tD8Gtg2S98Ekf/sewp3Lcp3YoFKJ4Hkp5h5yLWnKVTDU0kwjKJ8NDCYcfTLfyGkzTikst+jWypT1iA==} + '@types/serve-static@1.15.7': + resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} - cross-spawn@5.1.0: - resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} + '@types/shallowequal@1.1.5': + resolution: {integrity: sha512-8afr1hbNqvZ/FBMY2mcfkkbk7xhlTZN4lVCgQf55YdjUQpWLemmrcvcHg94vjw+ZVIfPa3UZz/sOE6CkaMlDnQ==} - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} + '@types/stack-utils@2.0.3': + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - crypto-random-string@4.0.0: - resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} - engines: {node: '>=12'} + '@types/stats.js@0.17.3': + resolution: {integrity: sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ==} - css-shorthand-properties@1.1.1: - resolution: {integrity: sha512-Md+Juc7M3uOdbAFwOYlTrccIZ7oCFuzrhKYQjdeUEW/sE1hv17Jp/Bws+ReOPpGVBTYCBoYo+G17V5Qo8QQ75A==} + '@types/stream-buffers@3.0.7': + resolution: {integrity: sha512-azOCy05sXVXrO+qklf0c/B07H/oHaIuDDAiHPVwlk3A9Ek+ksHyTeMajLZl3r76FxpPpxem//4Te61G1iW3Giw==} - css-value@0.0.1: - resolution: {integrity: sha512-FUV3xaJ63buRLgHrLQVlVgQnQdR4yqdLGaDu7g8CQcWjInDfM9plBTPI9FRfpahju1UBSaMckeb2/46ApS/V1Q==} + '@types/supports-color@8.1.3': + resolution: {integrity: sha512-Hy6UMpxhE3j1tLpl27exp1XqHD7n8chAiNPzWfz16LPZoMMoSc4dzLl6w9qijkEb/r5O1ozdu1CWGA2L83ZeZg==} - css.escape@1.5.1: - resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} + '@types/three@0.163.0': + resolution: {integrity: sha512-uIdDhsXRpQiBUkflBS/i1l3JX14fW6Ot9csed60nfbZNXHDTRsnV2xnTVwXcgbvTiboAR4IW+t+lTL5f1rqIqA==} - cssstyle@4.0.1: - resolution: {integrity: sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==} - engines: {node: '>=18'} + '@types/three@0.166.0': + resolution: {integrity: sha512-FHMnpcdhdbdOOIYbfkTkUVpYMW53odxbTRwd0/xJpYnTzEsjnVnondGAvHZb4z06UW0vo6WPVuvH0/9qrxKx7g==} - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + '@types/through@0.0.33': + resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==} - data-urls@5.0.0: - resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} - engines: {node: '>=18'} + '@types/unist@3.0.2': + resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} - data-view-buffer@1.0.1: - resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} - engines: {node: '>= 0.4'} + '@types/uuid@9.0.8': + resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} - data-view-byte-length@1.0.1: - resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} - engines: {node: '>= 0.4'} + '@types/webxr@0.5.19': + resolution: {integrity: sha512-4hxA+NwohSgImdTSlPXEqDqqFktNgmTXQ05ff1uWam05tNGroCMp4G+4XVl6qWm1p7GQ/9oD41kAYsSssF6Mzw==} - data-view-byte-offset@1.0.0: - resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} - engines: {node: '>= 0.4'} + '@types/which@1.3.2': + resolution: {integrity: sha512-8oDqyLC7eD4HM307boe2QWKyuzdzWBj56xI/imSl2cpL+U3tCMaTAkMJ4ee5JBZ/FsOJlvRGeIShiZDAl1qERA==} - date-fns@2.30.0: - resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} - engines: {node: '>=0.11'} + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - debounce@1.2.1: - resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} + '@types/yargs@17.0.32': + resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} - debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + '@types/yauzl@2.10.3': + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - debug@4.3.1: - resolution: {integrity: sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==} - engines: {node: '>=6.0'} + '@typescript-eslint/eslint-plugin@7.16.0': + resolution: {integrity: sha512-py1miT6iQpJcs1BiJjm54AMzeuMPBSPuKPlnT8HlfudbcS5rYeX5jajpLf3mrdRh9dA/Ec2FVUY0ifeVNDIhZw==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - supports-color: '*' + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 + typescript: '*' peerDependenciesMeta: - supports-color: + typescript: optional: true - debug@4.3.3: - resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} - engines: {node: '>=6.0'} + '@typescript-eslint/parser@7.16.0': + resolution: {integrity: sha512-ar9E+k7CU8rWi2e5ErzQiC93KKEFAXA2Kky0scAlPcxYblLt8+XZuHUZwlyfXILyQa95P6lQg+eZgh/dDs3+Vw==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - supports-color: '*' + eslint: ^8.56.0 + typescript: '*' peerDependenciesMeta: - supports-color: + typescript: optional: true - debug@4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + '@typescript-eslint/scope-manager@5.62.0': + resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - debug@4.3.6: - resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} - engines: {node: '>=6.0'} + '@typescript-eslint/scope-manager@7.16.0': + resolution: {integrity: sha512-8gVv3kW6n01Q6TrI1cmTZ9YMFi3ucDT7i7aI5lEikk2ebk1AEjrwX8MDTdaX5D7fPXMBLvnsaa0IFTAu+jcfOw==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/type-utils@7.16.0': + resolution: {integrity: sha512-j0fuUswUjDHfqV/UdW6mLtOQQseORqfdmoBNDFOqs9rvNVR2e+cmu6zJu/Ku4SDuqiJko6YnhwcL8x45r8Oqxg==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - supports-color: '*' + eslint: ^8.56.0 + typescript: '*' peerDependenciesMeta: - supports-color: + typescript: optional: true - decamelize@4.0.0: - resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} - engines: {node: '>=10'} - - decimal.js@10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} - - decompress-response@4.2.1: - resolution: {integrity: sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==} - engines: {node: '>=8'} + '@typescript-eslint/types@5.62.0': + resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} + '@typescript-eslint/types@7.16.0': + resolution: {integrity: sha512-fecuH15Y+TzlUutvUl9Cc2XJxqdLr7+93SQIbcZfd4XRGGKoxyljK27b+kxKamjRkU7FYC6RrbSCg0ALcZn/xw==} + engines: {node: ^18.18.0 || >=20.0.0} - dedent@1.5.3: - resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} + '@typescript-eslint/typescript-estree@5.62.0': + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - babel-plugin-macros: ^3.1.0 + typescript: '*' peerDependenciesMeta: - babel-plugin-macros: + typescript: optional: true - deep-eql@4.1.4: - resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} - engines: {node: '>=6'} - - deep-eql@5.0.2: - resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} - engines: {node: '>=6'} - - deep-equal@2.2.3: - resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} - engines: {node: '>= 0.4'} - - deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} - - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - - deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - - defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - - defer-to-connect@2.0.1: - resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} - engines: {node: '>=10'} - - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - - define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} - - defu@6.1.4: - resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} - - delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - - delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + '@typescript-eslint/typescript-estree@7.16.0': + resolution: {integrity: sha512-a5NTvk51ZndFuOLCh5OaJBELYc2O3Zqxfl3Js78VFE1zE46J2AaVuW+rEbVkQznjkmlzWsUI15BG5tQMixzZLw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true - depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} + '@typescript-eslint/utils@5.62.0': + resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} + '@typescript-eslint/utils@7.16.0': + resolution: {integrity: sha512-PqP4kP3hb4r7Jav+NiRCntlVzhxBNWq6ZQ+zQwII1y/G/1gdIPeYDCKr2+dH6049yJQsWZiHU6RlwvIFBXXGNA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 - destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + '@typescript-eslint/visitor-keys@5.62.0': + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - detect-gpu@5.0.38: - resolution: {integrity: sha512-36QeGHSXYcJ/RfrnPEScR8GDprbXFG4ZhXsfVNVHztZr38+fRxgHnJl3CjYXXjbeRUhu3ZZBJh6Lg0A9v0Qd8A==} + '@typescript-eslint/visitor-keys@7.16.0': + resolution: {integrity: sha512-rMo01uPy9C7XxG7AFsxa8zLnWXTF8N3PYclekWSrurvhwiw1eW88mrKiAYe6s53AUY57nTRz8dJsuuXdkAhzCg==} + engines: {node: ^18.18.0 || >=20.0.0} - detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} + '@ungap/promise-all-settled@1.1.2': + resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==} - detect-libc@2.0.3: - resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} - engines: {node: '>=8'} + '@ungap/structured-clone@1.2.0': + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - detect-newline@3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} - engines: {node: '>=8'} + '@use-gesture/core@10.3.1': + resolution: {integrity: sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw==} - devtools-protocol@0.0.901419: - resolution: {integrity: sha512-4INMPwNm9XRpBukhNbF7OB6fNTTCaI8pzy/fXg0xQzAy5h3zL1P8xT3QazgKqBrb/hAYwIBizqDBZ7GtJE74QQ==} + '@use-gesture/react@10.3.1': + resolution: {integrity: sha512-Yy19y6O2GJq8f7CHf7L0nxL8bf4PZCPaVOCgJrusOeFHY1LvHgYXnmnXg6N5iwAnbgbZCDjo60SiM6IPJi9C5g==} + peerDependencies: + react: '>= 16.8.0' - devtools-protocol@0.0.915197: - resolution: {integrity: sha512-JXt4akUoL62CtxKLQBxcJlI7gsCZyAQ1Qb/0MZJOz8VETazoJB6+IjUwTkECrvye9AnNLDQyyV00kz/vWXVifQ==} + '@vitejs/plugin-react-swc@3.7.0': + resolution: {integrity: sha512-yrknSb3Dci6svCd/qhHqhFPDSw0QtjumcqdKMoNNzmOl5lMXTTiqzjWtG4Qask2HdvvzaNgSunbQGet8/GrKdA==} + peerDependencies: + vite: ^4 || ^5 - devtools@7.11.0: - resolution: {integrity: sha512-V3mIskCVv+OrqgJf9EU4bvoOrEx+qQ+sNoyLxqzxkFgh0wwtYIhcMiqDluL8dBKlhToV16UsYDKoqa67ylNwOg==} - engines: {node: '>=12.0.0'} + '@vitest/coverage-v8@2.0.4': + resolution: {integrity: sha512-i4lx/Wpg5zF1h2op7j0wdwuEQxaL/YTwwQaKuKMHYj7MMh8c7I4W7PNfOptZBCSBZI0z1qwn64o0pM/pA8Tz1g==} + peerDependencies: + vitest: 2.0.4 - diff-sequences@28.1.1: - resolution: {integrity: sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + '@vitest/expect@2.0.4': + resolution: {integrity: sha512-39jr5EguIoanChvBqe34I8m1hJFI4+jxvdOpD7gslZrVQBKhh8H9eD7J/LJX4zakrw23W+dITQTDqdt43xVcJw==} - diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@vitest/expect@2.0.5': + resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==} - diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} + '@vitest/pretty-format@2.0.4': + resolution: {integrity: sha512-RYZl31STbNGqf4l2eQM1nvKPXE0NhC6Eq0suTTePc4mtMQ1Fn8qZmjV4emZdEdG2NOWGKSCrHZjmTqDCDoeFBw==} - diff@5.0.0: - resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} - engines: {node: '>=0.3.1'} + '@vitest/pretty-format@2.0.5': + resolution: {integrity: sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==} - diff@5.2.0: - resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} - engines: {node: '>=0.3.1'} + '@vitest/pretty-format@2.1.1': + resolution: {integrity: sha512-SjxPFOtuINDUW8/UkElJYQSFtnWX7tMksSGW0vfjxMneFqxVr8YJ979QpMbDW7g+BIiq88RAGDjf7en6rvLPPQ==} - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} + '@vitest/runner@2.0.4': + resolution: {integrity: sha512-Gk+9Su/2H2zNfNdeJR124gZckd5st4YoSuhF1Rebi37qTXKnqYyFCd9KP4vl2cQHbtuVKjfEKrNJxHHCW8thbQ==} - doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} + '@vitest/snapshot@2.0.4': + resolution: {integrity: sha512-or6Mzoz/pD7xTvuJMFYEtso1vJo1S5u6zBTinfl+7smGUhqybn6VjzCDMhmTyVOFWwkCMuNjmNNxnyXPgKDoPw==} - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} + '@vitest/spy@2.0.4': + resolution: {integrity: sha512-uTXU56TNoYrTohb+6CseP8IqNwlNdtPwEO0AWl+5j7NelS6x0xZZtP0bDWaLvOfUbaYwhhWp1guzXUxkC7mW7Q==} - dom-accessibility-api@0.5.16: - resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} + '@vitest/spy@2.0.5': + resolution: {integrity: sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==} - dom-accessibility-api@0.6.3: - resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} + '@vitest/utils@2.0.4': + resolution: {integrity: sha512-Zc75QuuoJhOBnlo99ZVUkJIuq4Oj0zAkrQ2VzCqNCx6wAwViHEh5Fnp4fiJTE9rA+sAoXRf00Z9xGgfEzV6fzQ==} - dom-helpers@5.2.1: - resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} + '@vitest/utils@2.0.5': + resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} - dom-walk@0.1.2: - resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==} + '@vitest/utils@2.1.1': + resolution: {integrity: sha512-Y6Q9TsI+qJ2CC0ZKj6VBb+T8UPz593N113nnUykqwANqhgf3QkZeHFlusgKLTqrnVHbj/XDKZcDHol+dxVT+rQ==} - draco3d@1.5.7: - resolution: {integrity: sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ==} + '@wdio/browserstack-service@7.11.1': + resolution: {integrity: sha512-TC2g6Kor15uwBKvupD2GGyT3QZnYS2sQ8MSl5YZacrWXgGvYdp7JADS/gQrTVy4beH1MrN8Ae8KnalLCh/D2GQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@wdio/cli': ^7.0.0 - duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + '@wdio/cli@7.11.1': + resolution: {integrity: sha512-CGFX7vy5U9i9ccsUNmcOv+LzFaoKNFPr1+mopELld/b0wUVN9yM70jfgmUMjpHQnAMl3lqxIjBQuDrxE8/qTEw==} + engines: {node: '>=12.0.0'} + hasBin: true - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + '@wdio/config@7.10.1': + resolution: {integrity: sha512-EA+kJBNPeIxkkyilHcmiIwqjtOUcWx5FVp69kSBs4BN2fG+6CgpzoVecuTm/qPU6D0DT5KIfxVR4FRHCF99F/g==} + engines: {node: '>=12.0.0'} - easy-table@1.1.0: - resolution: {integrity: sha512-oq33hWOSSnl2Hoh00tZWaIPi1ievrD9aFG82/IgjlycAnW9hHx5PkJiXpxPsgEE+H7BsbVQXFVFST8TEXS6/pA==} + '@wdio/local-runner@7.11.1': + resolution: {integrity: sha512-aoRQg46RMfNdFCVqtHDYhIyhLoeXyOHLLv7Teyp+FJuqVNtpQT2eZACf8sZL2IfF7ZBP6JtvoV/MJ7sMXpOV2A==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@wdio/cli': ^7.0.0 - easy-table@1.2.0: - resolution: {integrity: sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww==} + '@wdio/logger@7.7.0': + resolution: {integrity: sha512-XX/OkC8NlvsBdhKsb9j7ZbuQtF/Vuo0xf38PXdqYtVezOrYbDuba0hPG++g/IGNuAF34ZbSi+49cvz4u5w92kQ==} + engines: {node: '>=12.0.0'} - edge-paths@2.2.1: - resolution: {integrity: sha512-AI5fC7dfDmCdKo3m5y7PkYE8m6bMqR6pvVpgtrZkkhcJXFLelUgkjrhk3kXXx8Kbw2cRaTT4LkOR7hqf39KJdw==} + '@wdio/mocha-framework@7.11.1': + resolution: {integrity: sha512-66P2eTOso9W9Y0IMzhHmYZ98bfBDIkwswqJzGCrAbhuFpvOnqboF8wlrfUUADJ3b2rIVmsw02FCECNPS2EnQyQ==} + engines: {node: '>=12.0.0'} - ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + '@wdio/protocols@7.11.0': + resolution: {integrity: sha512-yWKmCUmbHB1AH0U3lebXRh/G3+JtsD9Tx9fevgP9qA7Hq+rHj7KqUf15k1lPPodhOms8ncPj0J6ET1E13wh2qg==} + engines: {node: '>=12.0.0'} - ejs@3.1.10: - resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} - engines: {node: '>=0.10.0'} - hasBin: true + '@wdio/repl@7.11.0': + resolution: {integrity: sha512-2GtWkUqepQ0QGvdo7fLWiZklf/O4eh3AB4vcafwGVKQhE8bpSh0l8/fkXOzYU7oK/PBGHJyWXxPOVf+H5DAViA==} + engines: {node: '>=12.0.0'} - electron-to-chromium@1.4.827: - resolution: {integrity: sha512-VY+J0e4SFcNfQy19MEoMdaIcZLmDCprqvBtkii1WTCTQHpRvf5N8+3kTYCgL/PcntvwQvmMJWTuDPsq+IlhWKQ==} + '@wdio/reporter@7.10.1': + resolution: {integrity: sha512-zgyHQc6j+GzlOnwlu3yhCQ8yAaTfo0MpNQG1GCiqtSKJ2c50J2HR5d9LYWrM7L8v13X4YWMxhW+3oYT+f35Gjw==} + engines: {node: '>=12.0.0'} - electron-to-chromium@1.5.7: - resolution: {integrity: sha512-6FTNWIWMxMy/ZY6799nBlPtF1DFDQ6VQJ7yyDP27SJNt5lwtQ5ufqVvHylb3fdQefvRcgA3fKcFMJi9OLwBRNw==} + '@wdio/runner@7.11.1': + resolution: {integrity: sha512-mPKqdpk/WTwpwlCg84J/Y+6ZURUSZ8jrSoBpCVsvs9NesdIkHtxLfvlA2btmXXRw5Al7VBtN/FFCBFBp5db+1Q==} + engines: {node: '>=12.0.0'} - emittery@0.13.1: - resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} - engines: {node: '>=12'} + '@wdio/spec-reporter@7.10.1': + resolution: {integrity: sha512-Yo/XvBY3OkOhs3m32KcbeilJowVO4Ii0ZeNtn4KPPV6Z4pYglV8vYdTDJ/BIinuBBJWJPbS6EFLZtrsaSuuFYg==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@wdio/cli': ^7.0.0 - emoji-regex@10.3.0: - resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} + '@wdio/types@7.10.1': + resolution: {integrity: sha512-wEDmdux2VCGO4wWVj7v9UbVRqQG7liHnDVPYJuQURPj3hJMiQQTIHwRi7EmwYfbJ9/mRoHBOGeZt7nSvtcjeaQ==} + engines: {node: '>=12.0.0'} - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + '@wdio/utils@7.11.0': + resolution: {integrity: sha512-0n5mZha2QktV0181nMhw+IQ8MgYrqyvVDjP20P7JEnl6hehSkyXTAYQcYuKaw5AAVqipV3Eh96JBi5CnhpsoKQ==} + engines: {node: '>=12.0.0'} - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + '@zeit/schemas@2.6.0': + resolution: {integrity: sha512-uUrgZ8AxS+Lio0fZKAipJjAh415JyrOZowliZAzmnJSsf7piVL5w+G0+gFJ0KSu3QRhvui/7zuvpLz03YjXAhg==} - encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} + abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} - engine.io-client@6.5.4: - resolution: {integrity: sha512-GeZeeRjpD2qf49cZQ0Wvh/8NJNfeXkXXcoGh+F77oEAgo9gUHwT1fCRxSNU+YEEaysOJTnsFHmM5oAcPy4ntvQ==} + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - engine.io-parser@5.2.3: - resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} - engines: {node: '>=10.0.0'} + acorn-walk@7.2.0: + resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} + engines: {node: '>=0.4.0'} - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} + acorn-walk@8.3.3: + resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} + engines: {node: '>=0.4.0'} - envinfo@7.13.0: - resolution: {integrity: sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==} - engines: {node: '>=4'} + acorn@7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + engines: {node: '>=0.4.0'} hasBin: true - error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - - es-abstract@1.23.3: - resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} - engines: {node: '>= 0.4'} + acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + engines: {node: '>=0.4.0'} + hasBin: true - es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} - engines: {node: '>= 0.4'} + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} + agent-base@7.1.1: + resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} + engines: {node: '>= 14'} - es-get-iterator@1.1.3: - resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - es-iterator-helpers@1.0.19: - resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} - engines: {node: '>= 0.4'} + ajv@6.5.3: + resolution: {integrity: sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==} - es-module-lexer@1.5.4: - resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + ansi-align@2.0.0: + resolution: {integrity: sha512-TdlOggdA/zURfMYa7ABC66j+oqfMew58KpJMbUlH3bcZP1b+cBHIHDDn5uH9INsxrHBPjsqM0tDB4jPTF/vgJA==} - es-object-atoms@1.0.0: - resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} - engines: {node: '>= 0.4'} + ansi-colors@4.1.1: + resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} + engines: {node: '>=6'} - es-set-tostringtag@2.0.3: - resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} - engines: {node: '>= 0.4'} + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} - es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + ansi-escapes@6.2.1: + resolution: {integrity: sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==} + engines: {node: '>=14.16'} - es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} + ansi-regex@2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} + engines: {node: '>=0.10.0'} - esbuild-register@3.5.0: - resolution: {integrity: sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==} - peerDependencies: - esbuild: '>=0.12 <1' + ansi-regex@3.0.1: + resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} + engines: {node: '>=4'} - esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} - engines: {node: '>=12'} - hasBin: true + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} + ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + ansi-styles@2.2.1: + resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} + engines: {node: '>=0.10.0'} - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} - escape-string-regexp@2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} engines: {node: '>=10'} - escodegen@2.1.0: - resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} - engines: {node: '>=6.0'} - hasBin: true + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} - eslint-plugin-react-hooks@4.6.2: - resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + any-base@1.1.0: + resolution: {integrity: sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==} - eslint-plugin-react@7.35.0: - resolution: {integrity: sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} - eslint-plugin-simple-import-sort@12.1.1: - resolution: {integrity: sha512-6nuzu4xwQtE3332Uz0to+TxDQYRLTKRESSc2hefVT48Zc8JthmN23Gx9lnYhu0FtkRSL1oxny3kJ2aveVhmOVA==} - peerDependencies: - eslint: '>=5.0.0' + aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - eslint-plugin-storybook@0.8.0: - resolution: {integrity: sha512-CZeVO5EzmPY7qghO2t64oaFM+8FTaD4uzOEjHKp516exyTKo+skKAL9GI3QALS2BXhyALJjNtwbmr1XinGE8bA==} - engines: {node: '>= 18'} - peerDependencies: - eslint: '>=6' + arch@2.2.0: + resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} + archiver-utils@2.1.0: + resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==} + engines: {node: '>= 6'} - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + archiver-utils@3.0.4: + resolution: {integrity: sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==} + engines: {node: '>= 10'} - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + archiver@5.3.2: + resolution: {integrity: sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==} + engines: {node: '>= 10'} - eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true + are-we-there-yet@2.0.0: + resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} + engines: {node: '>=10'} + deprecated: This package is no longer supported. - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + arg@2.0.0: + resolution: {integrity: sha512-XxNTUzKnz1ctK3ZIcI2XUPlD96wbHP2nGqkPKpvk/HNRlPveYrXIVSTk9m3LcqOgDPg3B1nMvdV/K8wZd7PG4w==} - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true + arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} - engines: {node: '>=0.10'} + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} + aria-query@4.2.2: + resolution: {integrity: sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==} + engines: {node: '>=6.0'} - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} + aria-query@5.1.3: + resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} + aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} - estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} + array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} - etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} - event-stream@3.3.4: - resolution: {integrity: sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==} + array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} - eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} - eventemitter3@5.0.1: - resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} - execa@0.7.0: - resolution: {integrity: sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==} - engines: {node: '>=4'} + array.prototype.tosorted@1.1.4: + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} + engines: {node: '>= 0.4'} - execa@0.8.0: - resolution: {integrity: sha512-zDWS+Rb1E8BlqqhALSt9kUhss8Qq4nN3iof3gsOdyINksElaPyNBtKUMTR62qhvgVWR0CqCX7sdnKe4MnUbFEA==} + arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} + + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + + ast-types@0.16.1: + resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} engines: {node: '>=4'} - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} + async-exit-hook@2.0.1: + resolution: {integrity: sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==} + engines: {node: '>=0.12.0'} - execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} + async@3.2.5: + resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} - exif-parser@0.1.12: - resolution: {integrity: sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==} + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - exit@0.1.2: - resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} - engines: {node: '>= 0.8.0'} + atob@2.1.2: + resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} + engines: {node: '>= 4.5.0'} + hasBin: true - expect-webdriverio@3.6.0: - resolution: {integrity: sha512-8HuVToXDVzkKgUKIUzW/v3bP4ZoMDEwCjX9QmlRlMIvjt3HOSzSIBnRMv8lpeVTUKoR9DZNr/lSuKH4Amx4BBg==} + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} - expect@28.1.3: - resolution: {integrity: sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + axios@1.6.8: + resolution: {integrity: sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==} - expect@29.7.0: - resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + axios@1.7.4: + resolution: {integrity: sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==} - express@4.19.2: - resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} - engines: {node: '>= 0.10.0'} + babel-plugin-macros@3.1.0: + resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} + engines: {node: '>=10', npm: '>=6'} - external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - extract-zip@2.0.1: - resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} - engines: {node: '>= 10.17.0'} - hasBin: true + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - fast-deep-equal@2.0.1: - resolution: {integrity: sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==} + better-opn@3.0.2: + resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==} + engines: {node: '>=12.0.0'} - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + bidi-js@1.0.3: + resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==} - fast-equals@4.0.3: - resolution: {integrity: sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==} + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + bmp-js@0.1.0: + resolution: {integrity: sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==} - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + body-parser@1.20.2: + resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - fast-safe-stringify@2.1.1: - resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + boxen@1.3.0: + resolution: {integrity: sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==} + engines: {node: '>=4'} - fast-url-parser@1.1.3: - resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + browser-assert@1.2.1: + resolution: {integrity: sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==} - fb-watchman@2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + browser-stdout@1.3.1: + resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} - fd-package-json@1.2.0: - resolution: {integrity: sha512-45LSPmWf+gC5tdCQMNH4s9Sr00bIkiD9aN7dc5hqkrEw1geRYyDQS1v1oMHAW3ysfxfndqGsrDREHHjNNbKUfA==} + browserslist@4.23.2: + resolution: {integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true - fd-slicer@1.1.0: - resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + browserslist@4.23.3: + resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true - fflate@0.6.10: - resolution: {integrity: sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg==} + browserstack-local@1.5.5: + resolution: {integrity: sha512-jKne7yosrMcptj3hqxp36TP9k0ZW2sCqhyurX24rUL4G3eT7OLgv+CSQN8iq5dtkv5IK+g+v8fWvsiC/S9KxMg==} - fflate@0.8.2: - resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} + buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} + buffer-equal@0.0.1: + resolution: {integrity: sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==} + engines: {node: '>=0.4.0'} - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - file-type@16.5.4: - resolution: {integrity: sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==} - engines: {node: '>=10'} + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - filelist@1.0.4: - resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} + bytes@3.0.0: + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + engines: {node: '>= 0.8'} - finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} - find-cache-dir@2.1.0: - resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==} - engines: {node: '>=6'} + cac@3.0.4: + resolution: {integrity: sha512-hq4rxE3NT5PlaEiVV39Z45d6MoFcQZG5dsgJqtAUeOz3408LEQAElToDkf9i5IYSCOmK0If/81dLg7nKxqPR0w==} + engines: {node: '>=4'} - find-cache-dir@3.3.2: - resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} - find-root@1.1.0: - resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} - - find-up@1.1.2: - resolution: {integrity: sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==} - engines: {node: '>=0.10.0'} - - find-up@3.0.0: - resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} - engines: {node: '>=6'} + cacheable-lookup@5.0.4: + resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} + engines: {node: '>=10.6.0'} - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + cacheable-request@7.0.4: + resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} engines: {node: '>=8'} - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - - flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} - flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} - flow-parser@0.239.1: - resolution: {integrity: sha512-topOrETNxJ6T2gAnQiWqAlzGPj8uI2wtmNOlDIMNB+qyvGJZ6R++STbUOTAYmvPhOMz2gXnXPH0hOvURYmrBow==} - engines: {node: '>=0.4.0'} + camelcase-keys@3.0.0: + resolution: {integrity: sha512-U4E6A6aFyYnNW+tDt5/yIUKQURKXe3WMFPfX4FxrQFcwZ/R08AUk1xWcUtlr7oq6CV07Ji+aa69V2g7BSpblnQ==} + engines: {node: '>=0.10.0'} - follow-redirects@1.15.6: - resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true + camelcase@3.0.0: + resolution: {integrity: sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==} + engines: {node: '>=0.10.0'} - for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + camelcase@4.1.0: + resolution: {integrity: sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==} + engines: {node: '>=4'} - foreground-child@3.2.1: - resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} - engines: {node: '>=14'} + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} - form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} + camera-controls@2.8.5: + resolution: {integrity: sha512-7VTwRk7Nu1nRKsY7bEt9HVBfKt8DETvzyYhLN4OW26OByBayMDB5fUaNcPI+z++vG23RH5yqn6ZRhZcgLQy2rA==} + peerDependencies: + three: '>=0.126.1' - forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} + caniuse-lite@1.0.30001641: + resolution: {integrity: sha512-Phv5thgl67bHYo1TtMY/MurjkHhV4EDaCosezRXgZ8jzA/Ub+wjxAvbGvjoFENStinwi5kCyOYV3mi5tOGykwA==} - fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} + caniuse-lite@1.0.30001651: + resolution: {integrity: sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==} - from@0.1.7: - resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==} + canvas@2.11.2: + resolution: {integrity: sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==} + engines: {node: '>=6'} - fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + centra@2.7.0: + resolution: {integrity: sha512-PbFMgMSrmgx6uxCdm57RUos9Tc3fclMvhLSATYN39XsDV29B89zZ3KA89jmY0vwSGazyU+uerqwa6t+KaodPcg==} - fs-extra@10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + chai@5.1.1: + resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} engines: {node: '>=12'} - fs-extra@11.2.0: - resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} - engines: {node: '>=14.14'} - - fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} - - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] + chalk@1.1.3: + resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} + engines: {node: '>=0.10.0'} - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + chalk@2.4.1: + resolution: {integrity: sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==} + engines: {node: '>=4'} - function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} - engines: {node: '>= 0.4'} + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} - functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + chalk@3.0.0: + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + engines: {node: '>=8'} - gauge@3.0.2: - resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - deprecated: This package is no longer supported. - - gaze@1.1.3: - resolution: {integrity: sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==} - engines: {node: '>= 4.0.0'} - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} + chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} + chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - get-east-asian-width@1.2.0: - resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} - engines: {node: '>=18'} + check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} - get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} - get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} - engines: {node: '>= 0.4'} + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} - get-package-type@0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} + chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - get-port@5.1.1: - resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} - engines: {node: '>=8'} + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} - get-stream@3.0.0: - resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==} - engines: {node: '>=4'} + chrome-launcher@0.14.2: + resolution: {integrity: sha512-Nk8DUCIfPR6p9WClPPFeP2ztpAdkT8xueoiDS03csea1uoJjm4w0p5Oy1hjykyjT1EQ0MMrEshLD3C8gHXyiZw==} + engines: {node: '>=12.13.0'} - get-stream@5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} + cli-boxes@1.0.0: + resolution: {integrity: sha512-3Fo5wu8Ytle8q9iCzS4D2MWVL2X7JVWRiS1BnXbTFDhS9c/REkM9vd1AmabsoZoY5/dGi5TT9iKL8Kb6DeBRQg==} + engines: {node: '>=0.10.0'} - get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} + cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} - get-symbol-description@1.0.2: - resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} - engines: {node: '>= 0.4'} + cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - gifwrap@0.9.4: - resolution: {integrity: sha512-MDMwbhASQuVeD4JKd1fKgNgCRL3fGqMM4WaqpNhWO0JiMOAjbQdumbs4BbBZEy9/M00EHEjKN3HieVhCUlwjeQ==} + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} - giget@1.2.3: - resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==} - hasBin: true + cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} - github-slugger@2.0.0: - resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + cli-width@3.0.0: + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} + engines: {node: '>= 10'} - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} + clipboardy@1.2.3: + resolution: {integrity: sha512-2WNImOvCRe6r63Gk9pShfkwXsVtKCroMAevIbiae021mS850UkWPbevxsBz3tnvjZIEGvlwaqCPsw+4ulzNgJA==} + engines: {node: '>=4'} - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} + cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} - glob-promise@4.2.2: - resolution: {integrity: sha512-xcUzJ8NWN5bktoTIX7eOclO1Npxd/dyVqUJxlLIDasT4C7KZyqlPIwkdJ0Ypiy3p2ZKahTjK4M9uC3sNSfNMzw==} + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} - peerDependencies: - glob: ^7.1.6 - - glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} - hasBin: true - glob@7.1.7: - resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} - deprecated: Glob versions prior to v9 are no longer supported + clone-response@1.0.3: + resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} - glob@7.2.0: - resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} - deprecated: Glob versions prior to v9 are no longer supported + clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported + clsx@1.2.1: + resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} + engines: {node: '>=6'} - global@4.4.0: - resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==} + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} - globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} - globalthis@1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} - engines: {node: '>= 0.4'} + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - globby@14.0.2: - resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==} - engines: {node: '>=18'} + color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true - globule@1.3.4: - resolution: {integrity: sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg==} - engines: {node: '>= 0.10'} + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - glsl-noise@0.0.0: - resolution: {integrity: sha512-b/ZCF6amfAUb7dJM/MxRs7AetQEahYzJ8PtgfrmEdtw6uyGOr+ZSGtgjFm6mfsBkxJ4d2W7kg+Nlqzqvn3Bc0w==} + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} - gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} - got@11.8.6: - resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} - engines: {node: '>=10.19.0'} + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} - grapheme-splitter@1.0.4: - resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + compare-versions@4.1.4: + resolution: {integrity: sha512-FemMreK9xNyL8gQevsdRMrvO4lFCkQP7qbuktn1q8ndcNk1+0mz7lgE7b/sNvbhVgY4w6tMN1FDp6aADjqw2rw==} - growl@1.10.5: - resolution: {integrity: sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==} - engines: {node: '>=4.x'} + compress-commons@4.1.2: + resolution: {integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==} + engines: {node: '>= 10'} - has-ansi@2.0.0: - resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} - engines: {node: '>=0.10.0'} + compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} - has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + compression@1.7.3: + resolution: {integrity: sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==} + engines: {node: '>= 0.8.0'} - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} + concurrently@6.5.1: + resolution: {integrity: sha512-FlSwNpGjWQfRwPLXvJ/OgysbBxPkWpiVjy1042b0U7on7S7qwwMIILRj7WTN1mTgqa582bG6NFuScOoh6Zgdag==} + engines: {node: '>=10.0.0'} + hasBin: true - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + concurrently@8.2.2: + resolution: {integrity: sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==} + engines: {node: ^14.13.0 || >=16.0.0} + hasBin: true - has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} - engines: {node: '>= 0.4'} + consola@2.15.3: + resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} - has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} + console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} + console.table@0.10.0: + resolution: {integrity: sha512-dPyZofqggxuvSf7WXvNjuRfnsOk1YazkVP8FdxH4tcH2c37wc79/Yl6Bhr7Lsu00KMgy2ql/qCMuNu8xctZM8g==} + engines: {node: '> 0.10'} - has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + content-disposition@0.5.2: + resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} + engines: {node: '>= 0.6'} - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} + content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} - hast-util-heading-rank@3.0.0: - resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==} + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} - hast-util-is-element@3.0.0: - resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} - hast-util-to-string@3.0.0: - resolution: {integrity: sha512-OGkAxX1Ua3cbcW6EJ5pT/tslVb90uViVkcJ4ZZIMW/R33DX/AkcJcRrPebPwJkHYwlDHXz4aIwvAAaAdtrACFA==} + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true + cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - history@5.3.0: - resolution: {integrity: sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==} + cookie@0.6.0: + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + engines: {node: '>= 0.6'} - hls.js@1.3.5: - resolution: {integrity: sha512-uybAvKS6uDe0MnWNEPnO0krWVr+8m2R0hJ/viql8H3MVK+itq8gGQuIYoFHL3rECkIpNH98Lw8YuuWMKZxp3Ew==} + core-js-pure@3.37.1: + resolution: {integrity: sha512-J/r5JTHSmzTxbiYYrzXg9w1VpqrYt+gexenBE9pugeyhwPZTAEJddyiReJWsLO6uNQ8xJZFbod6XC7KKwatCiA==} - hoist-non-react-statics@3.3.2: - resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} - html-encoding-sniffer@4.0.0: - resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} - engines: {node: '>=18'} + crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true - html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + crc32-stream@4.0.3: + resolution: {integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==} + engines: {node: '>= 10'} - html-tags@3.3.1: - resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} - engines: {node: '>=8'} + crc@3.8.0: + resolution: {integrity: sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==} - http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} + cross-env@7.0.3: + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true - http-proxy-agent@7.0.2: - resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} - engines: {node: '>= 14'} + cross-spawn@4.0.2: + resolution: {integrity: sha512-yAXz/pA1tD8Gtg2S98Ekf/sewp3Lcp3YoFKJ4Hkp5h5yLWnKVTDU0kwjKJ8NDCYcfTLfyGkzTikst+jWypT1iA==} - http2-wrapper@1.0.3: - resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} - engines: {node: '>=10.19.0'} + cross-spawn@5.1.0: + resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} - https-proxy-agent@5.0.0: - resolution: {integrity: sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==} - engines: {node: '>= 6'} + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} - https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} + css-shorthand-properties@1.1.1: + resolution: {integrity: sha512-Md+Juc7M3uOdbAFwOYlTrccIZ7oCFuzrhKYQjdeUEW/sE1hv17Jp/Bws+ReOPpGVBTYCBoYo+G17V5Qo8QQ75A==} - https-proxy-agent@7.0.4: - resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} - engines: {node: '>= 14'} + css-value@0.0.1: + resolution: {integrity: sha512-FUV3xaJ63buRLgHrLQVlVgQnQdR4yqdLGaDu7g8CQcWjInDfM9plBTPI9FRfpahju1UBSaMckeb2/46ApS/V1Q==} - https-proxy-agent@7.0.5: - resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} - engines: {node: '>= 14'} + css.escape@1.5.1: + resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} + cssstyle@4.0.1: + resolution: {integrity: sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==} + engines: {node: '>=18'} - human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - husky@9.0.11: - resolution: {integrity: sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==} + data-urls@5.0.0: + resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} engines: {node: '>=18'} - hasBin: true - iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} + data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} - iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} + data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} - ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} - ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} - engines: {node: '>= 4'} + date-fns@2.30.0: + resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} + engines: {node: '>=0.11'} - image-q@4.0.0: - resolution: {integrity: sha512-PfJGVgIfKQJuq3s0tTDOKtztksibuUEbJQIYT3by6wctQo+Rdlh7ef4evJ5NCdxY4CfMbvFkocEwbl4BF8RlJw==} + debounce@1.2.1: + resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} - immediate@3.0.6: - resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true - immer@9.0.21: - resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} + debug@4.3.1: + resolution: {integrity: sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} + debug@4.3.3: + resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true - import-local@3.2.0: - resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} - engines: {node: '>=8'} - hasBin: true + debug@4.3.5: + resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} + debug@4.3.6: + resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true - indent-string@3.2.0: - resolution: {integrity: sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==} - engines: {node: '>=4'} + decamelize@4.0.0: + resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} + engines: {node: '>=10'} - indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + + decompress-response@4.2.1: + resolution: {integrity: sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==} engines: {node: '>=8'} - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} + engines: {node: '>=6'} - ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + deep-equal@2.2.3: + resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} + engines: {node: '>= 0.4'} - inquirer@8.2.6: - resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} - engines: {node: '>=12.0.0'} + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} - internal-slot@1.0.7: - resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} - engines: {node: '>= 0.4'} + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} - is-absolute-url@4.0.1: - resolution: {integrity: sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - is-arguments@1.1.1: - resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} - engines: {node: '>= 0.4'} + defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} - is-array-buffer@3.0.4: - resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} - is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} - is-async-function@2.0.0: - resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} - is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + detect-gpu@5.0.38: + resolution: {integrity: sha512-36QeGHSXYcJ/RfrnPEScR8GDprbXFG4ZhXsfVNVHztZr38+fRxgHnJl3CjYXXjbeRUhu3ZZBJh6Lg0A9v0Qd8A==} + + detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} - is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} + devtools-protocol@0.0.901419: + resolution: {integrity: sha512-4INMPwNm9XRpBukhNbF7OB6fNTTCaI8pzy/fXg0xQzAy5h3zL1P8xT3QazgKqBrb/hAYwIBizqDBZ7GtJE74QQ==} - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} + devtools-protocol@0.0.915197: + resolution: {integrity: sha512-JXt4akUoL62CtxKLQBxcJlI7gsCZyAQ1Qb/0MZJOz8VETazoJB6+IjUwTkECrvye9AnNLDQyyV00kz/vWXVifQ==} - is-core-module@2.14.0: - resolution: {integrity: sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==} - engines: {node: '>= 0.4'} + devtools@7.11.0: + resolution: {integrity: sha512-V3mIskCVv+OrqgJf9EU4bvoOrEx+qQ+sNoyLxqzxkFgh0wwtYIhcMiqDluL8dBKlhToV16UsYDKoqa67ylNwOg==} + engines: {node: '>=12.0.0'} - is-core-module@2.15.0: - resolution: {integrity: sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==} - engines: {node: '>= 0.4'} + diff-sequences@28.1.1: + resolution: {integrity: sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - is-data-view@1.0.1: - resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} - engines: {node: '>= 0.4'} + diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} - is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} + diff@5.0.0: + resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} + engines: {node: '>=0.3.1'} - is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} + engines: {node: '>=0.3.1'} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} - hasBin: true - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} + doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + dom-accessibility-api@0.5.16: + resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} + + dom-accessibility-api@0.6.3: + resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} - is-finalizationregistry@1.0.2: - resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + dom-helpers@5.2.1: + resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} - is-fullwidth-code-point@2.0.0: - resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} - engines: {node: '>=4'} + dom-walk@0.1.2: + resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==} - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} + draco3d@1.5.7: + resolution: {integrity: sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ==} - is-fullwidth-code-point@4.0.0: - resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} - engines: {node: '>=12'} + duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - is-fullwidth-code-point@5.0.0: - resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} - engines: {node: '>=18'} + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - is-function@1.0.2: - resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==} + easy-table@1.1.0: + resolution: {integrity: sha512-oq33hWOSSnl2Hoh00tZWaIPi1ievrD9aFG82/IgjlycAnW9hHx5PkJiXpxPsgEE+H7BsbVQXFVFST8TEXS6/pA==} - is-generator-fn@2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} - engines: {node: '>=6'} + easy-table@1.2.0: + resolution: {integrity: sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww==} - is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} - engines: {node: '>= 0.4'} + edge-paths@2.2.1: + resolution: {integrity: sha512-AI5fC7dfDmCdKo3m5y7PkYE8m6bMqR6pvVpgtrZkkhcJXFLelUgkjrhk3kXXx8Kbw2cRaTT4LkOR7hqf39KJdw==} - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + ejs@3.1.10: + resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} engines: {node: '>=0.10.0'} + hasBin: true - is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} + electron-to-chromium@1.4.827: + resolution: {integrity: sha512-VY+J0e4SFcNfQy19MEoMdaIcZLmDCprqvBtkii1WTCTQHpRvf5N8+3kTYCgL/PcntvwQvmMJWTuDPsq+IlhWKQ==} - is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} + electron-to-chromium@1.5.7: + resolution: {integrity: sha512-6FTNWIWMxMy/ZY6799nBlPtF1DFDQ6VQJ7yyDP27SJNt5lwtQ5ufqVvHylb3fdQefvRcgA3fKcFMJi9OLwBRNw==} - is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} + emoji-regex@10.3.0: + resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} - is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} + encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} - is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - is-plain-object@2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} - engines: {node: '>=0.10.0'} + engine.io-client@6.5.4: + resolution: {integrity: sha512-GeZeeRjpD2qf49cZQ0Wvh/8NJNfeXkXXcoGh+F77oEAgo9gUHwT1fCRxSNU+YEEaysOJTnsFHmM5oAcPy4ntvQ==} - is-plain-object@5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} - engines: {node: '>=0.10.0'} + engine.io-parser@5.2.3: + resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} + engines: {node: '>=10.0.0'} - is-potential-custom-element-name@1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} - is-promise@2.2.2: - resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + es-abstract@1.23.3: + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} engines: {node: '>= 0.4'} - is-running@2.1.0: - resolution: {integrity: sha512-mjJd3PujZMl7j+D395WTIO5tU5RIDBfVSRtRR4VOJou3H66E38UjbjvDGh3slJzPuolsb+yQFqwHNNdyp5jg3w==} - - is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} engines: {node: '>= 0.4'} - is-shared-array-buffer@1.0.3: - resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - is-stream@1.1.0: - resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} - engines: {node: '>=0.10.0'} + es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} + es-iterator-helpers@1.0.19: + resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} + engines: {node: '>= 0.4'} - is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} - is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} engines: {node: '>= 0.4'} - is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} engines: {node: '>= 0.4'} - is-typed-array@1.1.13: - resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + + es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} - is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} + esbuild-register@3.5.0: + resolution: {integrity: sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==} + peerDependencies: + esbuild: '>=0.12 <1' - is-utf8@0.2.1: - resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true - is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} + escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} - is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - is-weakset@2.0.3: - resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} - engines: {node: '>= 0.4'} + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} - is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} engines: {node: '>=8'} - isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + eslint-plugin-react-hooks@4.6.2: + resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - isobject@3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} - engines: {node: '>=0.10.0'} + eslint-plugin-react@7.35.0: + resolution: {integrity: sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} - engines: {node: '>=8'} + eslint-plugin-simple-import-sort@12.1.1: + resolution: {integrity: sha512-6nuzu4xwQtE3332Uz0to+TxDQYRLTKRESSc2hefVT48Zc8JthmN23Gx9lnYhu0FtkRSL1oxny3kJ2aveVhmOVA==} + peerDependencies: + eslint: '>=5.0.0' - istanbul-lib-instrument@5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} - engines: {node: '>=8'} + eslint-plugin-storybook@0.8.0: + resolution: {integrity: sha512-CZeVO5EzmPY7qghO2t64oaFM+8FTaD4uzOEjHKp516exyTKo+skKAL9GI3QALS2BXhyALJjNtwbmr1XinGE8bA==} + engines: {node: '>= 18'} + peerDependencies: + eslint: '>=6' - istanbul-lib-instrument@6.0.3: - resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} - engines: {node: '>=10'} + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} - istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - istanbul-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} - engines: {node: '>=10'} + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - istanbul-lib-source-maps@5.0.6: - resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} - engines: {node: '>=10'} + eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true - istanbul-reports@3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} - engines: {node: '>=8'} + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - iterare@1.2.1: - resolution: {integrity: sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==} - engines: {node: '>=6'} + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} - iterator.prototype@1.1.2: - resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} - its-fine@1.2.5: - resolution: {integrity: sha512-fXtDA0X0t0eBYAGLVM5YsgJGsJ5jEmqZEPrGbzdf5awjv0xE7nqv3TVnvtUF060Tkes15DbDAKW/I48vsb6SyA==} - peerDependencies: - react: '>=18.0' + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} - jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} - jake@10.9.1: - resolution: {integrity: sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w==} - engines: {node: '>=10'} - hasBin: true + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - jasmine-core@3.99.1: - resolution: {integrity: sha512-Hu1dmuoGcZ7AfyynN3LsfruwMbxMALMka+YtZeGoLuDEySVmVAPaonkNoBRIw/ectu8b9tVQCJNgp4a4knp+tg==} + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - jasmine@3.99.0: - resolution: {integrity: sha512-YIThBuHzaIIcjxeuLmPD40SjxkEcc8i//sGMDKCgkRMVgIwRJf5qyExtlJpQeh7pkeoBSOe6lQEdg+/9uKg9mw==} - hasBin: true + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} - jest-changed-files@29.7.0: - resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} - jest-circus@29.7.0: - resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + event-stream@3.3.4: + resolution: {integrity: sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==} - jest-cli@29.7.0: - resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - jest-config@29.7.0: - resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@types/node': '*' - ts-node: '>=9.0.0' - peerDependenciesMeta: - '@types/node': - optional: true - ts-node: - optional: true + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} - jest-diff@28.1.3: - resolution: {integrity: sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + execa@0.7.0: + resolution: {integrity: sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==} + engines: {node: '>=4'} - jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + execa@0.8.0: + resolution: {integrity: sha512-zDWS+Rb1E8BlqqhALSt9kUhss8Qq4nN3iof3gsOdyINksElaPyNBtKUMTR62qhvgVWR0CqCX7sdnKe4MnUbFEA==} + engines: {node: '>=4'} - jest-docblock@29.7.0: - resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} - jest-each@29.7.0: - resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + exif-parser@0.1.12: + resolution: {integrity: sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==} - jest-environment-node@29.7.0: - resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + expect-webdriverio@3.6.0: + resolution: {integrity: sha512-8HuVToXDVzkKgUKIUzW/v3bP4ZoMDEwCjX9QmlRlMIvjt3HOSzSIBnRMv8lpeVTUKoR9DZNr/lSuKH4Amx4BBg==} - jest-get-type@28.0.2: - resolution: {integrity: sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==} + expect@28.1.3: + resolution: {integrity: sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + express@4.19.2: + resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} + engines: {node: '>= 0.10.0'} - jest-haste-map@29.7.0: - resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} - jest-leak-detector@29.7.0: - resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + extract-zip@2.0.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true - jest-matcher-utils@28.1.3: - resolution: {integrity: sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + fast-deep-equal@2.0.1: + resolution: {integrity: sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==} - jest-matcher-utils@29.7.0: - resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - jest-message-util@28.1.3: - resolution: {integrity: sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + fast-equals@4.0.3: + resolution: {integrity: sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==} - jest-message-util@29.7.0: - resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} - jest-mock@29.7.0: - resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - jest-pnp-resolver@1.2.3: - resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - jest-regex-util@29.6.3: - resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + fast-url-parser@1.1.3: + resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} - jest-resolve-dependencies@29.7.0: - resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - jest-resolve@29.7.0: - resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + fd-slicer@1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} - jest-runner@29.7.0: - resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + fflate@0.6.10: + resolution: {integrity: sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg==} - jest-runtime@29.7.0: - resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + fflate@0.8.2: + resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} - jest-snapshot@29.7.0: - resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} - jest-util@28.1.3: - resolution: {integrity: sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} - jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + file-type@16.5.4: + resolution: {integrity: sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==} + engines: {node: '>=10'} - jest-validate@29.7.0: - resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} - jest-watcher@29.7.0: - resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} - jest-worker@29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + finalhandler@1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + engines: {node: '>= 0.8'} - jest@29.7.0: - resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true + find-cache-dir@3.3.2: + resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} + engines: {node: '>=8'} - jpeg-js@0.4.4: - resolution: {integrity: sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==} + find-root@1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} - js-sha256@0.11.0: - resolution: {integrity: sha512-6xNlKayMZvds9h1Y1VWc0fQHQ82BxTXizWPEtEeGvmOUYpBRy4gbWroHLpzowe6xiQhHpelCQiE7HEdznyBL9Q==} + find-up@1.1.2: + resolution: {integrity: sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==} + engines: {node: '>=0.10.0'} - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} - js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} - jscodeshift@0.15.2: - resolution: {integrity: sha512-FquR7Okgmc4Sd0aEDwqho3rEiKR3BdvuG9jfdHjLJ6JQoWSMpavug3AoIfnfWhxFlf+5pzQh8qjqz0DWFrNQzA==} + flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true - peerDependencies: - '@babel/preset-env': ^7.1.6 - peerDependenciesMeta: - '@babel/preset-env': - optional: true - jsdom@24.1.1: - resolution: {integrity: sha512-5O1wWV99Jhq4DV7rCLIoZ/UIhyQeDR7wHVyZAHAshbrvZsLs+Xzz7gtwnlJTJDjleiTKh54F4dXrX70vJQTyJQ==} - engines: {node: '>=18'} + flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + + follow-redirects@1.15.6: + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} peerDependencies: - canvas: ^2.11.2 + debug: '*' peerDependenciesMeta: - canvas: + debug: optional: true - jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true - - jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + foreground-child@3.2.1: + resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} + engines: {node: '>=14'} - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true + forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} - jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} - jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} + from@0.1.7: + resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==} - jwt-decode@4.0.0: - resolution: {integrity: sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==} - engines: {node: '>=18'} + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - keycloak-js@25.0.2: - resolution: {integrity: sha512-ACLf5O5PqzfDJwGqvLpqM0kflYWmyl3+T7M2C23gztJYccDxdfNP54+B9OkXz2GnDpLUId0ceoA+lbHw9t4Wng==} + fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} - kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} + fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} - kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - ky@0.28.7: - resolution: {integrity: sha512-a23i6qSr/ep15vdtw/zyEQIDLoUaKDg9Jf04CYl/0ns/wXNYna26zJpI+MeIFaPeDvkrjLPrKtKOiiI3IE53RQ==} - engines: {node: '>=12'} + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] - lazystream@1.0.1: - resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} - engines: {node: '>= 0.6.3'} + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} + function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - lie@3.3.0: - resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} + gauge@3.0.2: + resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} + engines: {node: '>=10'} + deprecated: This package is no longer supported. - lighthouse-logger@1.4.2: - resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==} + gaze@1.1.3: + resolution: {integrity: sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==} + engines: {node: '>= 4.0.0'} - lilconfig@3.1.2: - resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} - engines: {node: '>=14'} + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} - lint-staged@15.2.7: - resolution: {integrity: sha512-+FdVbbCZ+yoh7E/RosSdqKJyUM2OEjTciH0TFNkawKgvFp1zbGlEC39RADg+xKBG1R4mhoH2j85myBQZ5wR+lw==} - engines: {node: '>=18.12.0'} - hasBin: true + get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + engines: {node: '>=18'} - listr2@8.2.3: - resolution: {integrity: sha512-Lllokma2mtoniUOS94CcOErHWAug5iu7HOmDrvWgpw8jyQH2fomgB+7lZS4HWZxytUuQwkGOwe49FvwVaA85Xw==} - engines: {node: '>=18.0.0'} + get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - load-bmfont@1.4.2: - resolution: {integrity: sha512-qElWkmjW9Oq1F9EI5Gt7aD9zcdHb9spJCW1L/dmPf7KzCCEJxq8nhHz5eCgI9aMf7vrG/wyaCqdsI+Iy9ZTlog==} + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} - load-json-file@1.1.0: - resolution: {integrity: sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==} - engines: {node: '>=0.10.0'} + get-port@5.1.1: + resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} + engines: {node: '>=8'} - locate-path@3.0.0: - resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} - engines: {node: '>=6'} + get-stream@3.0.0: + resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==} + engines: {node: '>=4'} - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} - lodash.clonedeep@4.5.0: - resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} + get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} - lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + gifwrap@0.9.4: + resolution: {integrity: sha512-MDMwbhASQuVeD4JKd1fKgNgCRL3fGqMM4WaqpNhWO0JiMOAjbQdumbs4BbBZEy9/M00EHEjKN3HieVhCUlwjeQ==} - lodash.defaults@4.2.0: - resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} + github-slugger@2.0.0: + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} - lodash.difference@4.5.0: - resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==} + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} - lodash.flatten@4.4.0: - resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} - lodash.flattendeep@4.4.0: - resolution: {integrity: sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==} + glob-promise@4.2.2: + resolution: {integrity: sha512-xcUzJ8NWN5bktoTIX7eOclO1Npxd/dyVqUJxlLIDasT4C7KZyqlPIwkdJ0Ypiy3p2ZKahTjK4M9uC3sNSfNMzw==} + engines: {node: '>=12'} + peerDependencies: + glob: ^7.1.6 - lodash.isobject@3.0.2: - resolution: {integrity: sha512-3/Qptq2vr7WeJbB4KHUSKlq8Pl7ASXi3UG6CMbBm8WRtXi8+GHm7mKaU3urfpSEzWe2wCIChs6/sdocUsTKJiA==} + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true - lodash.isplainobject@4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + glob@7.1.7: + resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} + deprecated: Glob versions prior to v9 are no longer supported - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + glob@7.2.0: + resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} + deprecated: Glob versions prior to v9 are no longer supported - lodash.pickby@4.6.0: - resolution: {integrity: sha512-AZV+GsS/6ckvPOVQPXSiFFacKvKB4kOQu6ynt9wz0F3LO4R9Ij4K1ddYsIytDpSgLz88JHd9P+oaLeej5/Sl7Q==} + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported - lodash.union@4.6.0: - resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} + global@4.4.0: + resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==} - lodash.zip@4.2.0: - resolution: {integrity: sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg==} + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} - log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} - log-update@6.0.0: - resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==} - engines: {node: '>=18'} + globule@1.3.4: + resolution: {integrity: sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg==} + engines: {node: '>= 0.10'} - loglevel-plugin-prefix@0.8.4: - resolution: {integrity: sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==} + glsl-noise@0.0.0: + resolution: {integrity: sha512-b/ZCF6amfAUb7dJM/MxRs7AetQEahYzJ8PtgfrmEdtw6uyGOr+ZSGtgjFm6mfsBkxJ4d2W7kg+Nlqzqvn3Bc0w==} - loglevel@1.9.1: - resolution: {integrity: sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg==} - engines: {node: '>= 0.6.0'} + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true + got@11.8.6: + resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} + engines: {node: '>=10.19.0'} - loupe@2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - loupe@3.1.1: - resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==} + grapheme-splitter@1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} - lowercase-keys@2.0.0: - resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} - engines: {node: '>=8'} + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + growl@1.10.5: + resolution: {integrity: sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==} + engines: {node: '>=4.x'} - lru-cache@4.1.5: - resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} + has-ansi@2.0.0: + resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} + engines: {node: '>=0.10.0'} - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - lz-string@1.5.0: - resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} - hasBin: true + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} - maath@0.10.8: - resolution: {integrity: sha512-tRvbDF0Pgqz+9XUa4jjfgAQ8/aPKmQdWXilFu2tMy4GWj4NOsx99HlULO4IeREfbO3a0sA145DZYyvXPkybm0g==} - peerDependencies: - '@types/three': '>=0.134.0' - three: '>=0.134.0' + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} - magic-string@0.27.0: - resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} - engines: {node: '>=12'} + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - magic-string@0.30.10: - resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} - magicast@0.3.4: - resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==} + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} - make-dir@2.1.0: - resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} - engines: {node: '>=6'} + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} - make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} + has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} - make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + hast-util-heading-rank@3.0.0: + resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==} - makeerror@1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + hast-util-is-element@3.0.0: + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} - map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} + hast-util-to-string@3.0.0: + resolution: {integrity: sha512-OGkAxX1Ua3cbcW6EJ5pT/tslVb90uViVkcJ4ZZIMW/R33DX/AkcJcRrPebPwJkHYwlDHXz4aIwvAAaAdtrACFA==} - map-or-similar@1.5.0: - resolution: {integrity: sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==} + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + history@5.3.0: + resolution: {integrity: sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==} + + hls.js@1.3.5: + resolution: {integrity: sha512-uybAvKS6uDe0MnWNEPnO0krWVr+8m2R0hJ/viql8H3MVK+itq8gGQuIYoFHL3rECkIpNH98Lw8YuuWMKZxp3Ew==} - map-stream@0.1.0: - resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==} + hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} - markdown-to-jsx@7.4.7: - resolution: {integrity: sha512-0+ls1IQZdU6cwM1yu0ZjjiVWYtkbExSyUIFU2ZeDIFuZM1W42Mh4OlJ4nb4apX4H8smxDHRdFaoIVJGwfv5hkg==} - engines: {node: '>= 10'} - peerDependencies: - react: '>= 0.14.0' + hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - marky@1.2.5: - resolution: {integrity: sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==} + html-encoding-sniffer@4.0.0: + resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} + engines: {node: '>=18'} - media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - memoize-one@5.2.1: - resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} + html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} + engines: {node: '>=8'} - memoizerific@1.11.3: - resolution: {integrity: sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==} + http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - merge-descriptors@1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} + http2-wrapper@1.0.3: + resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} + engines: {node: '>=10.19.0'} - meshline@3.3.1: - resolution: {integrity: sha512-/TQj+JdZkeSUOl5Mk2J7eLcYTLiQm2IDzmlSvYm7ov15anEcDJ92GHqqazxTSreeNgfnYu24kiEvvv0WlbCdFQ==} - peerDependencies: - three: '>=0.137' + https-proxy-agent@5.0.0: + resolution: {integrity: sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==} + engines: {node: '>= 6'} - meshoptimizer@0.18.1: - resolution: {integrity: sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==} + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} - methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} + https-proxy-agent@7.0.4: + resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} + engines: {node: '>= 14'} - micromatch@4.0.7: - resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} - engines: {node: '>=8.6'} + https-proxy-agent@7.0.5: + resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} + engines: {node: '>= 14'} - mime-db@1.33.0: - resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} - engines: {node: '>= 0.6'} + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} + husky@9.0.11: + resolution: {integrity: sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==} + engines: {node: '>=18'} + hasBin: true - mime-types@2.1.18: - resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==} - engines: {node: '>= 0.6'} + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} - mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} + ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} - mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} + image-q@4.0.0: + resolution: {integrity: sha512-PfJGVgIfKQJuq3s0tTDOKtztksibuUEbJQIYT3by6wctQo+Rdlh7ef4evJ5NCdxY4CfMbvFkocEwbl4BF8RlJw==} - mimic-response@1.0.1: - resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} - engines: {node: '>=4'} + immediate@3.0.6: + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} - mimic-response@2.1.0: - resolution: {integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==} - engines: {node: '>=8'} + immer@9.0.21: + resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} - mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} - min-document@2.19.0: - resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==} + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} - min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + indent-string@3.2.0: + resolution: {integrity: sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==} engines: {node: '>=4'} - minimatch@3.0.4: - resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} - - minimatch@3.0.8: - resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - minimatch@4.2.1: - resolution: {integrity: sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==} - engines: {node: '>=10'} + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} + inquirer@8.2.6: + resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} + engines: {node: '>=12.0.0'} - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} - minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} - minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} + is-absolute-url@4.0.1: + resolution: {integrity: sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} - engines: {node: '>=16 || 14 >=14.17'} + is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} - minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} + is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} - mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true + is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} - mlly@1.7.1: - resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} + is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} - mocha@9.2.2: - resolution: {integrity: sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==} - engines: {node: '>= 12.0.0'} - hasBin: true + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} - ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + is-core-module@2.14.0: + resolution: {integrity: sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==} + engines: {node: '>= 0.4'} - mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + is-core-module@2.15.0: + resolution: {integrity: sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==} + engines: {node: '>= 0.4'} - nan@2.20.0: - resolution: {integrity: sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==} + is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} - nanoid@3.3.1: - resolution: {integrity: sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true + is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} hasBin: true - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - - negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} - neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} - node-dir@0.1.17: - resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==} - engines: {node: '>= 0.10.5'} + is-fullwidth-code-point@2.0.0: + resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} + engines: {node: '>=4'} - node-fetch-native@1.6.4: - resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} - node-fetch@2.6.1: - resolution: {integrity: sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==} - engines: {node: 4.x || >=6.0.0} + is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true + is-fullwidth-code-point@5.0.0: + resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} + engines: {node: '>=18'} - node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + is-function@1.0.2: + resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==} - node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} - node-releases@2.0.18: - resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} - node-vibrant@3.1.6: - resolution: {integrity: sha512-Wlc/hQmBMOu6xon12ZJHS2N3M+I6J8DhrD3Yo6m5175v8sFkVIN+UjhKVRcO+fqvre89ASTpmiFEP3nPO13SwA==} + is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} - nopt@5.0.0: - resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} - engines: {node: '>=6'} - hasBin: true + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} - normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} + is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} - normalize-url@6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} - engines: {node: '>=10'} + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} - npm-run-path@2.0.2: - resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} - engines: {node: '>=4'} + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} engines: {node: '>=8'} - npm-run-path@5.3.0: - resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} - npmlog@5.0.1: - resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} - deprecated: This package is no longer supported. + is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - nwsapi@2.2.12: - resolution: {integrity: sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w==} + is-promise@2.2.2: + resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} - nypm@0.3.9: - resolution: {integrity: sha512-BI2SdqqTHg2d4wJh8P9A1W+bslg33vOE9IZDY6eR2QC+Pu1iNBVZUqczrd43rJb+fMzHU7ltAYKsEFY/kHMFcw==} - engines: {node: ^14.16.0 || >=16.10.0} - hasBin: true + is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} + is-running@2.1.0: + resolution: {integrity: sha512-mjJd3PujZMl7j+D395WTIO5tU5RIDBfVSRtRR4VOJou3H66E38UjbjvDGh3slJzPuolsb+yQFqwHNNdyp5jg3w==} - object-inspect@1.13.2: - resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} engines: {node: '>= 0.4'} - object-is@1.1.6: - resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} engines: {node: '>= 0.4'} - object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + is-stream@1.1.0: + resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} + engines: {node: '>=0.10.0'} + + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} - object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} engines: {node: '>= 0.4'} - object.entries@1.1.8: - resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} + is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} - object.fromentries@2.0.8: - resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + + is-utf8@0.2.1: + resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} + + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} - object.values@1.2.0: - resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} + is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + + is-weakset@2.0.3: + resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} engines: {node: '>= 0.4'} - ohash@1.1.3: - resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} - omggif@1.0.10: - resolution: {integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==} + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - on-headers@1.0.2: - resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} - engines: {node: '>= 0.8'} + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + + istanbul-lib-source-maps@5.0.6: + resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} + engines: {node: '>=10'} + + istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + engines: {node: '>=8'} + + iterare@1.2.1: + resolution: {integrity: sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==} engines: {node: '>=6'} - onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} + iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} + its-fine@1.2.5: + resolution: {integrity: sha512-fXtDA0X0t0eBYAGLVM5YsgJGsJ5jEmqZEPrGbzdf5awjv0xE7nqv3TVnvtUF060Tkes15DbDAKW/I48vsb6SyA==} + peerDependencies: + react: '>=18.0' - ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jake@10.9.1: + resolution: {integrity: sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w==} engines: {node: '>=10'} + hasBin: true - os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} + jasmine-core@3.99.1: + resolution: {integrity: sha512-Hu1dmuoGcZ7AfyynN3LsfruwMbxMALMka+YtZeGoLuDEySVmVAPaonkNoBRIw/ectu8b9tVQCJNgp4a4knp+tg==} - p-cancelable@2.1.1: - resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} - engines: {node: '>=8'} + jasmine@3.99.0: + resolution: {integrity: sha512-YIThBuHzaIIcjxeuLmPD40SjxkEcc8i//sGMDKCgkRMVgIwRJf5qyExtlJpQeh7pkeoBSOe6lQEdg+/9uKg9mw==} + hasBin: true + + jest-diff@28.1.3: + resolution: {integrity: sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest-get-type@28.0.2: + resolution: {integrity: sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest-matcher-utils@28.1.3: + resolution: {integrity: sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest-message-util@28.1.3: + resolution: {integrity: sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest-util@28.1.3: + resolution: {integrity: sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jpeg-js@0.4.4: + resolution: {integrity: sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==} + + js-sha256@0.11.0: + resolution: {integrity: sha512-6xNlKayMZvds9h1Y1VWc0fQHQ82BxTXizWPEtEeGvmOUYpBRy4gbWroHLpzowe6xiQhHpelCQiE7HEdznyBL9Q==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsdoc-type-pratt-parser@4.1.0: + resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} + engines: {node: '>=12.0.0'} - p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + jsdom@24.1.1: + resolution: {integrity: sha512-5O1wWV99Jhq4DV7rCLIoZ/UIhyQeDR7wHVyZAHAshbrvZsLs+Xzz7gtwnlJTJDjleiTKh54F4dXrX70vJQTyJQ==} + engines: {node: '>=18'} + peerDependencies: + canvas: ^2.11.2 + peerDependenciesMeta: + canvas: + optional: true + + jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} + hasBin: true - p-iteration@1.1.8: - resolution: {integrity: sha512-IMFBSDIYcPNnW7uWYGrBqmvTiq7W0uB0fJn6shQZs7dlF3OvrHOre+JT9ikSZ7gZS3vWqclVgoQSvToJrns7uQ==} - engines: {node: '>=8.0.0'} + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - p-locate@3.0.0: - resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} - engines: {node: '>=6'} + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} + jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} - package-json-from-dist@1.0.0: - resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + jwt-decode@4.0.0: + resolution: {integrity: sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==} + engines: {node: '>=18'} - pako@1.0.11: - resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + keycloak-js@25.0.2: + resolution: {integrity: sha512-ACLf5O5PqzfDJwGqvLpqM0kflYWmyl3+T7M2C23gztJYccDxdfNP54+B9OkXz2GnDpLUId0ceoA+lbHw9t4Wng==} - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - parse-bmfont-ascii@1.0.6: - resolution: {integrity: sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==} + ky@0.28.7: + resolution: {integrity: sha512-a23i6qSr/ep15vdtw/zyEQIDLoUaKDg9Jf04CYl/0ns/wXNYna26zJpI+MeIFaPeDvkrjLPrKtKOiiI3IE53RQ==} + engines: {node: '>=12'} - parse-bmfont-binary@1.0.6: - resolution: {integrity: sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==} + lazystream@1.0.1: + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + engines: {node: '>= 0.6.3'} - parse-bmfont-xml@1.1.6: - resolution: {integrity: sha512-0cEliVMZEhrFDwMh4SxIyVJpqYoOWDJ9P895tFuS+XuNzI5UBmBk5U5O4KuJdTnZpSBI4LFA2+ZiJaiwfSwlMA==} + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} - parse-headers@2.0.5: - resolution: {integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==} + lie@3.3.0: + resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} - parse-json@2.2.0: - resolution: {integrity: sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==} - engines: {node: '>=0.10.0'} + lighthouse-logger@1.4.2: + resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==} - parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} + lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + engines: {node: '>=14'} - parse-ms@2.1.0: - resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} - engines: {node: '>=6'} + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + lint-staged@15.2.7: + resolution: {integrity: sha512-+FdVbbCZ+yoh7E/RosSdqKJyUM2OEjTciH0TFNkawKgvFp1zbGlEC39RADg+xKBG1R4mhoH2j85myBQZ5wR+lw==} + engines: {node: '>=18.12.0'} + hasBin: true - parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} + listr2@8.2.3: + resolution: {integrity: sha512-Lllokma2mtoniUOS94CcOErHWAug5iu7HOmDrvWgpw8jyQH2fomgB+7lZS4HWZxytUuQwkGOwe49FvwVaA85Xw==} + engines: {node: '>=18.0.0'} - path-equal@1.2.5: - resolution: {integrity: sha512-i73IctDr3F2W+bsOWDyyVm/lqsXO47aY9nsFZUjTT/aljSbkxHxxCoyZ9UUrM8jK0JVod+An+rl48RCsvWM+9g==} + load-bmfont@1.4.2: + resolution: {integrity: sha512-qElWkmjW9Oq1F9EI5Gt7aD9zcdHb9spJCW1L/dmPf7KzCCEJxq8nhHz5eCgI9aMf7vrG/wyaCqdsI+Iy9ZTlog==} - path-exists@2.1.0: - resolution: {integrity: sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==} + load-json-file@1.1.0: + resolution: {integrity: sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==} engines: {node: '>=0.10.0'} - path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} - path-is-inside@1.0.2: - resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} + lodash.clonedeep@4.5.0: + resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} - path-key@2.0.1: - resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} - engines: {node: '>=4'} + lodash.defaults@4.2.0: + resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} + lodash.difference@4.5.0: + resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==} - path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} + lodash.flatten@4.4.0: + resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + lodash.flattendeep@4.4.0: + resolution: {integrity: sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==} - path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} + lodash.isobject@3.0.2: + resolution: {integrity: sha512-3/Qptq2vr7WeJbB4KHUSKlq8Pl7ASXi3UG6CMbBm8WRtXi8+GHm7mKaU3urfpSEzWe2wCIChs6/sdocUsTKJiA==} - path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - path-to-regexp@2.2.1: - resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==} + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - path-to-regexp@3.2.0: - resolution: {integrity: sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==} + lodash.pickby@4.6.0: + resolution: {integrity: sha512-AZV+GsS/6ckvPOVQPXSiFFacKvKB4kOQu6ynt9wz0F3LO4R9Ij4K1ddYsIytDpSgLz88JHd9P+oaLeej5/Sl7Q==} - path-type@1.1.0: - resolution: {integrity: sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==} - engines: {node: '>=0.10.0'} + lodash.union@4.6.0: + resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} + lodash.zip@4.2.0: + resolution: {integrity: sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg==} - path-type@5.0.0: - resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} - engines: {node: '>=12'} + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + + log-update@6.0.0: + resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==} + engines: {node: '>=18'} - pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + loglevel-plugin-prefix@0.8.4: + resolution: {integrity: sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==} - pathval@2.0.0: - resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} - engines: {node: '>= 14.16'} + loglevel@1.9.1: + resolution: {integrity: sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg==} + engines: {node: '>= 0.6.0'} - pause-stream@0.0.11: - resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true - peek-readable@4.1.0: - resolution: {integrity: sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==} + loupe@3.1.1: + resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==} + + lowercase-keys@2.0.0: + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} engines: {node: '>=8'} - pend@1.2.0: - resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - phin@2.9.3: - resolution: {integrity: sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + lru-cache@4.1.5: + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} - phin@3.7.1: - resolution: {integrity: sha512-GEazpTWwTZaEQ9RhL7Nyz0WwqilbqgLahDM3D0hxWwmVDI52nXEybHqiN6/elwpkJBhcuj+WbBu+QfT0uhPGfQ==} - engines: {node: '>= 8'} + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} + hasBin: true - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} + maath@0.10.8: + resolution: {integrity: sha512-tRvbDF0Pgqz+9XUa4jjfgAQ8/aPKmQdWXilFu2tMy4GWj4NOsx99HlULO4IeREfbO3a0sA145DZYyvXPkybm0g==} + peerDependencies: + '@types/three': '>=0.134.0' + three: '>=0.134.0' - pidtree@0.6.0: - resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} - engines: {node: '>=0.10'} - hasBin: true + magic-string@0.27.0: + resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} + engines: {node: '>=12'} - pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} + magic-string@0.30.10: + resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} + + magicast@0.3.4: + resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==} - pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} + make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} - pinkie-promise@2.0.1: - resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} - engines: {node: '>=0.10.0'} + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} - pinkie@2.0.4: - resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} engines: {node: '>=0.10.0'} - pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} + map-or-similar@1.5.0: + resolution: {integrity: sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==} - pixelmatch@4.0.2: - resolution: {integrity: sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==} - hasBin: true + map-stream@0.1.0: + resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==} - pkg-dir@3.0.0: - resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==} - engines: {node: '>=6'} + markdown-to-jsx@7.4.7: + resolution: {integrity: sha512-0+ls1IQZdU6cwM1yu0ZjjiVWYtkbExSyUIFU2ZeDIFuZM1W42Mh4OlJ4nb4apX4H8smxDHRdFaoIVJGwfv5hkg==} + engines: {node: '>= 10'} + peerDependencies: + react: '>= 0.14.0' - pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} + marky@1.2.5: + resolution: {integrity: sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==} - pkg-types@1.1.3: - resolution: {integrity: sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==} + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} - pngjs@3.4.0: - resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==} - engines: {node: '>=4.0.0'} + memoize-one@5.2.1: + resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} - polished@4.3.1: - resolution: {integrity: sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==} - engines: {node: '>=10'} + memoizerific@1.11.3: + resolution: {integrity: sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==} - possible-typed-array-names@1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} - engines: {node: '>= 0.4'} + merge-descriptors@1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} - postcss@8.4.39: - resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} - engines: {node: ^10 || ^12 || >=14} + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - potpack@1.0.2: - resolution: {integrity: sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==} + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} + meshline@3.3.1: + resolution: {integrity: sha512-/TQj+JdZkeSUOl5Mk2J7eLcYTLiQm2IDzmlSvYm7ov15anEcDJ92GHqqazxTSreeNgfnYu24kiEvvv0WlbCdFQ==} + peerDependencies: + three: '>=0.137' - prettier@3.3.2: - resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==} - engines: {node: '>=14'} - hasBin: true + meshoptimizer@0.18.1: + resolution: {integrity: sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==} - pretty-format@27.5.1: - resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} - pretty-format@28.1.3: - resolution: {integrity: sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + micromatch@4.0.7: + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + engines: {node: '>=8.6'} - pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + mime-db@1.33.0: + resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} + engines: {node: '>= 0.6'} - pretty-ms@7.0.1: - resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==} - engines: {node: '>=10'} + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} - process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + mime-types@2.1.18: + resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==} + engines: {node: '>= 0.6'} - process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} - progress@2.0.1: - resolution: {integrity: sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==} - engines: {node: '>=0.4.0'} + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true - promise-worker-transferable@1.0.4: - resolution: {integrity: sha512-bN+0ehEnrXfxV2ZQvU2PetO0n4gqBD4ulq3MI1WOPLgr7/Mg9yRQkX5+0v1vagr74ZTsl7XtzlaYDo2EuCeYJw==} + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} - prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} - prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + mimic-response@1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} - proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} + mimic-response@2.1.0: + resolution: {integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==} + engines: {node: '>=8'} - proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} - ps-tree@1.2.0: - resolution: {integrity: sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==} - engines: {node: '>= 0.10'} - hasBin: true + min-document@2.19.0: + resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==} - pseudomap@1.0.2: - resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} - psl@1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + minimatch@3.0.4: + resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} - pump@3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + minimatch@3.0.8: + resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} - punycode@1.4.1: - resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} + minimatch@4.2.1: + resolution: {integrity: sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==} + engines: {node: '>=10'} - puppeteer-core@10.4.0: - resolution: {integrity: sha512-KU8zyb7AIOqNjLCN3wkrFXxh+EVaG+zrs2P03ATNjc3iwSxHsu5/EvZiREpQ/IJiT9xfQbDVgKcsvRuzLCxglQ==} - engines: {node: '>=10.18.1'} + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} - pure-rand@6.1.0: - resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} - pyright@1.1.369: - resolution: {integrity: sha512-K0mQzVNSN5yq+joFK0JraOlhtL2HKrubCa+SnFznkLsnoZKbmq7M8UpSSDsJKPFfevkmqOKodgGzvt27C6RJAg==} - engines: {node: '>=14.0.0'} - hasBin: true + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} - engines: {node: '>=0.6'} + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} - qs@6.12.3: - resolution: {integrity: sha512-AWJm14H1vVaO/iNZ4/hO+HyaTehuy9nRqVdkTqlJt0HWvBiBIEXFmb4C0DGeYo3Xes9rrEW+TxHsaigCbN5ICQ==} - engines: {node: '>=0.6'} + minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} - query-selector-shadow-dom@1.0.1: - resolution: {integrity: sha512-lT5yCqEBgfoMYpf3F2xQRK7zEr1rhIIZuceDK6+xRkJQ4NMbHTwXqk4NkwDwQMNqXgG9r9fyHnzwNVs6zV5KRw==} + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} - querystringify@2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true - quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} + hasBin: true - randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + mocha@9.2.2: + resolution: {integrity: sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==} + engines: {node: '>= 12.0.0'} + hasBin: true - range-parser@1.2.0: - resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} - engines: {node: '>= 0.6'} + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} - engines: {node: '>= 0.8'} + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + mute-stream@0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + + nan@2.20.0: + resolution: {integrity: sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==} + + nanoid@3.3.1: + resolution: {integrity: sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - react-colorful@5.6.1: - resolution: {integrity: sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true - react-composer@5.0.3: - resolution: {integrity: sha512-1uWd07EME6XZvMfapwZmc7NgCZqDemcvicRi3wMJzXsQLvZ3L7fTHVyPy1bZdnWXM4iPjYuNE+uJ41MLKeTtnA==} - peerDependencies: - react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - react-confetti@6.1.0: - resolution: {integrity: sha512-7Ypx4vz0+g8ECVxr88W9zhcQpbeujJAVqL14ZnXJ3I23mOI9/oBVTQ3dkJhUmB0D6XOtCZEM6N0Gm9PMngkORw==} - engines: {node: '>=10.18'} - peerDependencies: - react: ^16.3.0 || ^17.0.1 || ^18.0.0 + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} - react-customizable-progressbar@1.2.0: - resolution: {integrity: sha512-zNaFa8ynfslfVt5mqgDcIQgx9/UN0ohGH0wj1apA4DauMPd1bYNk3KDSu+sdbfhONNVDC8TOWSr6hH3tyX4oHw==} - peerDependencies: - react: ^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + node-fetch@2.6.1: + resolution: {integrity: sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==} + engines: {node: 4.x || >=6.0.0} - react-docgen-typescript@2.2.2: - resolution: {integrity: sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==} + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} peerDependencies: - typescript: '>= 4.3.x' + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true - react-docgen@7.0.3: - resolution: {integrity: sha512-i8aF1nyKInZnANZ4uZrH49qn1paRgBZ7wZiCNBMnenlPzEv0mRl+ShpTVEI6wZNl8sSc79xZkivtgLKQArcanQ==} - engines: {node: '>=16.14.0'} + node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - react-dom@18.3.1: - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} - peerDependencies: - react: ^18.3.1 + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} - react-draggable@4.4.6: - resolution: {integrity: sha512-LtY5Xw1zTPqHkVmtM3X8MUOxNDOUhv/khTgBgrUvwaS064bwVvxT+q5El0uUFNx5IEPKXuRejr7UqLwBIg5pdw==} - peerDependencies: - react: '>= 16.3.0' - react-dom: '>= 16.3.0' + node-vibrant@3.1.6: + resolution: {integrity: sha512-Wlc/hQmBMOu6xon12ZJHS2N3M+I6J8DhrD3Yo6m5175v8sFkVIN+UjhKVRcO+fqvre89ASTpmiFEP3nPO13SwA==} - react-element-to-jsx-string@15.0.0: - resolution: {integrity: sha512-UDg4lXB6BzlobN60P8fHWVPX3Kyw8ORrTeBtClmIlGdkOOE+GYQSFvmEU5iLLpwp/6v42DINwNcwOhOLfQ//FQ==} - peerDependencies: - react: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 - react-dom: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 + nopt@5.0.0: + resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} + engines: {node: '>=6'} + hasBin: true - react-error-boundary@4.0.13: - resolution: {integrity: sha512-b6PwbdSv8XeOSYvjt8LpgpKrZ0yGdtZokYwkwV2wlcZbxgopHX/hgPl5VgpnoVOWd868n1hktM8Qm4b+02MiLQ==} - peerDependencies: - react: '>=16.13.1' + normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - react-grid-layout@1.4.4: - resolution: {integrity: sha512-7+Lg8E8O8HfOH5FrY80GCIR1SHTn2QnAYKh27/5spoz+OHhMmEhU/14gIkRzJOtympDPaXcVRX/nT1FjmeOUmQ==} - peerDependencies: - react: '>= 16.3.0' - react-dom: '>= 16.3.0' + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} - react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} - react-is@17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + npm-run-path@2.0.2: + resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} + engines: {node: '>=4'} - react-is@18.1.0: - resolution: {integrity: sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==} + npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - react-is@18.3.1: - resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + npmlog@5.0.1: + resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} + deprecated: This package is no longer supported. - react-reconciler@0.27.0: - resolution: {integrity: sha512-HmMDKciQjYmBRGuuhIaKA1ba/7a+UsM5FzOZsMO2JYHt9Jh8reCb7j1eDC95NOyUlKM9KRyvdx0flBuDvYSBoA==} + nwsapi@2.2.12: + resolution: {integrity: sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w==} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - peerDependencies: - react: ^18.0.0 - react-resizable@3.0.5: - resolution: {integrity: sha512-vKpeHhI5OZvYn82kXOs1bC8aOXktGU5AmKAgaZS4F5JPburCtbmDPqE7Pzp+1kN4+Wb81LlF33VpGwWwtXem+w==} - peerDependencies: - react: '>= 16.3' + object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} - react-router-dom@6.24.1: - resolution: {integrity: sha512-U19KtXqooqw967Vw0Qcn5cOvrX5Ejo9ORmOtJMzYWtCT4/WOfFLIZGGsVLxcd9UkBO0mSTZtXqhZBsWlHr7+Sg==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' + object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + engines: {node: '>= 0.4'} - react-router@6.24.1: - resolution: {integrity: sha512-PTXFXGK2pyXpHzVo3rR9H7ip4lSPZZc0bHG5CARmj65fTT6qG7sTngmb6lcYu1gf3y/8KxORoy9yn59pGpCnpg==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: '>=16.8' + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} - react-transition-group@4.4.5: - resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} - peerDependencies: - react: '>=16.6.0' - react-dom: '>=16.6.0' + object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} - react-use-measure@2.1.1: - resolution: {integrity: sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig==} - peerDependencies: - react: '>=16.13' - react-dom: '>=16.13' + object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} + engines: {node: '>= 0.4'} - react-virtualized-auto-sizer@1.0.24: - resolution: {integrity: sha512-3kCn7N9NEb3FlvJrSHWGQ4iVl+ydQObq2fHMn12i5wbtm74zHOPhz/i64OL3c1S1vi9i2GXtZqNqUJTQ+BnNfg==} - peerDependencies: - react: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 - react-dom: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 + object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} - react-window@1.8.10: - resolution: {integrity: sha512-Y0Cx+dnU6NLa5/EvoHukUD0BklJ8qITCtVEPY1C/nL8wwoZ0b5aEw8Ff1dOVHw7fCzMt55XfJDd8S8W8LCaUCg==} - engines: {node: '>8.0.0'} - peerDependencies: - react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 - react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} + engines: {node: '>= 0.4'} - react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} - engines: {node: '>=0.10.0'} + omggif@1.0.10: + resolution: {integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==} - read-pkg-up@1.0.1: - resolution: {integrity: sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==} - engines: {node: '>=0.10.0'} + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} - read-pkg@1.1.0: - resolution: {integrity: sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==} - engines: {node: '>=0.10.0'} + on-headers@1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} - readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} - readable-web-to-node-stream@3.0.2: - resolution: {integrity: sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==} - engines: {node: '>=8'} + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} - readdir-glob@1.1.3: - resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} - recast@0.23.9: - resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==} - engines: {node: '>= 4'} + ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} - recursive-readdir@2.2.3: - resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} - engines: {node: '>=6.0.0'} + os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} - redent@3.0.0: - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + p-cancelable@2.1.1: + resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} engines: {node: '>=8'} - reflect-metadata@0.1.13: - resolution: {integrity: sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==} + p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} - reflect.getprototypeof@1.0.6: - resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} - engines: {node: '>= 0.4'} + p-iteration@1.1.8: + resolution: {integrity: sha512-IMFBSDIYcPNnW7uWYGrBqmvTiq7W0uB0fJn6shQZs7dlF3OvrHOre+JT9ikSZ7gZS3vWqclVgoQSvToJrns7uQ==} + engines: {node: '>=8.0.0'} - regenerate-unicode-properties@10.1.1: - resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} - engines: {node: '>=4'} + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} - regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} - regenerator-runtime@0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} - regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} - regenerator-transform@0.15.2: - resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} - regexp.prototype.flags@1.5.2: - resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} - engines: {node: '>= 0.4'} + package-json-from-dist@1.0.0: + resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} - regexpu-core@5.3.2: - resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} - engines: {node: '>=4'} + pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} - registry-auth-token@3.3.2: - resolution: {integrity: sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==} + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} - registry-url@3.1.0: - resolution: {integrity: sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==} - engines: {node: '>=0.10.0'} + parse-bmfont-ascii@1.0.6: + resolution: {integrity: sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==} - regjsparser@0.9.1: - resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} - hasBin: true + parse-bmfont-binary@1.0.6: + resolution: {integrity: sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==} - rehype-external-links@3.0.0: - resolution: {integrity: sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==} + parse-bmfont-xml@1.1.6: + resolution: {integrity: sha512-0cEliVMZEhrFDwMh4SxIyVJpqYoOWDJ9P895tFuS+XuNzI5UBmBk5U5O4KuJdTnZpSBI4LFA2+ZiJaiwfSwlMA==} - rehype-slug@6.0.0: - resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==} + parse-headers@2.0.5: + resolution: {integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==} - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + parse-json@2.2.0: + resolution: {integrity: sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==} engines: {node: '>=0.10.0'} - require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} - requireindex@1.2.0: - resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==} - engines: {node: '>=0.10.5'} + parse-ms@2.1.0: + resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} + engines: {node: '>=6'} - requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} - reselect@4.1.8: - resolution: {integrity: sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==} + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} - resize-observer-polyfill@1.5.1: - resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} + path-equal@1.2.5: + resolution: {integrity: sha512-i73IctDr3F2W+bsOWDyyVm/lqsXO47aY9nsFZUjTT/aljSbkxHxxCoyZ9UUrM8jK0JVod+An+rl48RCsvWM+9g==} - resolve-alpn@1.2.1: - resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + path-exists@2.1.0: + resolution: {integrity: sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==} + engines: {node: '>=0.10.0'} - resolve-cwd@3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-is-inside@1.0.2: + resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} + + path-key@2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} engines: {node: '>=4'} - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - resolve.exports@2.0.2: - resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} - engines: {node: '>=10'} + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} - hasBin: true + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} - responselike@2.0.1: - resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} + path-to-regexp@0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} - resq@1.11.0: - resolution: {integrity: sha512-G10EBz+zAAy3zUd/CDoBbXRL6ia9kOo3xRHrMDsHljI0GDkhYlyjwoCx5+3eCC4swi1uCoZQhskuJkj7Gp57Bw==} + path-to-regexp@2.2.1: + resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==} - restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} + path-to-regexp@3.2.0: + resolution: {integrity: sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==} - restore-cursor@4.0.0: - resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + path-type@1.1.0: + resolution: {integrity: sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==} + engines: {node: '>=0.10.0'} - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} - rfdc@1.4.1: - resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - rgb2hex@0.2.5: - resolution: {integrity: sha512-22MOP1Rh7sAo1BZpDG6R5RFYzR2lYEgwq7HEmyW2qcsOqR2lQKmn+O//xV3YG/0rrhMC6KVX2hU+ZXuaw9a5bw==} + pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} - rimraf@2.5.4: - resolution: {integrity: sha512-Lw7SHMjssciQb/rRz7JyPIy9+bbUshEucPoLRvWqy09vC5zQixl8Uet+Zl+SROBB/JMWHJRdCk1qdxNWHNMvlQ==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true + pause-stream@0.0.11: + resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} - rimraf@2.6.3: - resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true + peek-readable@4.1.0: + resolution: {integrity: sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==} + engines: {node: '>=8'} - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true + pend@1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} - rollup@4.19.0: - resolution: {integrity: sha512-5r7EYSQIowHsK4eTZ0Y81qpZuJz+MUuYeqmmYmRMl1nwhdmbiYqt5jwzf6u7wyOzJgYqtCRMtVRKOtHANBz7rA==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true + phin@2.9.3: + resolution: {integrity: sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - rrweb-cssom@0.6.0: - resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} + phin@3.7.1: + resolution: {integrity: sha512-GEazpTWwTZaEQ9RhL7Nyz0WwqilbqgLahDM3D0hxWwmVDI52nXEybHqiN6/elwpkJBhcuj+WbBu+QfT0uhPGfQ==} + engines: {node: '>= 8'} - rrweb-cssom@0.7.1: - resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} + picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true - rxjs@6.6.7: - resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} - engines: {npm: '>=2.0.0'} + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} - rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + pinkie-promise@2.0.1: + resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} + engines: {node: '>=0.10.0'} - safe-array-concat@1.1.2: - resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} - engines: {node: '>=0.4'} + pinkie@2.0.4: + resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} + engines: {node: '>=0.10.0'} - safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + pixelmatch@4.0.2: + resolution: {integrity: sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==} + hasBin: true - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} - safe-regex-test@1.0.3: - resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} - engines: {node: '>= 0.4'} + pngjs@3.4.0: + resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==} + engines: {node: '>=4.0.0'} - safe-stable-stringify@2.4.3: - resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + polished@4.3.1: + resolution: {integrity: sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==} engines: {node: '>=10'} - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - sax@1.4.1: - resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} - - saxes@6.0.0: - resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} - engines: {node: '>=v12.22.7'} + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} - scheduler@0.21.0: - resolution: {integrity: sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==} + postcss@8.4.39: + resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} + engines: {node: ^10 || ^12 || >=14} - scheduler@0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + potpack@1.0.2: + resolution: {integrity: sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==} - semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + prettier@3.3.2: + resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==} + engines: {node: '>=14'} hasBin: true - semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} - engines: {node: '>=10'} - hasBin: true + pretty-format@27.5.1: + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} - engines: {node: '>= 0.8.0'} + pretty-format@28.1.3: + resolution: {integrity: sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - serialize-error@8.1.0: - resolution: {integrity: sha512-3NnuWfM6vBYoy5gZFvHiYsVbafvI9vZv/+jlIigFn4oP4zjNPK3LhcY0xSCgeb1a5L8jO71Mit9LlNoi2UfDDQ==} + pretty-ms@7.0.1: + resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==} engines: {node: '>=10'} - serialize-javascript@6.0.0: - resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} - - serve-handler@6.1.3: - resolution: {integrity: sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w==} + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - serve-static@1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} - engines: {node: '>= 0.8.0'} + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} - serve@11.3.2: - resolution: {integrity: sha512-yKWQfI3xbj/f7X1lTBg91fXBP0FqjJ4TEi+ilES5yzH0iKJpN5LjNb1YzIfQg9Rqn4ECUS2SOf2+Kmepogoa5w==} - hasBin: true + progress@2.0.1: + resolution: {integrity: sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==} + engines: {node: '>=0.4.0'} - set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + promise-worker-transferable@1.0.4: + resolution: {integrity: sha512-bN+0ehEnrXfxV2ZQvU2PetO0n4gqBD4ulq3MI1WOPLgr7/Mg9yRQkX5+0v1vagr74ZTsl7XtzlaYDo2EuCeYJw==} - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} + prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} - setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - shallow-clone@3.0.1: - resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} - engines: {node: '>=8'} + ps-tree@1.2.0: + resolution: {integrity: sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==} + engines: {node: '>= 0.10'} + hasBin: true - shallowequal@1.1.0: - resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} + pseudomap@1.0.2: + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} - shebang-command@1.2.0: - resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} - engines: {node: '>=0.10.0'} + psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} + pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} - shebang-regex@1.0.0: - resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} - engines: {node: '>=0.10.0'} + punycode@1.4.1: + resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} - shell-quote@1.8.1: - resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + puppeteer-core@10.4.0: + resolution: {integrity: sha512-KU8zyb7AIOqNjLCN3wkrFXxh+EVaG+zrs2P03ATNjc3iwSxHsu5/EvZiREpQ/IJiT9xfQbDVgKcsvRuzLCxglQ==} + engines: {node: '>=10.18.1'} - side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} - engines: {node: '>= 0.4'} + pyright@1.1.369: + resolution: {integrity: sha512-K0mQzVNSN5yq+joFK0JraOlhtL2HKrubCa+SnFznkLsnoZKbmq7M8UpSSDsJKPFfevkmqOKodgGzvt27C6RJAg==} + engines: {node: '>=14.0.0'} + hasBin: true - siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + qs@6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + qs@6.12.3: + resolution: {integrity: sha512-AWJm14H1vVaO/iNZ4/hO+HyaTehuy9nRqVdkTqlJt0HWvBiBIEXFmb4C0DGeYo3Xes9rrEW+TxHsaigCbN5ICQ==} + engines: {node: '>=0.6'} - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} + query-selector-shadow-dom@1.0.1: + resolution: {integrity: sha512-lT5yCqEBgfoMYpf3F2xQRK7zEr1rhIIZuceDK6+xRkJQ4NMbHTwXqk4NkwDwQMNqXgG9r9fyHnzwNVs6zV5KRw==} - simple-concat@1.0.1: - resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - simple-get@3.1.1: - resolution: {integrity: sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==} + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - slash@5.1.0: - resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} - engines: {node: '>=14.16'} + range-parser@1.2.0: + resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} + engines: {node: '>= 0.6'} - slice-ansi@5.0.0: - resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} - engines: {node: '>=12'} + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} - slice-ansi@7.1.0: - resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} - engines: {node: '>=18'} + raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} - socket.io-client@4.7.5: - resolution: {integrity: sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==} - engines: {node: '>=10.0.0'} + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true - socket.io-parser@4.2.4: - resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} - engines: {node: '>=10.0.0'} + react-colorful@5.6.1: + resolution: {integrity: sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} + react-composer@5.0.3: + resolution: {integrity: sha512-1uWd07EME6XZvMfapwZmc7NgCZqDemcvicRi3wMJzXsQLvZ3L7fTHVyPy1bZdnWXM4iPjYuNE+uJ41MLKeTtnA==} + peerDependencies: + react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 - source-map-support@0.5.13: - resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + react-confetti@6.1.0: + resolution: {integrity: sha512-7Ypx4vz0+g8ECVxr88W9zhcQpbeujJAVqL14ZnXJ3I23mOI9/oBVTQ3dkJhUmB0D6XOtCZEM6N0Gm9PMngkORw==} + engines: {node: '>=10.18'} + peerDependencies: + react: ^16.3.0 || ^17.0.1 || ^18.0.0 - source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + react-customizable-progressbar@1.2.0: + resolution: {integrity: sha512-zNaFa8ynfslfVt5mqgDcIQgx9/UN0ohGH0wj1apA4DauMPd1bYNk3KDSu+sdbfhONNVDC8TOWSr6hH3tyX4oHw==} + peerDependencies: + react: ^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 - source-map@0.5.7: - resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} - engines: {node: '>=0.10.0'} + react-docgen-typescript@2.2.2: + resolution: {integrity: sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==} + peerDependencies: + typescript: '>= 4.3.x' - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} + react-docgen@7.0.3: + resolution: {integrity: sha512-i8aF1nyKInZnANZ4uZrH49qn1paRgBZ7wZiCNBMnenlPzEv0mRl+ShpTVEI6wZNl8sSc79xZkivtgLKQArcanQ==} + engines: {node: '>=16.14.0'} - space-separated-tokens@2.0.2: - resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.3.1 - spawn-command@0.0.2: - resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==} + react-draggable@4.4.6: + resolution: {integrity: sha512-LtY5Xw1zTPqHkVmtM3X8MUOxNDOUhv/khTgBgrUvwaS064bwVvxT+q5El0uUFNx5IEPKXuRejr7UqLwBIg5pdw==} + peerDependencies: + react: '>= 16.3.0' + react-dom: '>= 16.3.0' - spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + react-element-to-jsx-string@15.0.0: + resolution: {integrity: sha512-UDg4lXB6BzlobN60P8fHWVPX3Kyw8ORrTeBtClmIlGdkOOE+GYQSFvmEU5iLLpwp/6v42DINwNcwOhOLfQ//FQ==} + peerDependencies: + react: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 + react-dom: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 - spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + react-error-boundary@4.0.13: + resolution: {integrity: sha512-b6PwbdSv8XeOSYvjt8LpgpKrZ0yGdtZokYwkwV2wlcZbxgopHX/hgPl5VgpnoVOWd868n1hktM8Qm4b+02MiLQ==} + peerDependencies: + react: '>=16.13.1' - spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + react-grid-layout@1.4.4: + resolution: {integrity: sha512-7+Lg8E8O8HfOH5FrY80GCIR1SHTn2QnAYKh27/5spoz+OHhMmEhU/14gIkRzJOtympDPaXcVRX/nT1FjmeOUmQ==} + peerDependencies: + react: '>= 16.3.0' + react-dom: '>= 16.3.0' - spdx-license-ids@3.0.18: - resolution: {integrity: sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==} + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - split2@3.2.2: - resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} + react-is@17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - split@0.3.3: - resolution: {integrity: sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==} + react-is@18.1.0: + resolution: {integrity: sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==} - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - stack-utils@2.0.6: - resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} - engines: {node: '>=10'} + react-reconciler@0.27.0: + resolution: {integrity: sha512-HmMDKciQjYmBRGuuhIaKA1ba/7a+UsM5FzOZsMO2JYHt9Jh8reCb7j1eDC95NOyUlKM9KRyvdx0flBuDvYSBoA==} + engines: {node: '>=0.10.0'} + peerDependencies: + react: ^18.0.0 - stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + react-resizable@3.0.5: + resolution: {integrity: sha512-vKpeHhI5OZvYn82kXOs1bC8aOXktGU5AmKAgaZS4F5JPburCtbmDPqE7Pzp+1kN4+Wb81LlF33VpGwWwtXem+w==} + peerDependencies: + react: '>= 16.3' - stats-gl@2.2.8: - resolution: {integrity: sha512-94G5nZvduDmzxBS7K0lYnynYwreZpkknD8g5dZmU6mpwIhy3caCrjAm11Qm1cbyx7mqix7Fp00RkbsonzKWnoQ==} + react-router-dom@6.24.1: + resolution: {integrity: sha512-U19KtXqooqw967Vw0Qcn5cOvrX5Ejo9ORmOtJMzYWtCT4/WOfFLIZGGsVLxcd9UkBO0mSTZtXqhZBsWlHr7+Sg==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' - stats.js@0.17.0: - resolution: {integrity: sha512-hNKz8phvYLPEcRkeG1rsGmV5ChMjKDAWU7/OJJdDErPBNChQXxCo3WZurGpnWc6gZhAzEPFad1aVgyOANH1sMw==} + react-router@6.24.1: + resolution: {integrity: sha512-PTXFXGK2pyXpHzVo3rR9H7ip4lSPZZc0bHG5CARmj65fTT6qG7sTngmb6lcYu1gf3y/8KxORoy9yn59pGpCnpg==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' - statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} + react-transition-group@4.4.5: + resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} + peerDependencies: + react: '>=16.6.0' + react-dom: '>=16.6.0' - std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + react-use-measure@2.1.1: + resolution: {integrity: sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig==} + peerDependencies: + react: '>=16.13' + react-dom: '>=16.13' - stop-iteration-iterator@1.0.0: - resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} - engines: {node: '>= 0.4'} + react-virtualized-auto-sizer@1.0.24: + resolution: {integrity: sha512-3kCn7N9NEb3FlvJrSHWGQ4iVl+ydQObq2fHMn12i5wbtm74zHOPhz/i64OL3c1S1vi9i2GXtZqNqUJTQ+BnNfg==} + peerDependencies: + react: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 + react-dom: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 - storybook@8.2.2: - resolution: {integrity: sha512-xDT9gyzAEFQNeK7P+Mj/8bNzN+fbm6/4D6ihdSzmczayjydpNjMs74HDHMY6S4Bfu6tRVyEK2ALPGnr6ZVofBA==} - hasBin: true + react-window@1.8.10: + resolution: {integrity: sha512-Y0Cx+dnU6NLa5/EvoHukUD0BklJ8qITCtVEPY1C/nL8wwoZ0b5aEw8Ff1dOVHw7fCzMt55XfJDd8S8W8LCaUCg==} + engines: {node: '>8.0.0'} + peerDependencies: + react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 - stream-buffers@3.0.3: - resolution: {integrity: sha512-pqMqwQCso0PBJt2PQmDO0cFj0lyqmiwOMiMSkVtRokl7e+ZTRYgDHKnuZNbqjiJXgsg4nuqtD/zxuo9KqTp0Yw==} - engines: {node: '>= 0.10.0'} + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} - stream-combiner@0.0.4: - resolution: {integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==} + read-pkg-up@1.0.1: + resolution: {integrity: sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==} + engines: {node: '>=0.10.0'} - string-argv@0.3.2: - resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} - engines: {node: '>=0.6.19'} + read-pkg@1.1.0: + resolution: {integrity: sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==} + engines: {node: '>=0.10.0'} - string-length@4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} - engines: {node: '>=10'} + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - string-width@2.1.1: - resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} - engines: {node: '>=4'} + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + readable-web-to-node-stream@3.0.2: + resolution: {integrity: sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==} engines: {node: '>=8'} - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} + readdir-glob@1.1.3: + resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} - string-width@7.2.0: - resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} - engines: {node: '>=18'} + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} - string.prototype.matchall@4.0.11: - resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} - engines: {node: '>= 0.4'} + recast@0.23.9: + resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==} + engines: {node: '>= 4'} - string.prototype.repeat@1.0.0: - resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} + recursive-readdir@2.2.3: + resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} + engines: {node: '>=6.0.0'} - string.prototype.trim@1.2.9: - resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} - engines: {node: '>= 0.4'} + redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} - string.prototype.trimend@1.0.8: - resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + reflect-metadata@0.1.13: + resolution: {integrity: sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==} - string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + reflect.getprototypeof@1.0.6: + resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} engines: {node: '>= 0.4'} - string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - - strip-ansi@3.0.1: - resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} - engines: {node: '>=0.10.0'} + regenerator-runtime@0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - strip-ansi@4.0.0: - resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==} - engines: {node: '>=4'} + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} + regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} + registry-auth-token@3.3.2: + resolution: {integrity: sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==} - strip-bom@2.0.0: - resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==} + registry-url@3.1.0: + resolution: {integrity: sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==} engines: {node: '>=0.10.0'} - strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} + rehype-external-links@3.0.0: + resolution: {integrity: sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==} - strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} + rehype-slug@6.0.0: + resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==} - strip-eof@1.0.0: - resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - - strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - - strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} - - strip-indent@4.0.0: - resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} - engines: {node: '>=12'} - - strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} + requireindex@1.2.0: + resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==} + engines: {node: '>=0.10.5'} - strtok3@6.3.0: - resolution: {integrity: sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==} - engines: {node: '>=10'} + requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - stylis@4.2.0: - resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} + reselect@4.1.8: + resolution: {integrity: sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==} - suffix@0.1.1: - resolution: {integrity: sha512-j5uf6MJtMCfC4vBe5LFktSe4bGyNTBk7I2Kdri0jeLrcv5B9pWfxVa5JQpoxgtR8vaVB7bVxsWgnfQbX5wkhAA==} - engines: {node: '>=4'} + resize-observer-polyfill@1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} - supports-color@2.0.0: - resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} - engines: {node: '>=0.8.0'} + resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} + resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} + responselike@2.0.1: + resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} - suspend-react@0.1.3: - resolution: {integrity: sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ==} - peerDependencies: - react: '>=17.0' + resq@1.11.0: + resolution: {integrity: sha512-G10EBz+zAAy3zUd/CDoBbXRL6ia9kOo3xRHrMDsHljI0GDkhYlyjwoCx5+3eCC4swi1uCoZQhskuJkj7Gp57Bw==} - symbol-tree@3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} - tar-fs@2.0.0: - resolution: {integrity: sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==} + restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - tar-stream@2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} - engines: {node: '>=6'} + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - tar@6.2.1: - resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} - engines: {node: '>=10'} + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - telejson@7.2.0: - resolution: {integrity: sha512-1QTEcJkJEhc8OnStBx/ILRu5J2p0GjvWsBx56bmZRqnrkdBMUe+nX92jxV+p3dB4CP6PZCdJMQJwCggkNBMzkQ==} + rgb2hex@0.2.5: + resolution: {integrity: sha512-22MOP1Rh7sAo1BZpDG6R5RFYzR2lYEgwq7HEmyW2qcsOqR2lQKmn+O//xV3YG/0rrhMC6KVX2hU+ZXuaw9a5bw==} - temp-dir@3.0.0: - resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==} - engines: {node: '>=14.16'} + rimraf@2.5.4: + resolution: {integrity: sha512-Lw7SHMjssciQb/rRz7JyPIy9+bbUshEucPoLRvWqy09vC5zQixl8Uet+Zl+SROBB/JMWHJRdCk1qdxNWHNMvlQ==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true - temp-fs@0.9.9: - resolution: {integrity: sha512-WfecDCR1xC9b0nsrzSaxPf3ZuWeWLUWblW4vlDQAa1biQaKHiImHnJfeQocQe/hXKMcolRzgkcVX/7kK4zoWbw==} - engines: {node: '>=0.8.0'} + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true - temp@0.8.4: - resolution: {integrity: sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==} - engines: {node: '>=6.0.0'} + rollup@4.19.0: + resolution: {integrity: sha512-5r7EYSQIowHsK4eTZ0Y81qpZuJz+MUuYeqmmYmRMl1nwhdmbiYqt5jwzf6u7wyOzJgYqtCRMtVRKOtHANBz7rA==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true - tempy@3.1.0: - resolution: {integrity: sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==} - engines: {node: '>=14.16'} + rrweb-cssom@0.6.0: + resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} - term-size@1.2.0: - resolution: {integrity: sha512-7dPUZQGy/+m3/wjVz3ZW5dobSoD/02NxJpoXUX0WIyjfVS3l0c+b/+9phIDFA7FHzkYtwtMFgeGZ/Y8jVTeqQQ==} - engines: {node: '>=4'} + rrweb-cssom@0.7.1: + resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} - terser@5.31.6: - resolution: {integrity: sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==} - engines: {node: '>=10'} - hasBin: true + run-async@2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} + rxjs@6.6.7: + resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} + engines: {npm: '>=2.0.0'} - test-exclude@7.0.1: - resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} - engines: {node: '>=18'} + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} - three-mesh-bvh@0.7.6: - resolution: {integrity: sha512-rCjsnxEqR9r1/C/lCqzGLS67NDty/S/eT6rAJfDvsanrIctTWdNoR4ZOGWewCB13h1QkVo2BpmC0wakj1+0m8A==} - peerDependencies: - three: '>= 0.151.0' + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - three-stdlib@2.30.4: - resolution: {integrity: sha512-E7sN8UkaorSq2uRZU14AE7wXkdCBa2oFwPkPt92zaecuzrgd98BXkTt+2tFQVF1tPJRvfs7aMZV5dSOq4/vNVg==} - peerDependencies: - three: '>=0.128.0' + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - three@0.166.1: - resolution: {integrity: sha512-LtuafkKHHzm61AQA1be2MAYIw1IjmhOUxhBa0prrLpEMWbV7ijvxCRHjSgHPGp2493wLBzwKV46tA9nivLEgKg==} + safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} - through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + safe-stable-stringify@2.4.3: + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + engines: {node: '>=10'} - timm@1.7.1: - resolution: {integrity: sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==} + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - tiny-invariant@1.3.3: - resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} - tinybench@2.8.0: - resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} + saxes@6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} - tinycolor2@1.6.0: - resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} + scheduler@0.21.0: + resolution: {integrity: sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==} - tinypool@1.0.0: - resolution: {integrity: sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==} - engines: {node: ^18.0.0 || >=20.0.0} + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} - tinyrainbow@1.2.0: - resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} - engines: {node: '>=14.0.0'} + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true - tinyspy@2.2.1: - resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} - engines: {node: '>=14.0.0'} + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true - tinyspy@3.0.0: - resolution: {integrity: sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==} - engines: {node: '>=14.0.0'} + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true - tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} + send@0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} - tmpl@1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + serialize-error@8.1.0: + resolution: {integrity: sha512-3NnuWfM6vBYoy5gZFvHiYsVbafvI9vZv/+jlIigFn4oP4zjNPK3LhcY0xSCgeb1a5L8jO71Mit9LlNoi2UfDDQ==} + engines: {node: '>=10'} - to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} + serialize-javascript@6.0.0: + resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} + serve-handler@6.1.3: + resolution: {integrity: sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w==} - toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} + serve-static@1.15.0: + resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + engines: {node: '>= 0.8.0'} - token-types@4.2.1: - resolution: {integrity: sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==} - engines: {node: '>=10'} + serve@11.3.2: + resolution: {integrity: sha512-yKWQfI3xbj/f7X1lTBg91fXBP0FqjJ4TEi+ilES5yzH0iKJpN5LjNb1YzIfQg9Rqn4ECUS2SOf2+Kmepogoa5w==} + hasBin: true - tough-cookie@4.1.4: - resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} - engines: {node: '>=6'} + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} - tr46@5.0.0: - resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} - engines: {node: '>=18'} + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} - tree-kill@1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} - hasBin: true + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - troika-three-text@0.49.1: - resolution: {integrity: sha512-lXGWxgjJP9kw4i4Wh+0k0Q/7cRfS6iOME4knKht/KozPu9GcFA9NnNpRvehIhrUawq9B0ZRw+0oiFHgRO+4Wig==} - peerDependencies: - three: '>=0.125.0' + shallowequal@1.1.0: + resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} - troika-three-utils@0.49.0: - resolution: {integrity: sha512-umitFL4cT+Fm/uONmaQEq4oZlyRHWwVClaS6ZrdcueRvwc2w+cpNQ47LlJKJswpqtMFWbEhOLy0TekmcPZOdYA==} - peerDependencies: - three: '>=0.125.0' + shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} - troika-worker-utils@0.49.0: - resolution: {integrity: sha512-1xZHoJrG0HFfCvT/iyN41DvI/nRykiBtHqFkGaGgJwq5iXfIZFBiPPEHFpPpgyKM3Oo5ITHXP5wM2TNQszYdVg==} + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} - ts-api-utils@1.3.0: - resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' + shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} - ts-dedent@2.2.0: - resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} - engines: {node: '>=6.10'} + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} - ts-node@10.9.2: - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true + shell-quote@1.8.1: + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} - ts-node@9.1.1: - resolution: {integrity: sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==} - engines: {node: '>=10.0.0'} - hasBin: true - peerDependencies: - typescript: '>=2.7' + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} - tsconfig-paths@4.2.0: - resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} - engines: {node: '>=6'} + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} - tslib@2.6.3: - resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} - tsutils@3.21.0: - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + simple-get@3.1.1: + resolution: {integrity: sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==} - tunnel-rat@0.1.2: - resolution: {integrity: sha512-lR5VHmkPhzdhrM092lI2nACsLO4QubF0/yoOhzX7c+wIpbN1GjHNzCc91QlpxBi+cnx8vVJ+Ur6vL5cEoQPFpQ==} + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} - tween-functions@1.2.0: - resolution: {integrity: sha512-PZBtLYcCLtEcjL14Fzb1gSxPBeL7nWvGhO5ZFPGqziCcr8uvHp0NDmdjBchp6KHL+tExcg0m3NISmKxhU394dA==} + slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} + slice-ansi@7.1.0: + resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} + engines: {node: '>=18'} - type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} + socket.io-client@4.7.5: + resolution: {integrity: sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==} + engines: {node: '>=10.0.0'} - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} + socket.io-parser@4.2.4: + resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} + engines: {node: '>=10.0.0'} - type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} + source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} - type-fest@1.4.0: - resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} - engines: {node: '>=10'} + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} + source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} - type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - typed-array-buffer@1.0.2: - resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} - engines: {node: '>= 0.4'} + spawn-command@0.0.2: + resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==} - typed-array-byte-length@1.0.1: - resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} - engines: {node: '>= 0.4'} + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - typed-array-byte-offset@1.0.2: - resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} - engines: {node: '>= 0.4'} + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} - typed-array-length@1.0.6: - resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} - engines: {node: '>= 0.4'} + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - typescript-eslint@7.16.0: - resolution: {integrity: sha512-kaVRivQjOzuoCXU6+hLnjo3/baxyzWVO5GrnExkFzETRYJKVHYkrJglOu2OCm8Hi9RPDWX1PTNNTpU5KRV0+RA==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + spdx-license-ids@3.0.18: + resolution: {integrity: sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==} - typescript-json-schema@0.64.0: - resolution: {integrity: sha512-Sew8llkYSzpxaMoGjpjD6NMFCr6DoWFHLs7Bz1LU48pzzi8ok8W+GZs9cG87IMBpC0UI7qwBMUI2um0LGxxLOg==} - hasBin: true + split2@3.2.2: + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} - typescript@5.1.6: - resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} - engines: {node: '>=14.17'} - hasBin: true + split@0.3.3: + resolution: {integrity: sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==} - typescript@5.5.4: - resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} - engines: {node: '>=14.17'} - hasBin: true + stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} - ua-parser-js@0.7.38: - resolution: {integrity: sha512-fYmIy7fKTSFAhG3fuPlubeGaMoAd6r0rSnfEsO5nEY55i26KSLt9EH7PLQiiqPUhNqYIJvSkTy1oArIcXAbPbA==} + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - ufo@1.5.4: - resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + stats-gl@2.2.8: + resolution: {integrity: sha512-94G5nZvduDmzxBS7K0lYnynYwreZpkknD8g5dZmU6mpwIhy3caCrjAm11Qm1cbyx7mqix7Fp00RkbsonzKWnoQ==} - uid@2.0.2: - resolution: {integrity: sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==} - engines: {node: '>=8'} + stats.js@0.17.0: + resolution: {integrity: sha512-hNKz8phvYLPEcRkeG1rsGmV5ChMjKDAWU7/OJJdDErPBNChQXxCo3WZurGpnWc6gZhAzEPFad1aVgyOANH1sMw==} - unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} - unbzip2-stream@1.3.3: - resolution: {integrity: sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==} + std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} - undici-types@6.13.0: - resolution: {integrity: sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==} + storybook@8.3.3: + resolution: {integrity: sha512-FG2KAVQN54T9R6voudiEftehtkXtLO+YVGP2gBPfacEdDQjY++ld7kTbHzpTT/bpCDx7Yq3dqOegLm9arVJfYw==} + hasBin: true - unicode-canonical-property-names-ecmascript@2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} - engines: {node: '>=4'} + stream-buffers@3.0.3: + resolution: {integrity: sha512-pqMqwQCso0PBJt2PQmDO0cFj0lyqmiwOMiMSkVtRokl7e+ZTRYgDHKnuZNbqjiJXgsg4nuqtD/zxuo9KqTp0Yw==} + engines: {node: '>= 0.10.0'} - unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} + stream-combiner@0.0.4: + resolution: {integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==} - unicode-match-property-value-ecmascript@2.1.0: - resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} - engines: {node: '>=4'} + string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} - unicode-property-aliases-ecmascript@2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + string-width@2.1.1: + resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} engines: {node: '>=4'} - unicorn-magic@0.1.0: - resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} - engines: {node: '>=18'} + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} - unique-string@3.0.0: - resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} - unist-util-is@6.0.0: - resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} - - unist-util-visit-parents@6.0.1: - resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} - - unist-util-visit@5.0.0: - resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} - universalify@0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} - engines: {node: '>= 4.0.0'} + string.prototype.matchall@4.0.11: + resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} + engines: {node: '>= 0.4'} - universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} + string.prototype.repeat@1.0.0: + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} - unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} + string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} - unplugin@1.11.0: - resolution: {integrity: sha512-3r7VWZ/webh0SGgJScpWl2/MRCZK5d3ZYFcNaeci/GQ7Teop7zf0Nl2pUuz7G21BwPd9pcUPOC5KmJ2L3WgC5g==} - engines: {node: '>=14.0.0'} + string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} - update-browserslist-db@1.1.0: - resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} - update-check@1.5.2: - resolution: {integrity: sha512-1TrmYLuLj/5ZovwUS7fFd1jMH3NnFDN1y1A8dboedIDt7zs/zJMo6TwwlhYKkSeEwzleeiSBV5/3c9ufAQWDaQ==} + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - url-parse@1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + strip-ansi@3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} + engines: {node: '>=0.10.0'} - url@0.11.3: - resolution: {integrity: sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==} + strip-ansi@4.0.0: + resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==} + engines: {node: '>=4'} - use-sync-external-store@1.2.0: - resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} - utif@2.0.1: - resolution: {integrity: sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==} + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + strip-bom@2.0.0: + resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==} + engines: {node: '>=0.10.0'} - util@0.12.5: - resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} - utility-types@3.11.0: - resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==} - engines: {node: '>= 4'} + strip-eof@1.0.0: + resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} + engines: {node: '>=0.10.0'} - utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} - uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true + strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} - uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - hasBin: true + strip-indent@4.0.0: + resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} + engines: {node: '>=12'} - v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} - v8-to-istanbul@9.3.0: - resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} - engines: {node: '>=10.12.0'} + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} - validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + strtok3@6.3.0: + resolution: {integrity: sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==} + engines: {node: '>=10'} - vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} + stylis@4.2.0: + resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} - vite-node@2.0.4: - resolution: {integrity: sha512-ZpJVkxcakYtig5iakNeL7N3trufe3M6vGuzYAr4GsbCTwobDeyPJpE4cjDhhPluv8OvQCFzu2LWp6GkoKRITXA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true + suffix@0.1.1: + resolution: {integrity: sha512-j5uf6MJtMCfC4vBe5LFktSe4bGyNTBk7I2Kdri0jeLrcv5B9pWfxVa5JQpoxgtR8vaVB7bVxsWgnfQbX5wkhAA==} + engines: {node: '>=4'} - vite@5.3.5: - resolution: {integrity: sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true + supports-color@2.0.0: + resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} + engines: {node: '>=0.8.0'} - vitest@2.0.4: - resolution: {integrity: sha512-luNLDpfsnxw5QSW4bISPe6tkxVvv5wn2BBs/PuDRkhXZ319doZyLOBr1sjfB5yCEpTiU7xCAdViM8TNVGPwoog==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 2.0.4 - '@vitest/ui': 2.0.4 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} - w3c-xmlserializer@5.0.0: - resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} - engines: {node: '>=18'} + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} - walk-up-path@3.0.1: - resolution: {integrity: sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==} + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} - walker@1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} - wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + suspend-react@0.1.3: + resolution: {integrity: sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ==} + peerDependencies: + react: '>=17.0' - webdriver@7.11.0: - resolution: {integrity: sha512-Sd4n3Hxz/6WDa4Ay8cJj/ICDbf2ndlAzd7NMj+dmhfDsDF7L77eCZYB8zrrxs2hoK63E54eyKzyycK3BB3WoYQ==} - engines: {node: '>=12.0.0'} + symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - webdriverio@7.11.1: - resolution: {integrity: sha512-N796qZIqkfIJJtSNBcAimnVr3SrnEjbwjYSBqAhVdGSidUKb1k6bxjC223WFwpANGkxABJUrVkx+qGNOtc+yGg==} - engines: {node: '>=12.0.0'} + tar-fs@2.0.0: + resolution: {integrity: sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==} - webgl-constants@1.1.1: - resolution: {integrity: sha512-LkBXKjU5r9vAW7Gcu3T5u+5cvSvh5WwINdr0C+9jpzVB41cjQAP5ePArDtk/WHYdVj0GefCgM73BA7FlIiNtdg==} + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} - webgl-sdf-generator@1.1.1: - resolution: {integrity: sha512-9Z0JcMTFxeE+b2x1LJTdnaT8rT8aEp7MVxkNwoycNmJWwPdzoXzMh0BjJSh/AEFP+KPYZUli814h8bJZFIZ2jA==} + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + telejson@7.2.0: + resolution: {integrity: sha512-1QTEcJkJEhc8OnStBx/ILRu5J2p0GjvWsBx56bmZRqnrkdBMUe+nX92jxV+p3dB4CP6PZCdJMQJwCggkNBMzkQ==} - webidl-conversions@7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} - engines: {node: '>=12'} + temp-fs@0.9.9: + resolution: {integrity: sha512-WfecDCR1xC9b0nsrzSaxPf3ZuWeWLUWblW4vlDQAa1biQaKHiImHnJfeQocQe/hXKMcolRzgkcVX/7kK4zoWbw==} + engines: {node: '>=0.8.0'} - webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} - engines: {node: '>=10.13.0'} + term-size@1.2.0: + resolution: {integrity: sha512-7dPUZQGy/+m3/wjVz3ZW5dobSoD/02NxJpoXUX0WIyjfVS3l0c+b/+9phIDFA7FHzkYtwtMFgeGZ/Y8jVTeqQQ==} + engines: {node: '>=4'} - webpack-virtual-modules@0.6.2: - resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + terser@5.31.6: + resolution: {integrity: sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==} + engines: {node: '>=10'} + hasBin: true - whatwg-encoding@3.1.1: - resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + test-exclude@7.0.1: + resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} engines: {node: '>=18'} - whatwg-mimetype@4.0.0: - resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} - engines: {node: '>=18'} + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - whatwg-url@14.0.0: - resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} - engines: {node: '>=18'} + three-mesh-bvh@0.7.6: + resolution: {integrity: sha512-rCjsnxEqR9r1/C/lCqzGLS67NDty/S/eT6rAJfDvsanrIctTWdNoR4ZOGWewCB13h1QkVo2BpmC0wakj1+0m8A==} + peerDependencies: + three: '>= 0.151.0' - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + three-stdlib@2.30.4: + resolution: {integrity: sha512-E7sN8UkaorSq2uRZU14AE7wXkdCBa2oFwPkPt92zaecuzrgd98BXkTt+2tFQVF1tPJRvfs7aMZV5dSOq4/vNVg==} + peerDependencies: + three: '>=0.128.0' - which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + three@0.166.1: + resolution: {integrity: sha512-LtuafkKHHzm61AQA1be2MAYIw1IjmhOUxhBa0prrLpEMWbV7ijvxCRHjSgHPGp2493wLBzwKV46tA9nivLEgKg==} - which-builtin-type@1.1.4: - resolution: {integrity: sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==} - engines: {node: '>= 0.4'} + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} + timm@1.7.1: + resolution: {integrity: sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==} - which-typed-array@1.1.15: - resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} - engines: {node: '>= 0.4'} + tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true + tinybench@2.8.0: + resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true + tinycolor2@1.6.0: + resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} - why-is-node-running@2.3.0: - resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} - engines: {node: '>=8'} - hasBin: true + tinypool@1.0.0: + resolution: {integrity: sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==} + engines: {node: ^18.0.0 || >=20.0.0} - wide-align@1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + tinyrainbow@1.2.0: + resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} + engines: {node: '>=14.0.0'} - widest-line@2.0.1: - resolution: {integrity: sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==} - engines: {node: '>=4'} + tinyspy@3.0.0: + resolution: {integrity: sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==} + engines: {node: '>=14.0.0'} - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} + tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} - workerpool@6.2.0: - resolution: {integrity: sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==} + to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} - wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + token-types@4.2.1: + resolution: {integrity: sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==} engines: {node: '>=10'} - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} + tough-cookie@4.1.4: + resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} + engines: {node: '>=6'} - wrap-ansi@9.0.0: - resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} - engines: {node: '>=18'} + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + tr46@5.0.0: + resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} + engines: {node: '>=18'} - write-file-atomic@2.4.3: - resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==} + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true - write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + troika-three-text@0.49.1: + resolution: {integrity: sha512-lXGWxgjJP9kw4i4Wh+0k0Q/7cRfS6iOME4knKht/KozPu9GcFA9NnNpRvehIhrUawq9B0ZRw+0oiFHgRO+4Wig==} + peerDependencies: + three: '>=0.125.0' - ws@7.4.6: - resolution: {integrity: sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==} - engines: {node: '>=8.3.0'} + troika-three-utils@0.49.0: + resolution: {integrity: sha512-umitFL4cT+Fm/uONmaQEq4oZlyRHWwVClaS6ZrdcueRvwc2w+cpNQ47LlJKJswpqtMFWbEhOLy0TekmcPZOdYA==} peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true + three: '>=0.125.0' - ws@8.17.1: - resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} - engines: {node: '>=10.0.0'} + troika-worker-utils@0.49.0: + resolution: {integrity: sha512-1xZHoJrG0HFfCvT/iyN41DvI/nRykiBtHqFkGaGgJwq5iXfIZFBiPPEHFpPpgyKM3Oo5ITHXP5wM2TNQszYdVg==} + + ts-api-utils@1.3.0: + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true + typescript: '>=4.2.0' - ws@8.18.0: - resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} - engines: {node: '>=10.0.0'} + ts-dedent@2.2.0: + resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} + engines: {node: '>=6.10'} + + ts-node@10.9.2: + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' peerDependenciesMeta: - bufferutil: + '@swc/core': optional: true - utf-8-validate: + '@swc/wasm': optional: true - xhr@2.6.0: - resolution: {integrity: sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==} - - xml-name-validator@5.0.0: - resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} - engines: {node: '>=18'} + ts-node@9.1.1: + resolution: {integrity: sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==} + engines: {node: '>=10.0.0'} + hasBin: true + peerDependencies: + typescript: '>=2.7' - xml-parse-from-string@1.0.1: - resolution: {integrity: sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==} + tsconfig-paths@4.2.0: + resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} + engines: {node: '>=6'} - xml2js@0.5.0: - resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} - engines: {node: '>=4.0.0'} + tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - xmlbuilder@11.0.1: - resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} - engines: {node: '>=4.0'} + tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - xmlchars@2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} - xmlhttprequest-ssl@2.0.0: - resolution: {integrity: sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==} - engines: {node: '>=0.4.0'} + tsutils@3.21.0: + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} + tunnel-rat@0.1.2: + resolution: {integrity: sha512-lR5VHmkPhzdhrM092lI2nACsLO4QubF0/yoOhzX7c+wIpbN1GjHNzCc91QlpxBi+cnx8vVJ+Ur6vL5cEoQPFpQ==} - y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} + tween-functions@1.2.0: + resolution: {integrity: sha512-PZBtLYcCLtEcjL14Fzb1gSxPBeL7nWvGhO5ZFPGqziCcr8uvHp0NDmdjBchp6KHL+tExcg0m3NISmKxhU394dA==} - yallist@2.1.2: - resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} - yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} + type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} - yaml@2.4.5: - resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} - engines: {node: '>= 14'} - hasBin: true + type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} - yargs-parser@20.2.4: - resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} - engines: {node: '>=10'} + typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} - yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} + typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} - yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} + typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} - yargs-unparser@2.0.0: - resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} - engines: {node: '>=10'} + typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} - yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} + typescript-eslint@7.16.0: + resolution: {integrity: sha512-kaVRivQjOzuoCXU6+hLnjo3/baxyzWVO5GrnExkFzETRYJKVHYkrJglOu2OCm8Hi9RPDWX1PTNNTpU5KRV0+RA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} + typescript-json-schema@0.64.0: + resolution: {integrity: sha512-Sew8llkYSzpxaMoGjpjD6NMFCr6DoWFHLs7Bz1LU48pzzi8ok8W+GZs9cG87IMBpC0UI7qwBMUI2um0LGxxLOg==} + hasBin: true - yarn-install@1.0.0: - resolution: {integrity: sha512-VO1u181msinhPcGvQTVMnHVOae8zjX/NSksR17e6eXHRveDvHCF5mGjh9hkN8mzyfnCqcBe42LdTs7bScuTaeg==} - engines: {node: '>=6'} + typescript@5.1.6: + resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} + engines: {node: '>=14.17'} hasBin: true - yauzl@2.10.0: - resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + typescript@5.5.4: + resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} + engines: {node: '>=14.17'} + hasBin: true - yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} + ua-parser-js@0.7.38: + resolution: {integrity: sha512-fYmIy7fKTSFAhG3fuPlubeGaMoAd6r0rSnfEsO5nEY55i26KSLt9EH7PLQiiqPUhNqYIJvSkTy1oArIcXAbPbA==} - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} + uid@2.0.2: + resolution: {integrity: sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==} + engines: {node: '>=8'} - zip-stream@4.1.1: - resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==} - engines: {node: '>= 10'} + unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - zustand@3.7.2: - resolution: {integrity: sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==} - engines: {node: '>=12.7.0'} - peerDependencies: - react: '>=16.8' - peerDependenciesMeta: - react: - optional: true + unbzip2-stream@1.3.3: + resolution: {integrity: sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==} - zustand@4.5.4: - resolution: {integrity: sha512-/BPMyLKJPtFEvVL0E9E9BTUM63MNyhPGlvxk1XjrfWTUlV+BR8jufjsovHzrtR6YNcBEcL7cMHovL1n9xHawEg==} - engines: {node: '>=12.7.0'} - peerDependencies: - '@types/react': '>=16.8' - immer: '>=9.0.6' - react: '>=16.8' - peerDependenciesMeta: - '@types/react': - optional: true - immer: - optional: true - react: - optional: true + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} -snapshots: + undici-types@6.13.0: + resolution: {integrity: sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==} - '@adobe/css-tools@4.4.0': {} + unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} - '@aldabil/react-scheduler@2.7.8(5p2u46g4dnuejshpvwpzugasde)': - dependencies: - '@mui/icons-material': 5.16.1(@mui/material@5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) - '@mui/material': 5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mui/x-date-pickers': 6.19.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@mui/material@5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mui/system@5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(date-fns@2.30.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - date-fns: 2.30.0 - react: 18.3.1 + unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} - '@babel/code-frame@7.24.7': - dependencies: - '@babel/highlight': 7.24.7 - picocolors: 1.0.1 + universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} - '@babel/compat-data@7.24.8': {} + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} - '@babel/compat-data@7.25.2': {} + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} - '@babel/core@7.24.8': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.8 - '@babel/helper-compilation-targets': 7.24.8 - '@babel/helper-module-transforms': 7.24.8(@babel/core@7.24.8) - '@babel/helpers': 7.24.8 - '@babel/parser': 7.24.8 - '@babel/template': 7.24.7 - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.8 - convert-source-map: 2.0.0 - debug: 4.3.5 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color + unplugin@1.11.0: + resolution: {integrity: sha512-3r7VWZ/webh0SGgJScpWl2/MRCZK5d3ZYFcNaeci/GQ7Teop7zf0Nl2pUuz7G21BwPd9pcUPOC5KmJ2L3WgC5g==} + engines: {node: '>=14.0.0'} - '@babel/core@7.25.2': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.0 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helpers': 7.25.0 - '@babel/parser': 7.25.3 - '@babel/template': 7.25.0 - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 - convert-source-map: 2.0.0 - debug: 4.3.6 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color + update-browserslist-db@1.1.0: + resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' - '@babel/generator@7.24.8': - dependencies: - '@babel/types': 7.24.8 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 + update-check@1.5.2: + resolution: {integrity: sha512-1TrmYLuLj/5ZovwUS7fFd1jMH3NnFDN1y1A8dboedIDt7zs/zJMo6TwwlhYKkSeEwzleeiSBV5/3c9ufAQWDaQ==} - '@babel/generator@7.25.0': - dependencies: - '@babel/types': 7.25.2 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - '@babel/helper-annotate-as-pure@7.24.7': - dependencies: - '@babel/types': 7.25.2 + url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} - '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7': - dependencies: - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 - transitivePeerDependencies: - - supports-color + url@0.11.3: + resolution: {integrity: sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==} - '@babel/helper-compilation-targets@7.24.8': - dependencies: - '@babel/compat-data': 7.24.8 - '@babel/helper-validator-option': 7.24.8 - browserslist: 4.23.2 - lru-cache: 5.1.1 - semver: 6.3.1 + use-sync-external-store@1.2.0: + resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@babel/helper-compilation-targets@7.25.2': - dependencies: - '@babel/compat-data': 7.25.2 - '@babel/helper-validator-option': 7.24.8 - browserslist: 4.23.3 - lru-cache: 5.1.1 - semver: 6.3.1 + utif@2.0.1: + resolution: {integrity: sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==} - '@babel/helper-create-class-features-plugin@7.24.8(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-function-name': 7.24.7 - '@babel/helper-member-expression-to-functions': 7.24.8 - '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/helper-replace-supers': 7.24.7(@babel/core@7.25.2) - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - '@babel/helper-create-regexp-features-plugin@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - regexpu-core: 5.3.2 - semver: 6.3.1 + util@0.12.5: + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} - '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - debug: 4.3.6 - lodash.debounce: 4.0.8 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color + utility-types@3.11.0: + resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==} + engines: {node: '>= 4'} - '@babel/helper-environment-visitor@7.24.7': - dependencies: - '@babel/types': 7.24.8 + utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} - '@babel/helper-function-name@7.24.7': - dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.8 + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true - '@babel/helper-hoist-variables@7.24.7': - dependencies: - '@babel/types': 7.24.8 + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true - '@babel/helper-member-expression-to-functions@7.24.8': - dependencies: - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 - transitivePeerDependencies: - - supports-color + v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - '@babel/helper-module-imports@7.24.7': - dependencies: - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.8 - transitivePeerDependencies: - - supports-color + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - '@babel/helper-module-transforms@7.24.8(@babel/core@7.24.8)': - dependencies: - '@babel/core': 7.24.8 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-simple-access': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 - transitivePeerDependencies: - - supports-color + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} - '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-simple-access': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 - '@babel/traverse': 7.25.3 - transitivePeerDependencies: - - supports-color + vite-node@2.0.4: + resolution: {integrity: sha512-ZpJVkxcakYtig5iakNeL7N3trufe3M6vGuzYAr4GsbCTwobDeyPJpE4cjDhhPluv8OvQCFzu2LWp6GkoKRITXA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true - '@babel/helper-optimise-call-expression@7.24.7': - dependencies: - '@babel/types': 7.25.2 + vite@5.3.5: + resolution: {integrity: sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true - '@babel/helper-plugin-utils@7.24.8': {} + vitest@2.0.4: + resolution: {integrity: sha512-luNLDpfsnxw5QSW4bISPe6tkxVvv5wn2BBs/PuDRkhXZ319doZyLOBr1sjfB5yCEpTiU7xCAdViM8TNVGPwoog==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 2.0.4 + '@vitest/ui': 2.0.4 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true - '@babel/helper-remap-async-to-generator@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-wrap-function': 7.24.7 - transitivePeerDependencies: - - supports-color + w3c-xmlserializer@5.0.0: + resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} + engines: {node: '>=18'} - '@babel/helper-replace-supers@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-member-expression-to-functions': 7.24.8 - '@babel/helper-optimise-call-expression': 7.24.7 - transitivePeerDependencies: - - supports-color + wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - '@babel/helper-simple-access@7.24.7': - dependencies: - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.8 - transitivePeerDependencies: - - supports-color + webdriver@7.11.0: + resolution: {integrity: sha512-Sd4n3Hxz/6WDa4Ay8cJj/ICDbf2ndlAzd7NMj+dmhfDsDF7L77eCZYB8zrrxs2hoK63E54eyKzyycK3BB3WoYQ==} + engines: {node: '>=12.0.0'} - '@babel/helper-skip-transparent-expression-wrappers@7.24.7': - dependencies: - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 - transitivePeerDependencies: - - supports-color + webdriverio@7.11.1: + resolution: {integrity: sha512-N796qZIqkfIJJtSNBcAimnVr3SrnEjbwjYSBqAhVdGSidUKb1k6bxjC223WFwpANGkxABJUrVkx+qGNOtc+yGg==} + engines: {node: '>=12.0.0'} - '@babel/helper-split-export-declaration@7.24.7': - dependencies: - '@babel/types': 7.24.8 + webgl-constants@1.1.1: + resolution: {integrity: sha512-LkBXKjU5r9vAW7Gcu3T5u+5cvSvh5WwINdr0C+9jpzVB41cjQAP5ePArDtk/WHYdVj0GefCgM73BA7FlIiNtdg==} - '@babel/helper-string-parser@7.24.8': {} + webgl-sdf-generator@1.1.1: + resolution: {integrity: sha512-9Z0JcMTFxeE+b2x1LJTdnaT8rT8aEp7MVxkNwoycNmJWwPdzoXzMh0BjJSh/AEFP+KPYZUli814h8bJZFIZ2jA==} - '@babel/helper-validator-identifier@7.24.7': {} + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - '@babel/helper-validator-option@7.24.8': {} + webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} - '@babel/helper-wrap-function@7.24.7': - dependencies: - '@babel/helper-function-name': 7.24.7 - '@babel/template': 7.25.0 - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 - transitivePeerDependencies: - - supports-color + webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} - '@babel/helpers@7.24.8': - dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.8 + webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + + whatwg-encoding@3.1.1: + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + engines: {node: '>=18'} + + whatwg-mimetype@4.0.0: + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} - '@babel/helpers@7.25.0': - dependencies: - '@babel/template': 7.25.0 - '@babel/types': 7.25.2 + whatwg-url@14.0.0: + resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} + engines: {node: '>=18'} - '@babel/highlight@7.24.7': - dependencies: - '@babel/helper-validator-identifier': 7.24.7 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.0.1 + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - '@babel/parser@7.24.8': - dependencies: - '@babel/types': 7.24.8 + which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - '@babel/parser@7.25.3': - dependencies: - '@babel/types': 7.25.2 + which-builtin-type@1.1.4: + resolution: {integrity: sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==} + engines: {node: '>= 0.4'} - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - optional: true + widest-line@2.0.1: + resolution: {integrity: sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==} + engines: {node: '>=4'} - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + workerpool@6.2.0: + resolution: {integrity: sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==} - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} - '@babel/plugin-syntax-flow@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} - '@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} - '@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + ws@7.4.6: + resolution: {integrity: sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true - '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + xhr@2.6.0: + resolution: {integrity: sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==} - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + xml-name-validator@5.0.0: + resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} + engines: {node: '>=18'} - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + xml-parse-from-string@1.0.1: + resolution: {integrity: sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==} - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + xml2js@0.5.0: + resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} + engines: {node: '>=4.0.0'} - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + xmlbuilder@11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + xmlhttprequest-ssl@2.0.0: + resolution: {integrity: sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==} + engines: {node: '>=0.4.0'} - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} - '@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + yallist@2.1.2: + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} - '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - '@babel/plugin-transform-async-generator-functions@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - '@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color + yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} - '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + yaml@2.4.5: + resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} + engines: {node: '>= 14'} + hasBin: true - '@babel/plugin-transform-block-scoping@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + yargs-parser@20.2.4: + resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} + engines: {node: '>=10'} - '@babel/plugin-transform-class-properties@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - transitivePeerDependencies: - - supports-color + yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} - '@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} - '@babel/plugin-transform-classes@7.24.8(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-function-name': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-replace-supers': 7.24.7(@babel/core@7.25.2) - '@babel/helper-split-export-declaration': 7.24.7 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color + yargs-unparser@2.0.0: + resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} + engines: {node: '>=10'} - '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/template': 7.25.0 + yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} - '@babel/plugin-transform-destructuring@7.24.8(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} - '@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + yarn-install@1.0.0: + resolution: {integrity: sha512-VO1u181msinhPcGvQTVMnHVOae8zjX/NSksR17e6eXHRveDvHCF5mGjh9hkN8mzyfnCqcBe42LdTs7bScuTaeg==} + engines: {node: '>=6'} + hasBin: true - '@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + yauzl@2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} - '@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) + yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} - '@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 - transitivePeerDependencies: - - supports-color + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} - '@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) + zip-stream@4.1.1: + resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==} + engines: {node: '>= 10'} - '@babel/plugin-transform-flow-strip-types@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.25.2) + zustand@3.7.2: + resolution: {integrity: sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==} + engines: {node: '>=12.7.0'} + peerDependencies: + react: '>=16.8' + peerDependenciesMeta: + react: + optional: true - '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - transitivePeerDependencies: - - supports-color + zustand@4.5.4: + resolution: {integrity: sha512-/BPMyLKJPtFEvVL0E9E9BTUM63MNyhPGlvxk1XjrfWTUlV+BR8jufjsovHzrtR6YNcBEcL7cMHovL1n9xHawEg==} + engines: {node: '>=12.7.0'} + peerDependencies: + '@types/react': '>=16.8' + immer: '>=9.0.6' + react: '>=16.8' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true - '@babel/plugin-transform-function-name@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-function-name': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 +snapshots: - '@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) + '@adobe/css-tools@4.4.0': {} - '@babel/plugin-transform-literals@7.24.7(@babel/core@7.25.2)': + '@aldabil/react-scheduler@2.7.8(5p2u46g4dnuejshpvwpzugasde)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@mui/icons-material': 5.16.1(@mui/material@5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) + '@mui/material': 5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mui/x-date-pickers': 6.19.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@mui/material@5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mui/system@5.16.1(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.0(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(date-fns@2.30.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + date-fns: 2.30.0 + react: 18.3.1 - '@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.25.2)': + '@ampproject/remapping@2.3.0': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 - '@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.25.2)': + '@babel/code-frame@7.24.7': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/highlight': 7.24.7 + picocolors: 1.0.1 - '@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - transitivePeerDependencies: - - supports-color + '@babel/compat-data@7.24.8': {} - '@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-simple-access': 7.24.7 - transitivePeerDependencies: - - supports-color + '@babel/compat-data@7.25.2': {} - '@babel/plugin-transform-modules-systemjs@7.24.7(@babel/core@7.25.2)': + '@babel/core@7.24.8': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-hoist-variables': 7.24.7 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.24.8 + '@babel/helper-compilation-targets': 7.24.8 + '@babel/helper-module-transforms': 7.24.8(@babel/core@7.24.8) + '@babel/helpers': 7.24.8 + '@babel/parser': 7.24.8 + '@babel/template': 7.24.7 + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.8 + convert-source-map: 2.0.0 + debug: 4.3.5 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.25.2)': + '@babel/core@7.25.2': dependencies: - '@babel/core': 7.25.2 + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.25.0 + '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helpers': 7.25.0 + '@babel/parser': 7.25.3 + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 + convert-source-map: 2.0.0 + debug: 4.3.6 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.25.2)': + '@babel/generator@7.24.8': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/types': 7.24.8 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 - '@babel/plugin-transform-new-target@7.24.7(@babel/core@7.25.2)': + '@babel/generator@7.25.0': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/types': 7.25.2 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 - '@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.25.2)': + '@babel/helper-compilation-targets@7.24.8': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) + '@babel/compat-data': 7.24.8 + '@babel/helper-validator-option': 7.24.8 + browserslist: 4.23.2 + lru-cache: 5.1.1 + semver: 6.3.1 - '@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.25.2)': + '@babel/helper-compilation-targets@7.25.2': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) + '@babel/compat-data': 7.25.2 + '@babel/helper-validator-option': 7.24.8 + browserslist: 4.23.3 + lru-cache: 5.1.1 + semver: 6.3.1 - '@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.25.2)': + '@babel/helper-environment-visitor@7.24.7': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2) + '@babel/types': 7.24.8 - '@babel/plugin-transform-object-super@7.24.7(@babel/core@7.25.2)': + '@babel/helper-function-name@7.24.7': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-replace-supers': 7.24.7(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color + '@babel/template': 7.24.7 + '@babel/types': 7.24.8 - '@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.25.2)': + '@babel/helper-hoist-variables@7.24.7': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) + '@babel/types': 7.24.8 - '@babel/plugin-transform-optional-chaining@7.24.8(@babel/core@7.25.2)': + '@babel/helper-module-imports@7.24.7': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.8 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-private-methods@7.24.7(@babel/core@7.25.2)': + '@babel/helper-module-transforms@7.24.8(@babel/core@7.24.8)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.24.8 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.25.2)': + '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + '@babel/traverse': 7.25.3 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - regenerator-transform: 0.15.2 - - '@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-spread@7.24.7(@babel/core@7.25.2)': + '@babel/helper-simple-access@7.24.7': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.8 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-typeof-symbol@7.24.8(@babel/core@7.25.2)': + '@babel/helper-split-export-declaration@7.24.7': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/types': 7.24.8 - '@babel/plugin-transform-typescript@7.24.8(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color + '@babel/helper-string-parser@7.24.8': {} - '@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-validator-identifier@7.24.7': {} - '@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-validator-option@7.24.8': {} - '@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.25.2)': + '@babel/helpers@7.24.8': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/template': 7.24.7 + '@babel/types': 7.24.8 - '@babel/plugin-transform-unicode-sets-regex@7.24.7(@babel/core@7.25.2)': + '@babel/helpers@7.25.0': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/template': 7.25.0 + '@babel/types': 7.25.2 - '@babel/preset-env@7.24.8(@babel/core@7.25.2)': + '@babel/highlight@7.24.7': dependencies: - '@babel/compat-data': 7.25.2 - '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-validator-option': 7.24.8 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.2) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.2) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.25.2) - '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-async-generator-functions': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-block-scoping': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-classes': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-destructuring': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-dotall-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-duplicate-keys': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-dynamic-import': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-exponentiation-operator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-function-name': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-json-strings': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-literals': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-modules-amd': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-modules-systemjs': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-modules-umd': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-new-target': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-reserved-words': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-typeof-symbol': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-escapes': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-property-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-sets-regex': 7.24.7(@babel/core@7.25.2) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.25.2) - babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.25.2) - babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.25.2) - babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.25.2) - core-js-compat: 3.37.1 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color + '@babel/helper-validator-identifier': 7.24.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.1 - '@babel/preset-flow@7.24.7(@babel/core@7.25.2)': + '@babel/parser@7.24.8': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-validator-option': 7.24.8 - '@babel/plugin-transform-flow-strip-types': 7.24.7(@babel/core@7.25.2) + '@babel/types': 7.24.8 - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.25.2)': + '@babel/parser@7.25.3': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 '@babel/types': 7.25.2 - esutils: 2.0.3 - - '@babel/preset-typescript@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-validator-option': 7.24.8 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-typescript': 7.24.8(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color - - '@babel/register@7.24.6(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - clone-deep: 4.0.1 - find-cache-dir: 2.1.0 - make-dir: 2.1.0 - pirates: 4.0.6 - source-map-support: 0.5.21 - - '@babel/regjsgen@0.8.0': {} '@babel/runtime-corejs3@7.24.8': dependencies: @@ -8403,190 +6446,16 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 - '@istanbuljs/load-nyc-config@1.1.0': - dependencies: - camelcase: 5.3.1 - find-up: 4.1.0 - get-package-type: 0.1.0 - js-yaml: 3.14.1 - resolve-from: 5.0.0 - optional: true - '@istanbuljs/schema@0.1.3': {} - '@jest/console@29.7.0': - dependencies: - '@jest/types': 29.6.3 - '@types/node': 22.2.0 - chalk: 4.1.2 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - slash: 3.0.0 - optional: true - - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4))': - dependencies: - '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.2.0 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - ci-info: 3.9.0 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)) - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-resolve-dependencies: 29.7.0 - jest-runner: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - jest-watcher: 29.7.0 - micromatch: 4.0.7 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-ansi: 6.0.1 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - ts-node - optional: true - - '@jest/environment@29.7.0': - dependencies: - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.2.0 - jest-mock: 29.7.0 - optional: true - '@jest/expect-utils@28.1.3': dependencies: jest-get-type: 28.0.2 - '@jest/expect-utils@29.7.0': - dependencies: - jest-get-type: 29.6.3 - optional: true - - '@jest/expect@29.7.0': - dependencies: - expect: 29.7.0 - jest-snapshot: 29.7.0 - transitivePeerDependencies: - - supports-color - optional: true - - '@jest/fake-timers@29.7.0': - dependencies: - '@jest/types': 29.6.3 - '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.2.0 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-util: 29.7.0 - optional: true - - '@jest/globals@29.7.0': - dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/types': 29.6.3 - jest-mock: 29.7.0 - transitivePeerDependencies: - - supports-color - optional: true - - '@jest/reporters@29.7.0': - dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 22.2.0 - chalk: 4.1.2 - collect-v8-coverage: 1.0.2 - exit: 0.1.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - istanbul-lib-coverage: 3.2.2 - istanbul-lib-instrument: 6.0.3 - istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.7 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - jest-worker: 29.7.0 - slash: 3.0.0 - string-length: 4.0.2 - strip-ansi: 6.0.1 - v8-to-istanbul: 9.3.0 - transitivePeerDependencies: - - supports-color - optional: true - '@jest/schemas@28.1.3': dependencies: '@sinclair/typebox': 0.24.51 - '@jest/schemas@29.6.3': - dependencies: - '@sinclair/typebox': 0.27.8 - - '@jest/source-map@29.6.3': - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - callsites: 3.1.0 - graceful-fs: 4.2.11 - optional: true - - '@jest/test-result@29.7.0': - dependencies: - '@jest/console': 29.7.0 - '@jest/types': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - collect-v8-coverage: 1.0.2 - optional: true - - '@jest/test-sequencer@29.7.0': - dependencies: - '@jest/test-result': 29.7.0 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - slash: 3.0.0 - optional: true - - '@jest/transform@29.7.0': - dependencies: - '@babel/core': 7.25.2 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.25 - babel-plugin-istanbul: 6.1.1 - chalk: 4.1.2 - convert-source-map: 2.0.0 - fast-json-stable-stringify: 2.1.0 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - micromatch: 4.0.7 - pirates: 4.0.6 - slash: 3.0.0 - write-file-atomic: 4.0.2 - transitivePeerDependencies: - - supports-color - optional: true - '@jest/types@28.1.3': dependencies: '@jest/schemas': 28.1.3 @@ -8596,16 +6465,6 @@ snapshots: '@types/yargs': 17.0.32 chalk: 4.1.2 - '@jest/types@29.6.3': - dependencies: - '@jest/schemas': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 22.2.0 - '@types/yargs': 17.0.33 - chalk: 4.1.2 - optional: true - '@jimp/bmp@0.16.13(@jimp/custom@0.16.13(debug@4.3.6))': dependencies: '@babel/runtime': 7.24.8 @@ -8686,7 +6545,7 @@ snapshots: '@babel/runtime': 7.24.8 regenerator-runtime: 0.13.11 - '@joshwooding/vite-plugin-react-docgen-typescript@0.3.1(typescript@5.5.4)(vite@5.3.5(@types/node@22.2.0)(terser@5.31.6))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.5.4)(vite@5.3.5(@types/node@22.2.0)(terser@5.31.6))': dependencies: glob: 7.2.3 glob-promise: 4.2.2(glob@7.2.3) @@ -9131,144 +6990,120 @@ snapshots: '@sinclair/typebox@0.24.51': {} - '@sinclair/typebox@0.27.8': {} - '@sindresorhus/is@4.6.0': {} - '@sindresorhus/merge-streams@2.3.0': {} - - '@sinonjs/commons@3.0.1': - dependencies: - type-detect: 4.0.8 - optional: true - - '@sinonjs/fake-timers@10.3.0': - dependencies: - '@sinonjs/commons': 3.0.1 - optional: true - '@socket.io/component-emitter@3.1.2': {} - '@storybook/addon-actions@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': + '@storybook/addon-actions@8.3.3(storybook@8.3.3)': dependencies: '@storybook/global': 5.0.0 '@types/uuid': 9.0.8 dequal: 2.0.3 polished: 4.3.1 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) + storybook: 8.3.3 uuid: 9.0.1 - '@storybook/addon-backgrounds@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': + '@storybook/addon-backgrounds@8.3.3(storybook@8.3.3)': dependencies: '@storybook/global': 5.0.0 memoizerific: 1.11.3 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) + storybook: 8.3.3 ts-dedent: 2.2.0 - '@storybook/addon-controls@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': + '@storybook/addon-controls@8.3.3(storybook@8.3.3)': dependencies: + '@storybook/global': 5.0.0 dequal: 2.0.3 lodash: 4.17.21 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) + storybook: 8.3.3 ts-dedent: 2.2.0 - '@storybook/addon-docs@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': + '@storybook/addon-docs@8.3.3(storybook@8.3.3)': dependencies: - '@babel/core': 7.25.2 '@mdx-js/react': 3.0.1(@types/react@18.3.3)(react@18.3.1) - '@storybook/blocks': 8.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) - '@storybook/csf-plugin': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) + '@storybook/blocks': 8.3.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.3) + '@storybook/csf-plugin': 8.3.3(storybook@8.3.3) '@storybook/global': 5.0.0 - '@storybook/react-dom-shim': 8.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) + '@storybook/react-dom-shim': 8.3.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.3) '@types/react': 18.3.3 fs-extra: 11.2.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) rehype-external-links: 3.0.0 rehype-slug: 6.0.0 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) + storybook: 8.3.3 ts-dedent: 2.2.0 - transitivePeerDependencies: - - supports-color - '@storybook/addon-essentials@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': - dependencies: - '@storybook/addon-actions': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) - '@storybook/addon-backgrounds': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) - '@storybook/addon-controls': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) - '@storybook/addon-docs': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) - '@storybook/addon-highlight': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) - '@storybook/addon-measure': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) - '@storybook/addon-outline': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) - '@storybook/addon-toolbars': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) - '@storybook/addon-viewport': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) + '@storybook/addon-essentials@8.3.3(storybook@8.3.3)': + dependencies: + '@storybook/addon-actions': 8.3.3(storybook@8.3.3) + '@storybook/addon-backgrounds': 8.3.3(storybook@8.3.3) + '@storybook/addon-controls': 8.3.3(storybook@8.3.3) + '@storybook/addon-docs': 8.3.3(storybook@8.3.3) + '@storybook/addon-highlight': 8.3.3(storybook@8.3.3) + '@storybook/addon-measure': 8.3.3(storybook@8.3.3) + '@storybook/addon-outline': 8.3.3(storybook@8.3.3) + '@storybook/addon-toolbars': 8.3.3(storybook@8.3.3) + '@storybook/addon-viewport': 8.3.3(storybook@8.3.3) + storybook: 8.3.3 ts-dedent: 2.2.0 - transitivePeerDependencies: - - supports-color - '@storybook/addon-highlight@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': + '@storybook/addon-highlight@8.3.3(storybook@8.3.3)': dependencies: '@storybook/global': 5.0.0 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) + storybook: 8.3.3 - '@storybook/addon-interactions@8.2.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)))(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))(vitest@2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6))': + '@storybook/addon-interactions@8.3.3(storybook@8.3.3)': dependencies: '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) - '@storybook/test': 8.2.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)))(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))(vitest@2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6)) + '@storybook/instrumenter': 8.3.3(storybook@8.3.3) + '@storybook/test': 8.3.3(storybook@8.3.3) polished: 4.3.1 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) + storybook: 8.3.3 ts-dedent: 2.2.0 - transitivePeerDependencies: - - '@jest/globals' - - '@types/bun' - - '@types/jest' - - jest - - vitest - '@storybook/addon-links@8.2.2(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': + '@storybook/addon-links@8.3.3(react@18.3.1)(storybook@8.3.3)': dependencies: '@storybook/csf': 0.1.11 '@storybook/global': 5.0.0 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) + storybook: 8.3.3 ts-dedent: 2.2.0 optionalDependencies: react: 18.3.1 - '@storybook/addon-measure@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': + '@storybook/addon-measure@8.3.3(storybook@8.3.3)': dependencies: '@storybook/global': 5.0.0 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) + storybook: 8.3.3 tiny-invariant: 1.3.3 - '@storybook/addon-onboarding@8.2.2(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': + '@storybook/addon-onboarding@8.3.3(react@18.3.1)(storybook@8.3.3)': dependencies: react-confetti: 6.1.0(react@18.3.1) - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) + storybook: 8.3.3 transitivePeerDependencies: - react - '@storybook/addon-outline@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': + '@storybook/addon-outline@8.3.3(storybook@8.3.3)': dependencies: '@storybook/global': 5.0.0 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) + storybook: 8.3.3 ts-dedent: 2.2.0 - '@storybook/addon-toolbars@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': + '@storybook/addon-toolbars@8.3.3(storybook@8.3.3)': dependencies: - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) + storybook: 8.3.3 - '@storybook/addon-viewport@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': + '@storybook/addon-viewport@8.3.3(storybook@8.3.3)': dependencies: memoizerific: 1.11.3 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) + storybook: 8.3.3 - '@storybook/blocks@8.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': + '@storybook/blocks@8.3.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.3)': dependencies: '@storybook/csf': 0.1.11 '@storybook/global': 5.0.0 - '@storybook/icons': 1.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/icons': 1.2.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/lodash': 4.17.6 color-convert: 2.0.1 dequal: 2.0.3 @@ -9277,7 +7112,7 @@ snapshots: memoizerific: 1.11.3 polished: 4.3.1 react-colorful: 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) + storybook: 8.3.3 telejson: 7.2.0 ts-dedent: 2.2.0 util-deprecate: 1.0.2 @@ -9285,9 +7120,9 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/builder-vite@8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))(typescript@5.5.4)(vite@5.3.5(@types/node@22.2.0)(terser@5.31.6))': + '@storybook/builder-vite@8.3.3(storybook@8.3.3)(typescript@5.5.4)(vite@5.3.5(@types/node@22.2.0)(terser@5.31.6))': dependencies: - '@storybook/csf-plugin': 8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) + '@storybook/csf-plugin': 8.3.3(storybook@8.3.3) '@types/find-cache-dir': 3.2.1 browser-assert: 1.2.1 es-module-lexer: 1.5.4 @@ -9295,7 +7130,7 @@ snapshots: find-cache-dir: 3.3.2 fs-extra: 11.2.0 magic-string: 0.30.10 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) + storybook: 8.3.3 ts-dedent: 2.2.0 vite: 5.3.5(@types/node@22.2.0)(terser@5.31.6) optionalDependencies: @@ -9303,41 +7138,23 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/codemod@8.2.2': + '@storybook/components@8.3.3(storybook@8.3.3)': dependencies: - '@babel/core': 7.25.2 - '@babel/preset-env': 7.24.8(@babel/core@7.25.2) - '@babel/types': 7.25.2 - '@storybook/core': 8.2.2 - '@storybook/csf': 0.1.11 - '@types/cross-spawn': 6.0.6 - cross-spawn: 7.0.3 - globby: 14.0.2 - jscodeshift: 0.15.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) - lodash: 4.17.21 - prettier: 3.3.2 - recast: 0.23.9 - tiny-invariant: 1.3.3 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - - '@storybook/components@8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': - dependencies: - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) + storybook: 8.3.3 - '@storybook/core@8.2.2': + '@storybook/core@8.3.3': dependencies: '@storybook/csf': 0.1.11 '@types/express': 4.17.21 - '@types/node': 18.19.42 + better-opn: 3.0.2 browser-assert: 1.2.1 esbuild: 0.21.5 esbuild-register: 3.5.0(esbuild@0.21.5) express: 4.19.2 + jsdoc-type-pratt-parser: 4.1.0 process: 0.11.10 recast: 0.23.9 + semver: 7.6.3 util: 0.12.5 ws: 8.18.0 transitivePeerDependencies: @@ -9345,14 +7162,9 @@ snapshots: - supports-color - utf-8-validate - '@storybook/csf-plugin@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': - dependencies: - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) - unplugin: 1.11.0 - - '@storybook/csf-plugin@8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': + '@storybook/csf-plugin@8.3.3(storybook@8.3.3)': dependencies: - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) + storybook: 8.3.3 unplugin: 1.11.0 '@storybook/csf@0.0.1': @@ -9365,110 +7177,100 @@ snapshots: '@storybook/global@5.0.0': {} - '@storybook/icons@1.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/icons@1.2.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/instrumenter@8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': + '@storybook/instrumenter@8.3.3(storybook@8.3.3)': dependencies: '@storybook/global': 5.0.0 - '@vitest/utils': 1.6.0 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) + '@vitest/utils': 2.1.1 + storybook: 8.3.3 util: 0.12.5 - '@storybook/manager-api@8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': - dependencies: - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) - - '@storybook/preview-api@8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': + '@storybook/manager-api@8.3.3(storybook@8.3.3)': dependencies: - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) + storybook: 8.3.3 - '@storybook/react-dom-shim@8.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': + '@storybook/preview-api@8.3.3(storybook@8.3.3)': dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) + storybook: 8.3.3 - '@storybook/react-dom-shim@8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': + '@storybook/react-dom-shim@8.3.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.3)': dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) + storybook: 8.3.3 - '@storybook/react-vite@8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.19.0)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))(typescript@5.5.4)(vite@5.3.5(@types/node@22.2.0)(terser@5.31.6))': + '@storybook/react-vite@8.3.3(@storybook/test@8.3.3(storybook@8.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.19.0)(storybook@8.3.3)(typescript@5.5.4)(vite@5.3.5(@types/node@22.2.0)(terser@5.31.6))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.1(typescript@5.5.4)(vite@5.3.5(@types/node@22.2.0)(terser@5.31.6)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.5.4)(vite@5.3.5(@types/node@22.2.0)(terser@5.31.6)) '@rollup/pluginutils': 5.1.0(rollup@4.19.0) - '@storybook/builder-vite': 8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))(typescript@5.5.4)(vite@5.3.5(@types/node@22.2.0)(terser@5.31.6)) - '@storybook/react': 8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))(typescript@5.5.4) + '@storybook/builder-vite': 8.3.3(storybook@8.3.3)(typescript@5.5.4)(vite@5.3.5(@types/node@22.2.0)(terser@5.31.6)) + '@storybook/react': 8.3.3(@storybook/test@8.3.3(storybook@8.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.3)(typescript@5.5.4) find-up: 5.0.0 magic-string: 0.30.10 react: 18.3.1 react-docgen: 7.0.3 react-dom: 18.3.1(react@18.3.1) resolve: 1.22.8 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) + storybook: 8.3.3 tsconfig-paths: 4.2.0 vite: 5.3.5(@types/node@22.2.0)(terser@5.31.6) transitivePeerDependencies: - '@preact/preset-vite' + - '@storybook/test' - rollup - supports-color - typescript - vite-plugin-glimmerx - '@storybook/react@8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))(typescript@5.5.4)': + '@storybook/react@8.3.3(@storybook/test@8.3.3(storybook@8.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.3)(typescript@5.5.4)': dependencies: - '@storybook/components': 8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) + '@storybook/components': 8.3.3(storybook@8.3.3) '@storybook/global': 5.0.0 - '@storybook/manager-api': 8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) - '@storybook/preview-api': 8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) - '@storybook/react-dom-shim': 8.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) - '@storybook/theming': 8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) + '@storybook/manager-api': 8.3.3(storybook@8.3.3) + '@storybook/preview-api': 8.3.3(storybook@8.3.3) + '@storybook/react-dom-shim': 8.3.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.3) + '@storybook/theming': 8.3.3(storybook@8.3.3) '@types/escodegen': 0.0.6 '@types/estree': 0.0.51 - '@types/node': 18.19.42 + '@types/node': 22.2.0 acorn: 7.4.1 acorn-jsx: 5.3.2(acorn@7.4.1) acorn-walk: 7.2.0 escodegen: 2.1.0 html-tags: 3.3.1 - lodash: 4.17.21 prop-types: 15.8.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-element-to-jsx-string: 15.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) semver: 7.6.3 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) + storybook: 8.3.3 ts-dedent: 2.2.0 type-fest: 2.19.0 util-deprecate: 1.0.2 optionalDependencies: + '@storybook/test': 8.3.3(storybook@8.3.3) typescript: 5.5.4 - '@storybook/test@8.2.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)))(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))(vitest@2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6))': + '@storybook/test@8.3.3(storybook@8.3.3)': dependencies: '@storybook/csf': 0.1.11 - '@storybook/instrumenter': 8.2.2(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2))) - '@testing-library/dom': 10.1.0 - '@testing-library/jest-dom': 6.4.5(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)))(vitest@2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6)) - '@testing-library/user-event': 14.5.2(@testing-library/dom@10.1.0) - '@vitest/expect': 1.6.0 - '@vitest/spy': 1.6.0 - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) + '@storybook/global': 5.0.0 + '@storybook/instrumenter': 8.3.3(storybook@8.3.3) + '@testing-library/dom': 10.4.0 + '@testing-library/jest-dom': 6.5.0 + '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) + '@vitest/expect': 2.0.5 + '@vitest/spy': 2.0.5 + storybook: 8.3.3 util: 0.12.5 - transitivePeerDependencies: - - '@jest/globals' - - '@types/bun' - - '@types/jest' - - jest - - vitest - '@storybook/theming@8.2.6(storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)))': + '@storybook/theming@8.3.3(storybook@8.3.3)': dependencies: - storybook: 8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) + storybook: 8.3.3 '@swc/core-darwin-arm64@1.5.7': optional: true @@ -9526,7 +7328,7 @@ snapshots: dependencies: defer-to-connect: 2.0.1 - '@testing-library/dom@10.1.0': + '@testing-library/dom@10.4.0': dependencies: '@babel/code-frame': 7.24.7 '@babel/runtime': 7.24.8 @@ -9548,21 +7350,15 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/jest-dom@6.4.5(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)))(vitest@2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6))': + '@testing-library/jest-dom@6.5.0': dependencies: '@adobe/css-tools': 4.4.0 - '@babel/runtime': 7.24.8 aria-query: 5.3.0 chalk: 3.0.0 css.escape: 1.5.1 dom-accessibility-api: 0.6.3 lodash: 4.17.21 redent: 3.0.0 - optionalDependencies: - '@jest/globals': 29.7.0 - '@types/jest': 29.5.12 - jest: 29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)) - vitest: 2.0.4(@types/node@22.2.0)(jsdom@24.1.1(canvas@2.11.2))(terser@5.31.6) '@testing-library/react@14.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -9572,9 +7368,9 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@testing-library/user-event@14.5.2(@testing-library/dom@10.1.0)': + '@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0)': dependencies: - '@testing-library/dom': 10.1.0 + '@testing-library/dom': 10.4.0 '@testing-library/user-event@14.5.2(@testing-library/dom@9.3.4)': dependencies: @@ -9637,10 +7433,6 @@ snapshots: dependencies: '@types/node': 22.2.0 - '@types/cross-spawn@6.0.6': - dependencies: - '@types/node': 22.2.0 - '@types/debug@4.1.12': dependencies: '@types/ms': 0.7.34 @@ -9655,8 +7447,6 @@ snapshots: '@types/ejs@3.1.5': {} - '@types/emscripten@1.39.13': {} - '@types/escodegen@0.0.6': {} '@types/estree@0.0.51': {} @@ -9688,11 +7478,6 @@ snapshots: '@types/minimatch': 5.1.2 '@types/node': 22.2.0 - '@types/graceful-fs@4.1.9': - dependencies: - '@types/node': 22.2.0 - optional: true - '@types/hast@3.0.4': dependencies: '@types/unist': 3.0.2 @@ -9718,12 +7503,6 @@ snapshots: '@types/jasmine@3.10.18': {} - '@types/jest@29.5.12': - dependencies: - expect: 29.7.0 - pretty-format: 29.7.0 - optional: true - '@types/json-schema@7.0.15': {} '@types/keyv@3.1.4': @@ -9760,10 +7539,6 @@ snapshots: '@types/node@16.9.1': {} - '@types/node@18.19.42': - dependencies: - undici-types: 5.26.5 - '@types/node@20.14.10': dependencies: undici-types: 5.26.5 @@ -9886,11 +7661,6 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@types/yargs@17.0.33': - dependencies: - '@types/yargs-parser': 21.0.3 - optional: true - '@types/yauzl@2.10.3': dependencies: '@types/node': 22.2.0 @@ -10054,12 +7824,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/expect@1.6.0': - dependencies: - '@vitest/spy': 1.6.0 - '@vitest/utils': 1.6.0 - chai: 4.4.1 - '@vitest/expect@2.0.4': dependencies: '@vitest/spy': 2.0.4 @@ -10067,10 +7831,25 @@ snapshots: chai: 5.1.1 tinyrainbow: 1.2.0 + '@vitest/expect@2.0.5': + dependencies: + '@vitest/spy': 2.0.5 + '@vitest/utils': 2.0.5 + chai: 5.1.1 + tinyrainbow: 1.2.0 + '@vitest/pretty-format@2.0.4': dependencies: tinyrainbow: 1.2.0 + '@vitest/pretty-format@2.0.5': + dependencies: + tinyrainbow: 1.2.0 + + '@vitest/pretty-format@2.1.1': + dependencies: + tinyrainbow: 1.2.0 + '@vitest/runner@2.0.4': dependencies: '@vitest/utils': 2.0.4 @@ -10082,20 +7861,13 @@ snapshots: magic-string: 0.30.10 pathe: 1.1.2 - '@vitest/spy@1.6.0': - dependencies: - tinyspy: 2.2.1 - '@vitest/spy@2.0.4': dependencies: tinyspy: 3.0.0 - '@vitest/utils@1.6.0': + '@vitest/spy@2.0.5': dependencies: - diff-sequences: 29.6.3 - estree-walker: 3.0.3 - loupe: 2.3.7 - pretty-format: 29.7.0 + tinyspy: 3.0.0 '@vitest/utils@2.0.4': dependencies: @@ -10104,6 +7876,19 @@ snapshots: loupe: 3.1.1 tinyrainbow: 1.2.0 + '@vitest/utils@2.0.5': + dependencies: + '@vitest/pretty-format': 2.0.5 + estree-walker: 3.0.3 + loupe: 3.1.1 + tinyrainbow: 1.2.0 + + '@vitest/utils@2.1.1': + dependencies: + '@vitest/pretty-format': 2.1.1 + loupe: 3.1.1 + tinyrainbow: 1.2.0 + '@wdio/browserstack-service@7.11.1(@wdio/cli@7.11.1)': dependencies: '@types/node': 15.14.9 @@ -10245,16 +8030,6 @@ snapshots: '@wdio/types': 7.10.1 p-iteration: 1.1.8 - '@yarnpkg/fslib@2.10.3': - dependencies: - '@yarnpkg/libzip': 2.3.0 - tslib: 1.14.1 - - '@yarnpkg/libzip@2.3.0': - dependencies: - '@types/emscripten': 1.39.13 - tslib: 1.14.1 - '@zeit/schemas@2.6.0': {} abbrev@1.1.1: {} @@ -10398,11 +8173,6 @@ snapshots: arg@4.1.3: {} - argparse@1.0.10: - dependencies: - sprintf-js: 1.0.3 - optional: true - argparse@2.0.1: {} aria-query@4.2.2: @@ -10478,8 +8248,6 @@ snapshots: is-array-buffer: 3.0.4 is-shared-array-buffer: 1.0.3 - assertion-error@1.1.0: {} - assertion-error@2.0.1: {} ast-types@0.16.1: @@ -10522,104 +8290,20 @@ snapshots: transitivePeerDependencies: - debug - babel-core@7.0.0-bridge.0(@babel/core@7.25.2): - dependencies: - '@babel/core': 7.25.2 - - babel-jest@29.7.0(@babel/core@7.25.2): - dependencies: - '@babel/core': 7.25.2 - '@jest/transform': 29.7.0 - '@types/babel__core': 7.20.5 - babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.25.2) - chalk: 4.1.2 - graceful-fs: 4.2.11 - slash: 3.0.0 - transitivePeerDependencies: - - supports-color - optional: true - - babel-plugin-istanbul@6.1.1: - dependencies: - '@babel/helper-plugin-utils': 7.24.8 - '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 5.2.1 - test-exclude: 6.0.0 - transitivePeerDependencies: - - supports-color - optional: true - - babel-plugin-jest-hoist@29.6.3: - dependencies: - '@babel/template': 7.25.0 - '@babel/types': 7.25.2 - '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.6 - optional: true - babel-plugin-macros@3.1.0: dependencies: '@babel/runtime': 7.24.8 cosmiconfig: 7.1.0 resolve: 1.22.8 - babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.25.2): - dependencies: - '@babel/compat-data': 7.25.2 - '@babel/core': 7.25.2 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.25.2): - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) - core-js-compat: 3.37.1 - transitivePeerDependencies: - - supports-color - - babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.25.2): - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color - - babel-preset-current-node-syntax@1.1.0(@babel/core@7.25.2): - dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.2) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) - '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.2) - optional: true - - babel-preset-jest@29.6.3(@babel/core@7.25.2): - dependencies: - '@babel/core': 7.25.2 - babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.25.2) - optional: true - balanced-match@1.0.2: {} base64-js@1.5.1: {} + better-opn@3.0.2: + dependencies: + open: 8.4.2 + bidi-js@1.0.3: dependencies: require-from-string: 2.0.2 @@ -10702,11 +8386,6 @@ snapshots: transitivePeerDependencies: - supports-color - bser@2.1.1: - dependencies: - node-int64: 0.4.0 - optional: true - buffer-crc32@0.2.13: {} buffer-equal@0.0.1: {} @@ -10770,9 +8449,6 @@ snapshots: camelcase@4.1.0: {} - camelcase@5.3.1: - optional: true - camelcase@6.3.0: {} camera-controls@2.8.5(three@0.166.1): @@ -10798,16 +8474,6 @@ snapshots: transitivePeerDependencies: - debug - chai@4.4.1: - dependencies: - assertion-error: 1.1.0 - check-error: 1.0.3 - deep-eql: 4.1.4 - get-func-name: 2.0.2 - loupe: 2.3.7 - pathval: 1.1.1 - type-detect: 4.0.8 - chai@5.1.1: dependencies: assertion-error: 2.0.1 @@ -10848,15 +8514,8 @@ snapshots: chalk@5.3.0: {} - char-regex@1.0.2: - optional: true - chardet@0.7.0: {} - check-error@1.0.3: - dependencies: - get-func-name: 2.0.2 - check-error@2.1.1: {} chokidar@3.5.3: @@ -10898,13 +8557,6 @@ snapshots: ci-info@3.9.0: {} - citty@0.1.6: - dependencies: - consola: 3.2.3 - - cjs-module-lexer@1.3.1: - optional: true - cli-boxes@1.0.0: {} cli-cursor@3.1.0: @@ -10941,12 +8593,6 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - clone-deep@4.0.1: - dependencies: - is-plain-object: 2.0.4 - kind-of: 6.0.3 - shallow-clone: 3.0.1 - clone-response@1.0.3: dependencies: mimic-response: 1.0.1 @@ -10957,12 +8603,6 @@ snapshots: clsx@2.1.1: {} - co@4.6.0: - optional: true - - collect-v8-coverage@1.0.2: - optional: true - color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -10988,8 +8628,6 @@ snapshots: commander@2.20.3: optional: true - commander@6.2.1: {} - commander@8.3.0: {} commondir@1.0.1: {} @@ -11044,12 +8682,8 @@ snapshots: tree-kill: 1.2.2 yargs: 17.7.2 - confbox@0.1.7: {} - consola@2.15.3: {} - consola@3.2.3: {} - console-control-strings@1.1.0: {} console.table@0.10.0: @@ -11072,10 +8706,6 @@ snapshots: cookie@0.6.0: {} - core-js-compat@3.37.1: - dependencies: - browserslist: 4.23.3 - core-js-pure@3.37.1: {} core-util-is@1.0.3: {} @@ -11099,22 +8729,6 @@ snapshots: dependencies: buffer: 5.7.1 - create-jest@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)): - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)) - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - optional: true - create-require@1.1.1: {} cross-env@7.0.3: @@ -11138,10 +8752,6 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - crypto-random-string@4.0.0: - dependencies: - type-fest: 1.4.0 - css-shorthand-properties@1.1.1: {} css-value@0.0.1: {} @@ -11217,15 +8827,6 @@ snapshots: dependencies: mimic-response: 3.1.0 - dedent@1.5.3(babel-plugin-macros@3.1.0): - optionalDependencies: - babel-plugin-macros: 3.1.0 - optional: true - - deep-eql@4.1.4: - dependencies: - type-detect: 4.0.8 - deep-eql@5.0.2: {} deep-equal@2.2.3: @@ -11267,14 +8868,14 @@ snapshots: es-errors: 1.3.0 gopd: 1.0.1 + define-lazy-prop@2.0.0: {} + define-properties@1.2.1: dependencies: define-data-property: 1.1.4 has-property-descriptors: 1.0.2 object-keys: 1.1.1 - defu@6.1.4: {} - delayed-stream@1.0.0: {} delegates@1.0.0: {} @@ -11289,13 +8890,8 @@ snapshots: dependencies: webgl-constants: 1.1.1 - detect-indent@6.1.0: {} - detect-libc@2.0.3: {} - detect-newline@3.1.0: - optional: true - devtools-protocol@0.0.901419: {} devtools-protocol@0.0.915197: {} @@ -11321,8 +8917,6 @@ snapshots: diff-sequences@28.1.1: {} - diff-sequences@29.6.3: {} - diff@4.0.2: {} diff@5.0.0: {} @@ -11383,9 +8977,6 @@ snapshots: electron-to-chromium@1.5.7: {} - emittery@0.13.1: - optional: true - emoji-regex@10.3.0: {} emoji-regex@8.0.0: {} @@ -11414,8 +9005,6 @@ snapshots: entities@4.5.0: {} - envinfo@7.13.0: {} - error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 @@ -11737,18 +9326,6 @@ snapshots: signal-exit: 3.0.7 strip-eof: 1.0.0 - execa@5.1.1: - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - execa@8.0.1: dependencies: cross-spawn: 7.0.3 @@ -11763,9 +9340,6 @@ snapshots: exif-parser@0.1.12: {} - exit@0.1.2: - optional: true - expect-webdriverio@3.6.0: dependencies: expect: 28.1.3 @@ -11779,15 +9353,6 @@ snapshots: jest-message-util: 28.1.3 jest-util: 28.1.3 - expect@29.7.0: - dependencies: - '@jest/expect-utils': 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - optional: true - express@4.19.2: dependencies: accepts: 1.3.8 @@ -11868,15 +9433,6 @@ snapshots: dependencies: reusify: 1.0.4 - fb-watchman@2.0.2: - dependencies: - bser: 2.1.1 - optional: true - - fd-package-json@1.2.0: - dependencies: - walk-up-path: 3.0.1 - fd-slicer@1.1.0: dependencies: pend: 1.2.0 @@ -11919,12 +9475,6 @@ snapshots: transitivePeerDependencies: - supports-color - find-cache-dir@2.1.0: - dependencies: - commondir: 1.0.1 - make-dir: 2.1.0 - pkg-dir: 3.0.0 - find-cache-dir@3.3.2: dependencies: commondir: 1.0.1 @@ -11938,10 +9488,6 @@ snapshots: path-exists: 2.1.0 pinkie-promise: 2.0.1 - find-up@3.0.0: - dependencies: - locate-path: 3.0.0 - find-up@4.1.0: dependencies: locate-path: 5.0.0 @@ -11962,8 +9508,6 @@ snapshots: flatted@3.3.1: {} - flow-parser@0.239.1: {} - follow-redirects@1.15.6(debug@4.3.5): optionalDependencies: debug: 4.3.5 @@ -12059,9 +9603,6 @@ snapshots: has-symbols: 1.0.3 hasown: 2.0.2 - get-package-type@0.1.0: - optional: true - get-port@5.1.1: {} get-stream@3.0.0: {} @@ -12070,8 +9611,6 @@ snapshots: dependencies: pump: 3.0.0 - get-stream@6.0.1: {} - get-stream@8.0.1: {} get-symbol-description@1.0.2: @@ -12085,17 +9624,6 @@ snapshots: image-q: 4.0.0 omggif: 1.0.10 - giget@1.2.3: - dependencies: - citty: 0.1.6 - consola: 3.2.3 - defu: 6.1.4 - node-fetch-native: 1.6.4 - nypm: 0.3.9 - ohash: 1.1.3 - pathe: 1.1.2 - tar: 6.2.1 - github-slugger@2.0.0: {} glob-parent@5.1.2: @@ -12172,15 +9700,6 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 - globby@14.0.2: - dependencies: - '@sindresorhus/merge-streams': 2.3.0 - fast-glob: 3.3.2 - ignore: 5.3.1 - path-type: 5.0.0 - slash: 5.1.0 - unicorn-magic: 0.1.0 - globule@1.3.4: dependencies: glob: 7.1.7 @@ -12327,8 +9846,6 @@ snapshots: transitivePeerDependencies: - supports-color - human-signals@2.1.0: {} - human-signals@5.0.0: {} husky@9.0.11: {} @@ -12359,12 +9876,6 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 - import-local@3.2.0: - dependencies: - pkg-dir: 4.2.0 - resolve-cwd: 3.0.0 - optional: true - imurmurhash@0.1.4: {} indent-string@3.2.0: {} @@ -12475,9 +9986,6 @@ snapshots: is-function@1.0.2: {} - is-generator-fn@2.1.0: - optional: true - is-generator-function@1.0.10: dependencies: has-tostringtag: 1.0.2 @@ -12502,10 +10010,6 @@ snapshots: is-plain-obj@2.1.0: {} - is-plain-object@2.0.4: - dependencies: - isobject: 3.0.1 - is-plain-object@5.0.0: {} is-potential-custom-element-name@1.0.1: {} @@ -12527,8 +10031,6 @@ snapshots: is-stream@1.1.0: {} - is-stream@2.0.1: {} - is-stream@3.0.0: {} is-string@1.0.7: @@ -12568,47 +10070,14 @@ snapshots: isexe@2.0.0: {} - isobject@3.0.1: {} - istanbul-lib-coverage@3.2.2: {} - istanbul-lib-instrument@5.2.1: - dependencies: - '@babel/core': 7.25.2 - '@babel/parser': 7.25.3 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.2 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - optional: true - - istanbul-lib-instrument@6.0.3: - dependencies: - '@babel/core': 7.25.2 - '@babel/parser': 7.25.3 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.2 - semver: 7.6.3 - transitivePeerDependencies: - - supports-color - optional: true - istanbul-lib-report@3.0.1: dependencies: istanbul-lib-coverage: 3.2.2 make-dir: 4.0.0 supports-color: 7.2.0 - istanbul-lib-source-maps@4.0.1: - dependencies: - debug: 4.3.6 - istanbul-lib-coverage: 3.2.2 - source-map: 0.6.1 - transitivePeerDependencies: - - supports-color - optional: true - istanbul-lib-source-maps@5.0.6: dependencies: '@jridgewell/trace-mapping': 0.3.25 @@ -12657,377 +10126,42 @@ snapshots: glob: 7.2.3 jasmine-core: 3.99.1 - jest-changed-files@29.7.0: - dependencies: - execa: 5.1.1 - jest-util: 29.7.0 - p-limit: 3.1.0 - optional: true - - jest-circus@29.7.0(babel-plugin-macros@3.1.0): - dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.2.0 - chalk: 4.1.2 - co: 4.6.0 - dedent: 1.5.3(babel-plugin-macros@3.1.0) - is-generator-fn: 2.1.0 - jest-each: 29.7.0 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - p-limit: 3.1.0 - pretty-format: 29.7.0 - pure-rand: 6.1.0 - slash: 3.0.0 - stack-utils: 2.0.6 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - optional: true - - jest-cli@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)): - dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)) - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)) - exit: 0.1.2 - import-local: 3.2.0 - jest-config: 29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)) - jest-util: 29.7.0 - jest-validate: 29.7.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - optional: true - - jest-config@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)): - dependencies: - '@babel/core': 7.25.2 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.25.2) - chalk: 4.1.2 - ci-info: 3.9.0 - deepmerge: 4.3.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-circus: 29.7.0(babel-plugin-macros@3.1.0) - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.7 - parse-json: 5.2.0 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 22.2.0 - ts-node: 10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4) - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - optional: true - - jest-diff@28.1.3: - dependencies: - chalk: 4.1.2 - diff-sequences: 28.1.1 - jest-get-type: 28.0.2 - pretty-format: 28.1.3 - - jest-diff@29.7.0: - dependencies: - chalk: 4.1.2 - diff-sequences: 29.6.3 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - optional: true - - jest-docblock@29.7.0: - dependencies: - detect-newline: 3.1.0 - optional: true - - jest-each@29.7.0: - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - jest-get-type: 29.6.3 - jest-util: 29.7.0 - pretty-format: 29.7.0 - optional: true - - jest-environment-node@29.7.0: - dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.2.0 - jest-mock: 29.7.0 - jest-util: 29.7.0 - optional: true - - jest-get-type@28.0.2: {} - - jest-get-type@29.6.3: - optional: true - - jest-haste-map@29.7.0: - dependencies: - '@jest/types': 29.6.3 - '@types/graceful-fs': 4.1.9 - '@types/node': 22.2.0 - anymatch: 3.1.3 - fb-watchman: 2.0.2 - graceful-fs: 4.2.11 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - jest-worker: 29.7.0 - micromatch: 4.0.7 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.3 - optional: true - - jest-leak-detector@29.7.0: - dependencies: - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - optional: true - - jest-matcher-utils@28.1.3: - dependencies: - chalk: 4.1.2 - jest-diff: 28.1.3 - jest-get-type: 28.0.2 - pretty-format: 28.1.3 - - jest-matcher-utils@29.7.0: - dependencies: - chalk: 4.1.2 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - optional: true - - jest-message-util@28.1.3: - dependencies: - '@babel/code-frame': 7.24.7 - '@jest/types': 28.1.3 - '@types/stack-utils': 2.0.3 - chalk: 4.1.2 - graceful-fs: 4.2.11 - micromatch: 4.0.7 - pretty-format: 28.1.3 - slash: 3.0.0 - stack-utils: 2.0.6 - - jest-message-util@29.7.0: - dependencies: - '@babel/code-frame': 7.24.7 - '@jest/types': 29.6.3 - '@types/stack-utils': 2.0.3 - chalk: 4.1.2 - graceful-fs: 4.2.11 - micromatch: 4.0.7 - pretty-format: 29.7.0 - slash: 3.0.0 - stack-utils: 2.0.6 - optional: true - - jest-mock@29.7.0: - dependencies: - '@jest/types': 29.6.3 - '@types/node': 22.2.0 - jest-util: 29.7.0 - optional: true - - jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): - optionalDependencies: - jest-resolve: 29.7.0 - optional: true - - jest-regex-util@29.6.3: - optional: true - - jest-resolve-dependencies@29.7.0: - dependencies: - jest-regex-util: 29.6.3 - jest-snapshot: 29.7.0 - transitivePeerDependencies: - - supports-color - optional: true - - jest-resolve@29.7.0: - dependencies: - chalk: 4.1.2 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) - jest-util: 29.7.0 - jest-validate: 29.7.0 - resolve: 1.22.8 - resolve.exports: 2.0.2 - slash: 3.0.0 - optional: true - - jest-runner@29.7.0: - dependencies: - '@jest/console': 29.7.0 - '@jest/environment': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.2.0 - chalk: 4.1.2 - emittery: 0.13.1 - graceful-fs: 4.2.11 - jest-docblock: 29.7.0 - jest-environment-node: 29.7.0 - jest-haste-map: 29.7.0 - jest-leak-detector: 29.7.0 - jest-message-util: 29.7.0 - jest-resolve: 29.7.0 - jest-runtime: 29.7.0 - jest-util: 29.7.0 - jest-watcher: 29.7.0 - jest-worker: 29.7.0 - p-limit: 3.1.0 - source-map-support: 0.5.13 - transitivePeerDependencies: - - supports-color - optional: true - - jest-runtime@29.7.0: + jest-diff@28.1.3: dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/globals': 29.7.0 - '@jest/source-map': 29.6.3 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.2.0 chalk: 4.1.2 - cjs-module-lexer: 1.3.1 - collect-v8-coverage: 1.0.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - slash: 3.0.0 - strip-bom: 4.0.0 - transitivePeerDependencies: - - supports-color - optional: true + diff-sequences: 28.1.1 + jest-get-type: 28.0.2 + pretty-format: 28.1.3 + + jest-get-type@28.0.2: {} - jest-snapshot@29.7.0: + jest-matcher-utils@28.1.3: dependencies: - '@babel/core': 7.25.2 - '@babel/generator': 7.25.0 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.25.2) - '@babel/types': 7.25.2 - '@jest/expect-utils': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.25.2) chalk: 4.1.2 - expect: 29.7.0 - graceful-fs: 4.2.11 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - natural-compare: 1.4.0 - pretty-format: 29.7.0 - semver: 7.6.3 - transitivePeerDependencies: - - supports-color - optional: true + jest-diff: 28.1.3 + jest-get-type: 28.0.2 + pretty-format: 28.1.3 - jest-util@28.1.3: + jest-message-util@28.1.3: dependencies: + '@babel/code-frame': 7.24.7 '@jest/types': 28.1.3 - '@types/node': 20.14.10 + '@types/stack-utils': 2.0.3 chalk: 4.1.2 - ci-info: 3.9.0 graceful-fs: 4.2.11 - picomatch: 2.3.1 + micromatch: 4.0.7 + pretty-format: 28.1.3 + slash: 3.0.0 + stack-utils: 2.0.6 - jest-util@29.7.0: + jest-util@28.1.3: dependencies: - '@jest/types': 29.6.3 - '@types/node': 22.2.0 + '@jest/types': 28.1.3 + '@types/node': 20.14.10 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 picomatch: 2.3.1 - optional: true - - jest-validate@29.7.0: - dependencies: - '@jest/types': 29.6.3 - camelcase: 6.3.0 - chalk: 4.1.2 - jest-get-type: 29.6.3 - leven: 3.1.0 - pretty-format: 29.7.0 - optional: true - - jest-watcher@29.7.0: - dependencies: - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.2.0 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - emittery: 0.13.1 - jest-util: 29.7.0 - string-length: 4.0.2 - optional: true - - jest-worker@29.7.0: - dependencies: - '@types/node': 22.2.0 - jest-util: 29.7.0 - merge-stream: 2.0.0 - supports-color: 8.1.1 - optional: true - - jest@29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)): - dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)) - '@jest/types': 29.6.3 - import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@22.2.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4)) - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - optional: true jpeg-js@0.4.4: {} @@ -13035,42 +10169,11 @@ snapshots: js-tokens@4.0.0: {} - js-yaml@3.14.1: - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - optional: true - js-yaml@4.1.0: dependencies: argparse: 2.0.1 - jscodeshift@0.15.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)): - dependencies: - '@babel/core': 7.25.2 - '@babel/parser': 7.25.3 - '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.25.2) - '@babel/preset-flow': 7.24.7(@babel/core@7.25.2) - '@babel/preset-typescript': 7.24.7(@babel/core@7.25.2) - '@babel/register': 7.24.6(@babel/core@7.25.2) - babel-core: 7.0.0-bridge.0(@babel/core@7.25.2) - chalk: 4.1.2 - flow-parser: 0.239.1 - graceful-fs: 4.2.11 - micromatch: 4.0.7 - neo-async: 2.6.2 - node-dir: 0.1.17 - recast: 0.23.9 - temp: 0.8.4 - write-file-atomic: 2.4.3 - optionalDependencies: - '@babel/preset-env': 7.24.8(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color + jsdoc-type-pratt-parser@4.1.0: {} jsdom@24.1.1(canvas@2.11.2): dependencies: @@ -13102,8 +10205,6 @@ snapshots: - supports-color - utf-8-validate - jsesc@0.5.0: {} - jsesc@2.5.2: {} json-buffer@3.0.1: {} @@ -13140,18 +10241,12 @@ snapshots: dependencies: json-buffer: 3.0.1 - kind-of@6.0.3: {} - - kleur@3.0.3: {} - ky@0.28.7: {} lazystream@1.0.1: dependencies: readable-stream: 2.3.8 - leven@3.1.0: {} - levn@0.4.1: dependencies: prelude-ls: 1.2.1 @@ -13217,11 +10312,6 @@ snapshots: pinkie-promise: 2.0.1 strip-bom: 2.0.0 - locate-path@3.0.0: - dependencies: - p-locate: 3.0.0 - path-exists: 3.0.0 - locate-path@5.0.0: dependencies: p-locate: 4.1.0 @@ -13232,8 +10322,6 @@ snapshots: lodash.clonedeep@4.5.0: {} - lodash.debounce@4.0.8: {} - lodash.defaults@4.2.0: {} lodash.difference@4.5.0: {} @@ -13277,10 +10365,6 @@ snapshots: dependencies: js-tokens: 4.0.0 - loupe@2.3.7: - dependencies: - get-func-name: 2.0.2 - loupe@3.1.1: dependencies: get-func-name: 2.0.2 @@ -13319,11 +10403,6 @@ snapshots: '@babel/types': 7.25.2 source-map-js: 1.2.0 - make-dir@2.1.0: - dependencies: - pify: 4.0.1 - semver: 5.7.2 - make-dir@3.1.0: dependencies: semver: 6.3.1 @@ -13334,11 +10413,6 @@ snapshots: make-error@1.3.6: {} - makeerror@1.0.12: - dependencies: - tmpl: 1.0.5 - optional: true - map-obj@1.0.1: {} map-or-similar@1.5.0: {} @@ -13453,13 +10527,6 @@ snapshots: mkdirp@1.0.4: {} - mlly@1.7.1: - dependencies: - acorn: 8.12.1 - pathe: 1.1.2 - pkg-types: 1.1.3 - ufo: 1.5.4 - mocha@9.2.2: dependencies: '@ungap/promise-all-settled': 1.1.2 @@ -13505,23 +10572,12 @@ snapshots: negotiator@0.6.3: {} - neo-async@2.6.2: {} - - node-dir@0.1.17: - dependencies: - minimatch: 3.1.2 - - node-fetch-native@1.6.4: {} - node-fetch@2.6.1: {} node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 - node-int64@0.4.0: - optional: true - node-releases@2.0.14: {} node-releases@2.0.18: {} @@ -13557,10 +10613,6 @@ snapshots: dependencies: path-key: 2.0.1 - npm-run-path@4.0.1: - dependencies: - path-key: 3.1.1 - npm-run-path@5.3.0: dependencies: path-key: 4.0.0 @@ -13574,15 +10626,6 @@ snapshots: nwsapi@2.2.12: {} - nypm@0.3.9: - dependencies: - citty: 0.1.6 - consola: 3.2.3 - execa: 8.0.1 - pathe: 1.1.2 - pkg-types: 1.1.3 - ufo: 1.5.4 - object-assign@4.1.1: {} object-inspect@1.13.2: {} @@ -13620,8 +10663,6 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.0.0 - ohash@1.1.3: {} - omggif@1.0.10: {} on-finished@2.4.1: @@ -13642,6 +10683,12 @@ snapshots: dependencies: mimic-fn: 4.0.0 + open@8.4.2: + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -13679,10 +10726,6 @@ snapshots: dependencies: yocto-queue: 0.1.0 - p-locate@3.0.0: - dependencies: - p-limit: 2.3.0 - p-locate@4.1.0: dependencies: p-limit: 2.3.0 @@ -13737,8 +10780,6 @@ snapshots: dependencies: pinkie-promise: 2.0.1 - path-exists@3.0.0: {} - path-exists@4.0.0: {} path-is-absolute@1.0.1: {} @@ -13772,12 +10813,8 @@ snapshots: path-type@4.0.0: {} - path-type@5.0.0: {} - pathe@1.1.2: {} - pathval@1.1.1: {} - pathval@2.0.0: {} pause-stream@0.0.11: @@ -13804,34 +10841,20 @@ snapshots: pify@2.3.0: {} - pify@4.0.1: {} - pinkie-promise@2.0.1: dependencies: pinkie: 2.0.4 pinkie@2.0.4: {} - pirates@4.0.6: {} - pixelmatch@4.0.2: dependencies: pngjs: 3.4.0 - pkg-dir@3.0.0: - dependencies: - find-up: 3.0.0 - pkg-dir@4.2.0: dependencies: find-up: 4.1.0 - pkg-types@1.1.3: - dependencies: - confbox: 0.1.7 - mlly: 1.7.1 - pathe: 1.1.2 - pngjs@3.4.0: {} polished@4.3.1: @@ -13865,12 +10888,6 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 - pretty-format@29.7.0: - dependencies: - '@jest/schemas': 29.6.3 - ansi-styles: 5.2.0 - react-is: 18.3.1 - pretty-ms@7.0.1: dependencies: parse-ms: 2.1.0 @@ -13886,11 +10903,6 @@ snapshots: is-promise: 2.2.2 lie: 3.3.0 - prompts@2.4.2: - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 - prop-types@15.8.1: dependencies: loose-envify: 1.4.0 @@ -13940,9 +10952,6 @@ snapshots: - supports-color - utf-8-validate - pure-rand@6.1.0: - optional: true - pyright@1.1.369: optionalDependencies: fsevents: 2.3.3 @@ -14193,20 +11202,10 @@ snapshots: globalthis: 1.0.4 which-builtin-type: 1.1.4 - regenerate-unicode-properties@10.1.1: - dependencies: - regenerate: 1.4.2 - - regenerate@1.4.2: {} - regenerator-runtime@0.13.11: {} regenerator-runtime@0.14.1: {} - regenerator-transform@0.15.2: - dependencies: - '@babel/runtime': 7.24.8 - regexp.prototype.flags@1.5.2: dependencies: call-bind: 1.0.7 @@ -14214,15 +11213,6 @@ snapshots: es-errors: 1.3.0 set-function-name: 2.0.2 - regexpu-core@5.3.2: - dependencies: - '@babel/regjsgen': 0.8.0 - regenerate: 1.4.2 - regenerate-unicode-properties: 10.1.1 - regjsparser: 0.9.1 - unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.1.0 - registry-auth-token@3.3.2: dependencies: rc: 1.2.8 @@ -14232,10 +11222,6 @@ snapshots: dependencies: rc: 1.2.8 - regjsparser@0.9.1: - dependencies: - jsesc: 0.5.0 - rehype-external-links@3.0.0: dependencies: '@types/hast': 3.0.4 @@ -14267,19 +11253,8 @@ snapshots: resolve-alpn@1.2.1: {} - resolve-cwd@3.0.0: - dependencies: - resolve-from: 5.0.0 - optional: true - resolve-from@4.0.0: {} - resolve-from@5.0.0: - optional: true - - resolve.exports@2.0.2: - optional: true - resolve@1.22.8: dependencies: is-core-module: 2.14.0 @@ -14320,10 +11295,6 @@ snapshots: dependencies: glob: 7.2.3 - rimraf@2.6.3: - dependencies: - glob: 7.2.3 - rimraf@3.0.2: dependencies: glob: 7.2.3 @@ -14489,10 +11460,6 @@ snapshots: setprototypeof@1.2.0: {} - shallow-clone@3.0.1: - dependencies: - kind-of: 6.0.3 - shallowequal@1.1.0: {} shebang-command@1.2.0: @@ -14530,12 +11497,8 @@ snapshots: once: 1.4.0 simple-concat: 1.0.1 - sisteransi@1.0.5: {} - slash@3.0.0: {} - slash@5.1.0: {} - slice-ansi@5.0.0: dependencies: ansi-styles: 6.2.1 @@ -14566,12 +11529,6 @@ snapshots: source-map-js@1.2.0: {} - source-map-support@0.5.13: - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - optional: true - source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 @@ -14607,9 +11564,6 @@ snapshots: dependencies: through: 2.3.8 - sprintf-js@1.0.3: - optional: true - stack-utils@2.0.6: dependencies: escape-string-regexp: 2.0.0 @@ -14630,38 +11584,10 @@ snapshots: dependencies: internal-slot: 1.0.7 - storybook@8.2.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)): + storybook@8.3.3: dependencies: - '@babel/core': 7.25.2 - '@babel/types': 7.25.2 - '@storybook/codemod': 8.2.2 - '@storybook/core': 8.2.2 - '@types/semver': 7.5.8 - '@yarnpkg/fslib': 2.10.3 - '@yarnpkg/libzip': 2.3.0 - chalk: 4.1.2 - commander: 6.2.1 - cross-spawn: 7.0.3 - detect-indent: 6.1.0 - envinfo: 7.13.0 - execa: 5.1.1 - fd-package-json: 1.2.0 - find-up: 5.0.0 - fs-extra: 11.2.0 - giget: 1.2.3 - globby: 14.0.2 - jscodeshift: 0.15.2(@babel/preset-env@7.24.8(@babel/core@7.25.2)) - leven: 3.1.0 - ora: 5.4.1 - prettier: 3.3.2 - prompts: 2.4.2 - semver: 7.6.3 - strip-json-comments: 3.1.1 - tempy: 3.1.0 - tiny-invariant: 1.3.3 - ts-dedent: 2.2.0 + '@storybook/core': 8.3.3 transitivePeerDependencies: - - '@babel/preset-env' - bufferutil - supports-color - utf-8-validate @@ -14674,12 +11600,6 @@ snapshots: string-argv@0.3.2: {} - string-length@4.0.2: - dependencies: - char-regex: 1.0.2 - strip-ansi: 6.0.1 - optional: true - string-width@2.1.1: dependencies: is-fullwidth-code-point: 2.0.0 @@ -14772,13 +11692,8 @@ snapshots: strip-bom@3.0.0: {} - strip-bom@4.0.0: - optional: true - strip-eof@1.0.0: {} - strip-final-newline@2.0.0: {} - strip-final-newline@3.0.0: {} strip-indent@3.0.0: @@ -14852,23 +11767,10 @@ snapshots: dependencies: memoizerific: 1.11.3 - temp-dir@3.0.0: {} - temp-fs@0.9.9: dependencies: rimraf: 2.5.4 - temp@0.8.4: - dependencies: - rimraf: 2.6.3 - - tempy@3.1.0: - dependencies: - is-stream: 3.0.0 - temp-dir: 3.0.0 - type-fest: 2.19.0 - unique-string: 3.0.0 - term-size@1.2.0: dependencies: execa: 0.7.0 @@ -14881,13 +11783,6 @@ snapshots: source-map-support: 0.5.21 optional: true - test-exclude@6.0.0: - dependencies: - '@istanbuljs/schema': 0.1.3 - glob: 7.2.3 - minimatch: 3.1.2 - optional: true - test-exclude@7.0.1: dependencies: '@istanbuljs/schema': 0.1.3 @@ -14926,17 +11821,12 @@ snapshots: tinyrainbow@1.2.0: {} - tinyspy@2.2.1: {} - tinyspy@3.0.0: {} tmp@0.0.33: dependencies: os-tmpdir: 1.0.2 - tmpl@1.0.5: - optional: true - to-fast-properties@2.0.0: {} to-regex-range@5.0.1: @@ -15005,27 +11895,6 @@ snapshots: optionalDependencies: '@swc/core': 1.5.7 - ts-node@10.9.2(@swc/core@1.5.7)(@types/node@22.2.0)(typescript@5.5.4): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 22.2.0 - acorn: 8.12.1 - acorn-walk: 8.3.3 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.5.4 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - optionalDependencies: - '@swc/core': 1.5.7 - optional: true - ts-node@9.1.1(typescript@5.5.4): dependencies: arg: 4.1.3 @@ -15067,14 +11936,10 @@ snapshots: dependencies: prelude-ls: 1.2.1 - type-detect@4.0.8: {} - type-fest@0.20.2: {} type-fest@0.21.3: {} - type-fest@1.4.0: {} - type-fest@2.19.0: {} type-is@1.6.18: @@ -15145,8 +12010,6 @@ snapshots: ua-parser-js@0.7.38: {} - ufo@1.5.4: {} - uid@2.0.2: dependencies: '@lukeed/csprng': 1.1.0 @@ -15167,23 +12030,6 @@ snapshots: undici-types@6.13.0: {} - unicode-canonical-property-names-ecmascript@2.0.0: {} - - unicode-match-property-ecmascript@2.0.0: - dependencies: - unicode-canonical-property-names-ecmascript: 2.0.0 - unicode-property-aliases-ecmascript: 2.1.0 - - unicode-match-property-value-ecmascript@2.1.0: {} - - unicode-property-aliases-ecmascript@2.1.0: {} - - unicorn-magic@0.1.0: {} - - unique-string@3.0.0: - dependencies: - crypto-random-string: 4.0.0 - unist-util-is@6.0.0: dependencies: '@types/unist': 3.0.2 @@ -15271,13 +12117,6 @@ snapshots: v8-compile-cache-lib@3.0.1: {} - v8-to-istanbul@9.3.0: - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - '@types/istanbul-lib-coverage': 2.0.6 - convert-source-map: 2.0.0 - optional: true - validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 @@ -15349,13 +12188,6 @@ snapshots: dependencies: xml-name-validator: 5.0.0 - walk-up-path@3.0.1: {} - - walker@1.0.8: - dependencies: - makeerror: 1.0.12 - optional: true - wcwidth@1.0.1: dependencies: defaults: 1.0.4 @@ -15525,18 +12357,6 @@ snapshots: wrappy@1.0.2: {} - write-file-atomic@2.4.3: - dependencies: - graceful-fs: 4.2.11 - imurmurhash: 0.1.4 - signal-exit: 3.0.7 - - write-file-atomic@4.0.2: - dependencies: - imurmurhash: 0.1.4 - signal-exit: 3.0.7 - optional: true - ws@7.4.6: {} ws@8.17.1: {} From 02215ced42ed9ad90a4a18c7d9e4a4adbbaa2cf4 Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Thu, 10 Oct 2024 02:58:09 +0000 Subject: [PATCH 22/30] move kc example to rmf-dashboard-framework Signed-off-by: Teo Koon Peng --- .../examples/keycloak/README.md | 0 .../examples/keycloak/api_server_config.py | 0 .../examples/keycloak/index.html | 0 .../examples/keycloak/index.tsx | 0 .../examples/keycloak/keycloak-setup.bash | 0 .../examples/keycloak/utils.bash | 0 6 files changed, 0 insertions(+), 0 deletions(-) rename packages/{dashboard => rmf-dashboard-framework}/examples/keycloak/README.md (100%) rename packages/{dashboard => rmf-dashboard-framework}/examples/keycloak/api_server_config.py (100%) rename packages/{dashboard => rmf-dashboard-framework}/examples/keycloak/index.html (100%) rename packages/{dashboard => rmf-dashboard-framework}/examples/keycloak/index.tsx (100%) rename packages/{dashboard => rmf-dashboard-framework}/examples/keycloak/keycloak-setup.bash (100%) rename packages/{dashboard => rmf-dashboard-framework}/examples/keycloak/utils.bash (100%) diff --git a/packages/dashboard/examples/keycloak/README.md b/packages/rmf-dashboard-framework/examples/keycloak/README.md similarity index 100% rename from packages/dashboard/examples/keycloak/README.md rename to packages/rmf-dashboard-framework/examples/keycloak/README.md diff --git a/packages/dashboard/examples/keycloak/api_server_config.py b/packages/rmf-dashboard-framework/examples/keycloak/api_server_config.py similarity index 100% rename from packages/dashboard/examples/keycloak/api_server_config.py rename to packages/rmf-dashboard-framework/examples/keycloak/api_server_config.py diff --git a/packages/dashboard/examples/keycloak/index.html b/packages/rmf-dashboard-framework/examples/keycloak/index.html similarity index 100% rename from packages/dashboard/examples/keycloak/index.html rename to packages/rmf-dashboard-framework/examples/keycloak/index.html diff --git a/packages/dashboard/examples/keycloak/index.tsx b/packages/rmf-dashboard-framework/examples/keycloak/index.tsx similarity index 100% rename from packages/dashboard/examples/keycloak/index.tsx rename to packages/rmf-dashboard-framework/examples/keycloak/index.tsx diff --git a/packages/dashboard/examples/keycloak/keycloak-setup.bash b/packages/rmf-dashboard-framework/examples/keycloak/keycloak-setup.bash similarity index 100% rename from packages/dashboard/examples/keycloak/keycloak-setup.bash rename to packages/rmf-dashboard-framework/examples/keycloak/keycloak-setup.bash diff --git a/packages/dashboard/examples/keycloak/utils.bash b/packages/rmf-dashboard-framework/examples/keycloak/utils.bash similarity index 100% rename from packages/dashboard/examples/keycloak/utils.bash rename to packages/rmf-dashboard-framework/examples/keycloak/utils.bash From 2a96b73eae12ce905f42bf0c5d954e954989fc87 Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Thu, 10 Oct 2024 03:04:40 +0000 Subject: [PATCH 23/30] fix imports Signed-off-by: Teo Koon Peng --- .../examples/keycloak/index.tsx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/rmf-dashboard-framework/examples/keycloak/index.tsx b/packages/rmf-dashboard-framework/examples/keycloak/index.tsx index b5f5c7250..42523bb8a 100644 --- a/packages/rmf-dashboard-framework/examples/keycloak/index.tsx +++ b/packages/rmf-dashboard-framework/examples/keycloak/index.tsx @@ -4,20 +4,20 @@ import '@fontsource/roboto/500.css'; import '@fontsource/roboto/700.css'; import ReactDOM from 'react-dom/client'; +import { RmfDashboard } from 'rmf-dashboard-framework/components'; import { InitialWindow, LocallyPersistentWorkspace, - RmfDashboard, Workspace, -} from 'rmf-dashboard/components'; -import { MicroAppManifest } from 'rmf-dashboard/components/micro-app'; -import doorsApp from 'rmf-dashboard/micro-apps/doors-app'; -import liftsApp from 'rmf-dashboard/micro-apps/lifts-app'; -import createMapApp from 'rmf-dashboard/micro-apps/map-app'; -import robotMutexGroupsApp from 'rmf-dashboard/micro-apps/robot-mutex-groups-app'; -import robotsApp from 'rmf-dashboard/micro-apps/robots-app'; -import tasksApp from 'rmf-dashboard/micro-apps/tasks-app'; -import KeycloakAuthenticator from 'rmf-dashboard/services/keycloak'; +} from 'rmf-dashboard-framework/components/workspace'; +import { MicroAppManifest } from 'rmf-dashboard-framework/micro-apps'; +import doorsApp from 'rmf-dashboard-framework/micro-apps/doors-app'; +import liftsApp from 'rmf-dashboard-framework/micro-apps/lifts-app'; +import createMapApp from 'rmf-dashboard-framework/micro-apps/map-app'; +import robotMutexGroupsApp from 'rmf-dashboard-framework/micro-apps/robot-mutex-groups-app'; +import robotsApp from 'rmf-dashboard-framework/micro-apps/robots-app'; +import tasksApp from 'rmf-dashboard-framework/micro-apps/tasks-app'; +import KeycloakAuthenticator from 'rmf-dashboard-framework/services/keycloak'; const mapApp = createMapApp({ attributionPrefix: 'Open-RMF', From c2240bfa294775d216ff2a80fa70c076658b31f5 Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Fri, 18 Oct 2024 03:29:00 +0000 Subject: [PATCH 24/30] address pr comments, fixing tutorial Signed-off-by: Teo Koon Peng --- README.md | 3 +- .../docs/getting-started.md | 56 ++++++++++++----- .../examples/demo/main.tsx | 20 ++++--- packages/rmf-dashboard-framework/package.json | 4 ++ .../src/components/index.ts | 2 + .../src/components/micro-app.tsx | 54 +++++++++++++++++ .../src/micro-apps/index.tsx | 60 ++----------------- .../src/micro-apps/map-app.ts | 2 +- 8 files changed, 120 insertions(+), 81 deletions(-) create mode 100644 packages/rmf-dashboard-framework/src/components/micro-app.tsx diff --git a/README.md b/README.md index 235449908..ff98a4473 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Nightly](https://github.com/open-rmf/rmf-web/actions/workflows/nightly.yml/badge.svg)](https://github.com/open-rmf/rmf-web/actions/workflows/nightly.yml) [![Dashboard End-to-End](https://github.com/open-rmf/rmf-web/actions/workflows/dashboard-e2e.yml/badge.svg)](https://github.com/open-rmf/rmf-web/actions/workflows/dashboard-e2e.yml) [![react-components](https://github.com/open-rmf/rmf-web/workflows/react-components/badge.svg)](https://github.com/open-rmf/rmf-web/actions?query=workflow%3Areact-components+branch%3Amain) [![rmf-dashboard-framework](https://github.com/open-rmf/rmf-web/actions/workflows/rmf-dashboard-framework.yml/badge.svg)](https://github.com/open-rmf/rmf-web/actions/workflows/rmf-dashboard-framework.yml) [![api-server](https://github.com/open-rmf/rmf-web/workflows/api-server/badge.svg)](https://github.com/open-rmf/rmf-web/actions?query=workflow%3Aapi-server+branch%3Amain) [![ros-translator](https://github.com/open-rmf/rmf-web/actions/workflows/ros-translator.yml/badge.svg)](https://github.com/open-rmf/rmf-web/actions/workflows/ros-translator.yml) [![api-client](https://github.com/open-rmf/rmf-web/actions/workflows/api-client.yml/badge.svg)](https://github.com/open-rmf/rmf-web/actions/workflows/api-client.yml) [![codecov](https://codecov.io/gh/open-rmf/rmf-web/branch/main/graph/badge.svg)](https://codecov.io/gh/open-rmf/rmf-web) +[![Nightly](https://github.com/open-rmf/rmf-web/actions/workflows/nightly.yml/badge.svg)](https://github.com/open-rmf/rmf-web/actions/workflows/nightly.yml) [![Dashboard End-to-End](https://github.com/open-rmf/rmf-web/actions/workflows/dashboard-e2e.yml/badge.svg)](https://github.com/open-rmf/rmf-web/actions/workflows/dashboard-e2e.yml) [![rmf-dashboard-framework](https://github.com/open-rmf/rmf-web/actions/workflows/rmf-dashboard-framework.yml/badge.svg)](https://github.com/open-rmf/rmf-web/actions/workflows/rmf-dashboard-framework.yml) [![api-server](https://github.com/open-rmf/rmf-web/workflows/api-server/badge.svg)](https://github.com/open-rmf/rmf-web/actions?query=workflow%3Aapi-server+branch%3Amain) [![ros-translator](https://github.com/open-rmf/rmf-web/actions/workflows/ros-translator.yml/badge.svg)](https://github.com/open-rmf/rmf-web/actions/workflows/ros-translator.yml) [![api-client](https://github.com/open-rmf/rmf-web/actions/workflows/api-client.yml/badge.svg)](https://github.com/open-rmf/rmf-web/actions/workflows/api-client.yml) [![codecov](https://codecov.io/gh/open-rmf/rmf-web/branch/main/graph/badge.svg)](https://codecov.io/gh/open-rmf/rmf-web) # RMF Web @@ -132,7 +132,6 @@ pnpm start - For general contribution guidelines, see [CONTRIBUTING](CONTRIBUTING.md). - Follow [typescript guidelines](https://basarat.gitbook.io/typescript/styleguide). -- When introducing a new feature or component in [`react-components`](packages/react-components), write tests and stories. - When introducing a new feature in [`rmf-dashboard-framework`](packages/rmf-dashboard-framework), write tests as well as [e2e](packages/dashboard-e2e) test whenever possible. - When introducing API changes with [`api-server`](packages/api-server), - If the new changes are to be used externally (outside of the web packages, with other Open-RMF packages for example), make changes to [`rmf_api_msgs`](https://github.com/open-rmf/rmf_api_msgs), before generating the required models using [this script](packages/api-server/generate-models.sh) with modified commit hashes. diff --git a/packages/rmf-dashboard-framework/docs/getting-started.md b/packages/rmf-dashboard-framework/docs/getting-started.md index 9fbd4a3d0..a396185c0 100644 --- a/packages/rmf-dashboard-framework/docs/getting-started.md +++ b/packages/rmf-dashboard-framework/docs/getting-started.md @@ -29,6 +29,8 @@ git clone --depth 1 https://github.com/open-rmf/rmf-web Modify the following to resolve `rmf-dashboard-framework` as if it is installed from npmjs. +Add local dependency to `rmf-web`: + package.json ``` @@ -38,45 +40,53 @@ package.json } ``` +Configure typescript to resolve `rmf-dashboard-framework`: + tsconfig.app.json ``` -"paths": { - "rmf-dashboard-framework/*": ["./node_modules/rmf-dashboard-framework/src/*"] -} +compilerOptions: [ + ..., + "paths": { + "rmf-dashboard-framework/*": ["./node_modules/rmf-dashboard-framework/src/*"] + }, + ... +] ``` -Finally install and build the deps +Build `rmf-dashboard-framework` ```bash -# install and build rmf-dashboard-framework +# cd cd rmf-web pnpm install --filter=rmf-dashboard-framework... pnpm --filter=rmf-dashboard-framework^... build -# install basic-dashboard deps -cd .. +``` + +Install `basic-dashboard` deps + +```bash +# cd pnpm install ``` ### Creating a Basic Dashboard -At this point, you should be able to follow the [demo dashboard example](../examples/demo/main.tsx). You may need to install additional deps if you want to use the same fonts as the demo. +At this point, you should be able to follow the [demo dashboard example](../examples/demo/main.tsx). You may also want to +* move or copy any resources required, for example `defaultLogo.png` +* install additional dependencies if you want to use the same fonts as the demo ```bash -pnpm add -w @fontsource/roboto +pnpm add @fontsource/roboto ``` ### Starting a Dev Server -Before starting the dev server, we need a rmf api server backend for the frontend to connect to. If you are targeting an existing deployment, change the `apiServerUrl` prop to connect to the correct url. If you do not have an existing server, you can start a local server with docker. - - +Before starting the dev server, we need an RMF API server backend for the frontend to connect to. If you are targeting an existing deployment, change the `apiServerUrl` prop to connect to the correct url. If you do not have an existing server, you can start a local server with docker. ```bash docker run \ --network host -it --rm \ - -e ROS_DOMAIN_ID= \ - -e RMW_IMPLEMENTATION= \ ghcr.io/open-rmf/rmf-web/api-server:latest ``` @@ -92,7 +102,7 @@ Navigate to http://localhost:5173 on a browser and you should see the dashboard. ### Starting RMF Simulation -If you are testing locally, you may see that the map, doors, robots etc are all empty, this is because the api server is not receiving any data from RMF. Check out [`rmf_demos`](https://github.com/open-rmf/rmf_demos) if you want to test with a RMF simulation. +If you are testing locally, you may see that the map, doors, robots etc are all empty, this is because the API server is not receiving any data from RMF. Check out [`rmf_demos`](https://github.com/open-rmf/rmf_demos) if you want to test with a RMF simulation. ### Adding a New Tab @@ -113,3 +123,19 @@ The `tabs` props in `RmfDashboard` lets you configure the tabs available in the ``` The `layout` property defines the position and size of a MicroApp, the screen is divided into 12 columns and an unlimited number of rows, so this MicroApp will be positioned at the top left and have a width spanning the view port. For more information on the `layout` property, see [react-grid-layout](https://github.com/react-grid-layout/react-grid-layout). + +### Creating an optimized production build (optional) + +You shouldn't need to do this for local testing, but for reference, the example uses vite, an optimized production build can be created with + +```bash +# cd +pnpm vite build +``` + +There is no dev server for a production build, you will need a web server to access it. + +```bash +# not recommended in production! +pnpx serve -s build +``` diff --git a/packages/rmf-dashboard-framework/examples/demo/main.tsx b/packages/rmf-dashboard-framework/examples/demo/main.tsx index 9d6c3ba17..d0be261e9 100644 --- a/packages/rmf-dashboard-framework/examples/demo/main.tsx +++ b/packages/rmf-dashboard-framework/examples/demo/main.tsx @@ -4,19 +4,21 @@ import '@fontsource/roboto/500.css'; import '@fontsource/roboto/700.css'; import ReactDOM from 'react-dom/client'; -import { RmfDashboard } from 'rmf-dashboard-framework/components'; import { InitialWindow, LocallyPersistentWorkspace, + MicroAppManifest, + RmfDashboard, Workspace, -} from 'rmf-dashboard-framework/components/workspace'; -import { MicroAppManifest } from 'rmf-dashboard-framework/micro-apps'; -import doorsApp from 'rmf-dashboard-framework/micro-apps/doors-app'; -import liftsApp from 'rmf-dashboard-framework/micro-apps/lifts-app'; -import createMapApp from 'rmf-dashboard-framework/micro-apps/map-app'; -import robotMutexGroupsApp from 'rmf-dashboard-framework/micro-apps/robot-mutex-groups-app'; -import robotsApp from 'rmf-dashboard-framework/micro-apps/robots-app'; -import tasksApp from 'rmf-dashboard-framework/micro-apps/tasks-app'; +} from 'rmf-dashboard-framework/components'; +import { + createMapApp, + doorsApp, + liftsApp, + robotMutexGroupsApp, + robotsApp, + tasksApp, +} from 'rmf-dashboard-framework/micro-apps'; import StubAuthenticator from 'rmf-dashboard-framework/services/stub-authenticator'; const mapApp = createMapApp({ diff --git a/packages/rmf-dashboard-framework/package.json b/packages/rmf-dashboard-framework/package.json index 6545dd697..ef22a9dd3 100644 --- a/packages/rmf-dashboard-framework/package.json +++ b/packages/rmf-dashboard-framework/package.json @@ -91,5 +91,9 @@ "typescript-json-schema": "^0.64.0", "vite": "^5.3.5", "vitest": "^2.0.4" + }, + "exports": { + "./components": "./src/components", + "./micro-apps": "./src/micro-apps" } } diff --git a/packages/rmf-dashboard-framework/src/components/index.ts b/packages/rmf-dashboard-framework/src/components/index.ts index 34a2fbb95..b25de602a 100644 --- a/packages/rmf-dashboard-framework/src/components/index.ts +++ b/packages/rmf-dashboard-framework/src/components/index.ts @@ -1 +1,3 @@ +export * from './micro-app'; export * from './rmf-dashboard'; +export * from './workspace'; diff --git a/packages/rmf-dashboard-framework/src/components/micro-app.tsx b/packages/rmf-dashboard-framework/src/components/micro-app.tsx new file mode 100644 index 000000000..b698c87f7 --- /dev/null +++ b/packages/rmf-dashboard-framework/src/components/micro-app.tsx @@ -0,0 +1,54 @@ +import React, { Suspense } from 'react'; + +import { Window, WindowProps } from '../components/window'; +import { useAppController } from '../hooks/use-app-controller'; +import { useSettings } from '../hooks/use-settings'; +import { Settings } from '../services/settings'; + +export type MicroAppProps = Omit; + +export interface MicroAppManifest { + appId: string; + displayName: string; + Component: React.ComponentType; +} + +/** + * Creates a micro app from a component. The component must be loaded using dynamic import. + * Note that the micro app should be created in a different module than the component. + * + * Example: + * ```ts + * createMicroApp('Map', 'Map', () => import('./map'), config); + * ``` + */ +export function createMicroApp

( + appId: string, + displayName: string, + loadComponent: () => Promise<{ default: React.ComponentType

}>, + props: ( + settings: Settings, + updateSettings: (settings: Settings) => void, + ) => React.PropsWithoutRef

& React.Attributes, +): MicroAppManifest { + const LazyComponent = React.lazy(loadComponent); + return { + appId, + displayName, + Component: React.forwardRef( + ({ children, ...otherProps }: React.PropsWithChildren, ref) => { + const settings = useSettings(); + const { updateSettings } = useAppController(); + return ( + + + + + {/* this contains the resize handle */} + {children} + + ); + }, + ) as React.ComponentType, + }; +} diff --git a/packages/rmf-dashboard-framework/src/micro-apps/index.tsx b/packages/rmf-dashboard-framework/src/micro-apps/index.tsx index b698c87f7..d7e05f42e 100644 --- a/packages/rmf-dashboard-framework/src/micro-apps/index.tsx +++ b/packages/rmf-dashboard-framework/src/micro-apps/index.tsx @@ -1,54 +1,6 @@ -import React, { Suspense } from 'react'; - -import { Window, WindowProps } from '../components/window'; -import { useAppController } from '../hooks/use-app-controller'; -import { useSettings } from '../hooks/use-settings'; -import { Settings } from '../services/settings'; - -export type MicroAppProps = Omit; - -export interface MicroAppManifest { - appId: string; - displayName: string; - Component: React.ComponentType; -} - -/** - * Creates a micro app from a component. The component must be loaded using dynamic import. - * Note that the micro app should be created in a different module than the component. - * - * Example: - * ```ts - * createMicroApp('Map', 'Map', () => import('./map'), config); - * ``` - */ -export function createMicroApp

( - appId: string, - displayName: string, - loadComponent: () => Promise<{ default: React.ComponentType

}>, - props: ( - settings: Settings, - updateSettings: (settings: Settings) => void, - ) => React.PropsWithoutRef

& React.Attributes, -): MicroAppManifest { - const LazyComponent = React.lazy(loadComponent); - return { - appId, - displayName, - Component: React.forwardRef( - ({ children, ...otherProps }: React.PropsWithChildren, ref) => { - const settings = useSettings(); - const { updateSettings } = useAppController(); - return ( - - - - - {/* this contains the resize handle */} - {children} - - ); - }, - ) as React.ComponentType, - }; -} +export { default as doorsApp } from './doors-app'; +export { default as liftsApp } from './lifts-app'; +export { default as createMapApp } from './map-app'; +export { default as robotMutexGroupsApp } from './robot-mutex-groups-app'; +export { default as robotsApp } from './robots-app'; +export { default as tasksApp } from './tasks-app'; diff --git a/packages/rmf-dashboard-framework/src/micro-apps/map-app.ts b/packages/rmf-dashboard-framework/src/micro-apps/map-app.ts index e87f0e99b..e99faa306 100644 --- a/packages/rmf-dashboard-framework/src/micro-apps/map-app.ts +++ b/packages/rmf-dashboard-framework/src/micro-apps/map-app.ts @@ -1,5 +1,5 @@ +import { createMicroApp, MicroAppManifest } from '../components'; import type { MapProps } from '../components/map'; -import { createMicroApp, MicroAppManifest } from '.'; export default function createMapApp(config: MapProps): MicroAppManifest { return createMicroApp( From c9ea2c2b327c368a74c3e4ff985554c5d08768ba Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Fri, 18 Oct 2024 03:48:31 +0000 Subject: [PATCH 25/30] add subpath exports Signed-off-by: Teo Koon Peng --- .../examples/custom-theme/main.tsx | 24 ++++++++------- .../examples/demo/main.tsx | 2 +- .../examples/keycloak/index.html | 2 +- .../examples/keycloak/{index.tsx => main.tsx} | 22 +++++++------- packages/rmf-dashboard-framework/package.json | 6 ++-- .../admin/add-permission-dialog.test.tsx | 4 +-- .../admin/add-permission-dialog.tsx | 5 ++-- .../admin/create-role-dialog.test.tsx | 2 +- .../components/admin/create-role-dialog.tsx | 3 +- .../admin/create-user-dialog.test.tsx | 2 +- .../components/admin/create-user-dialog.tsx | 3 +- .../admin/manage-roles-dialog.test.tsx | 2 +- .../components/admin/manage-roles-dialog.tsx | 3 +- .../admin/permissions-card.test.tsx | 4 +-- .../src/components/admin/permissions-card.tsx | 7 ++--- .../admin/role-list-card.stories.tsx | 2 +- .../components/admin/role-list-card.test.tsx | 2 +- .../src/components/admin/role-list-card.tsx | 3 +- .../src/components/admin/role-list-page.tsx | 2 +- .../components/admin/user-list-card.test.tsx | 2 +- .../src/components/admin/user-list-card.tsx | 3 +- .../src/components/admin/user-list-page.tsx | 2 +- .../components/admin/user-profile-page.tsx | 3 +- .../components/admin/user-profile.test.tsx | 2 +- .../src/components/admin/user-profile.tsx | 3 +- .../src/components/alert-manager.tsx | 3 +- .../src/components/appbar.test.tsx | 6 ++-- .../src/components/appbar.tsx | 18 ++++++----- .../src/components/beacons/beacons-table.tsx | 2 +- .../src/components/delivery-alert-store.tsx | 3 +- .../src/components/doors/door-summary.tsx | 2 +- .../src/components/doors/doors-table.tsx | 2 +- .../src/components/lifts/lift-summary.tsx | 2 +- .../src/components/lifts/lifts-table.tsx | 2 +- .../src/components/map/door-three.tsx | 2 +- .../src/components/map/index.tsx | 14 +++++---- .../src/components/map/lift-three.tsx | 2 +- .../src/components/micro-app.tsx | 5 ++-- .../src/components/rmf-dashboard.tsx | 30 ++++++++++++------- .../components/robots/robot-decommission.tsx | 3 +- .../src/components/robots/robot-info-card.tsx | 2 +- .../robots/robot-mutex-group-table.tsx | 3 +- .../src/components/robots/robot-summary.tsx | 2 +- .../src/components/robots/robots-table.tsx | 2 +- .../components/tasks/task-cancellation.tsx | 6 ++-- .../components/tasks/task-details-card.tsx | 3 +- .../src/components/tasks/task-inspector.tsx | 2 +- .../src/components/tasks/task-logs-app.tsx | 2 +- .../src/components/tasks/task-schedule.tsx | 12 ++++---- .../src/components/tasks/task-summary.tsx | 2 +- .../src/components/tasks/tasks-window.tsx | 5 ++-- .../src/components/tasks/utils.ts | 2 +- .../src/components/workspace.tsx | 4 +-- .../src/hooks/index.ts | 10 +++++++ .../src/hooks/use-app-controller.ts | 2 +- .../src/hooks/use-authenticator.ts | 2 +- .../src/hooks/use-create-task-form.tsx | 2 +- .../src/hooks/use-rmf-api.ts | 2 +- .../src/hooks/use-settings.ts | 2 +- .../src/hooks/use-user-profile.tsx | 2 +- .../src/micro-apps/{index.tsx => index.ts} | 0 .../src/services/index.ts | 10 +++++++ .../src/utils/index.ts | 2 ++ .../src/utils/test-utils.test.tsx | 24 ++++++++------- 64 files changed, 172 insertions(+), 144 deletions(-) rename packages/rmf-dashboard-framework/examples/keycloak/{index.tsx => main.tsx} (81%) create mode 100644 packages/rmf-dashboard-framework/src/hooks/index.ts rename packages/rmf-dashboard-framework/src/micro-apps/{index.tsx => index.ts} (100%) create mode 100644 packages/rmf-dashboard-framework/src/services/index.ts create mode 100644 packages/rmf-dashboard-framework/src/utils/index.ts diff --git a/packages/rmf-dashboard-framework/examples/custom-theme/main.tsx b/packages/rmf-dashboard-framework/examples/custom-theme/main.tsx index 78e33c9ea..c28211ff9 100644 --- a/packages/rmf-dashboard-framework/examples/custom-theme/main.tsx +++ b/packages/rmf-dashboard-framework/examples/custom-theme/main.tsx @@ -5,16 +5,20 @@ import '@fontsource/roboto/700.css'; import { createTheme } from '@mui/material'; import ReactDOM from 'react-dom/client'; -import { RmfDashboard } from 'rmf-dashboard-framework/components'; -import { LocallyPersistentWorkspace } from 'rmf-dashboard-framework/components/workspace'; -import { MicroAppManifest } from 'rmf-dashboard-framework/micro-apps'; -import doorsApp from 'rmf-dashboard-framework/micro-apps/doors-app'; -import liftsApp from 'rmf-dashboard-framework/micro-apps/lifts-app'; -import createMapApp from 'rmf-dashboard-framework/micro-apps/map-app'; -import robotMutexGroupsApp from 'rmf-dashboard-framework/micro-apps/robot-mutex-groups-app'; -import robotsApp from 'rmf-dashboard-framework/micro-apps/robots-app'; -import tasksApp from 'rmf-dashboard-framework/micro-apps/tasks-app'; -import StubAuthenticator from 'rmf-dashboard-framework/services/stub-authenticator'; +import { + LocallyPersistentWorkspace, + MicroAppManifest, + RmfDashboard, +} from 'rmf-dashboard-framework/components'; +import { + createMapApp, + doorsApp, + liftsApp, + robotMutexGroupsApp, + robotsApp, + tasksApp, +} from 'rmf-dashboard-framework/micro-apps'; +import { StubAuthenticator } from 'rmf-dashboard-framework/services'; /* eslint-disable @typescript-eslint/no-unused-vars,@typescript-eslint/ban-ts-comment */ // Polar Night diff --git a/packages/rmf-dashboard-framework/examples/demo/main.tsx b/packages/rmf-dashboard-framework/examples/demo/main.tsx index d0be261e9..d6e4e5266 100644 --- a/packages/rmf-dashboard-framework/examples/demo/main.tsx +++ b/packages/rmf-dashboard-framework/examples/demo/main.tsx @@ -19,7 +19,7 @@ import { robotsApp, tasksApp, } from 'rmf-dashboard-framework/micro-apps'; -import StubAuthenticator from 'rmf-dashboard-framework/services/stub-authenticator'; +import { StubAuthenticator } from 'rmf-dashboard-framework/services'; const mapApp = createMapApp({ attributionPrefix: 'Open-RMF', diff --git a/packages/rmf-dashboard-framework/examples/keycloak/index.html b/packages/rmf-dashboard-framework/examples/keycloak/index.html index f13043862..97431e709 100644 --- a/packages/rmf-dashboard-framework/examples/keycloak/index.html +++ b/packages/rmf-dashboard-framework/examples/keycloak/index.html @@ -13,6 +13,6 @@

- + diff --git a/packages/rmf-dashboard-framework/examples/keycloak/index.tsx b/packages/rmf-dashboard-framework/examples/keycloak/main.tsx similarity index 81% rename from packages/rmf-dashboard-framework/examples/keycloak/index.tsx rename to packages/rmf-dashboard-framework/examples/keycloak/main.tsx index 42523bb8a..2997b8143 100644 --- a/packages/rmf-dashboard-framework/examples/keycloak/index.tsx +++ b/packages/rmf-dashboard-framework/examples/keycloak/main.tsx @@ -4,20 +4,22 @@ import '@fontsource/roboto/500.css'; import '@fontsource/roboto/700.css'; import ReactDOM from 'react-dom/client'; -import { RmfDashboard } from 'rmf-dashboard-framework/components'; import { InitialWindow, LocallyPersistentWorkspace, + MicroAppManifest, + RmfDashboard, Workspace, -} from 'rmf-dashboard-framework/components/workspace'; -import { MicroAppManifest } from 'rmf-dashboard-framework/micro-apps'; -import doorsApp from 'rmf-dashboard-framework/micro-apps/doors-app'; -import liftsApp from 'rmf-dashboard-framework/micro-apps/lifts-app'; -import createMapApp from 'rmf-dashboard-framework/micro-apps/map-app'; -import robotMutexGroupsApp from 'rmf-dashboard-framework/micro-apps/robot-mutex-groups-app'; -import robotsApp from 'rmf-dashboard-framework/micro-apps/robots-app'; -import tasksApp from 'rmf-dashboard-framework/micro-apps/tasks-app'; -import KeycloakAuthenticator from 'rmf-dashboard-framework/services/keycloak'; +} from 'rmf-dashboard-framework/components'; +import { + createMapApp, + doorsApp, + liftsApp, + robotMutexGroupsApp, + robotsApp, + tasksApp, +} from 'rmf-dashboard-framework/micro-apps'; +import { KeycloakAuthenticator } from 'rmf-dashboard-framework/services'; const mapApp = createMapApp({ attributionPrefix: 'Open-RMF', diff --git a/packages/rmf-dashboard-framework/package.json b/packages/rmf-dashboard-framework/package.json index ef22a9dd3..91a2722ba 100644 --- a/packages/rmf-dashboard-framework/package.json +++ b/packages/rmf-dashboard-framework/package.json @@ -93,7 +93,9 @@ "vitest": "^2.0.4" }, "exports": { - "./components": "./src/components", - "./micro-apps": "./src/micro-apps" + "./components": "./src/components/index", + "./hooks": "./src/hooks/index", + "./micro-apps": "./src/micro-apps/index", + "./services": "./src/services/index" } } diff --git a/packages/rmf-dashboard-framework/src/components/admin/add-permission-dialog.test.tsx b/packages/rmf-dashboard-framework/src/components/admin/add-permission-dialog.test.tsx index 73702b052..d837576b7 100644 --- a/packages/rmf-dashboard-framework/src/components/admin/add-permission-dialog.test.tsx +++ b/packages/rmf-dashboard-framework/src/components/admin/add-permission-dialog.test.tsx @@ -2,8 +2,8 @@ import { render as render_ } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { describe, expect, it, vi } from 'vitest'; -import { AppControllerProvider } from '../../hooks/use-app-controller'; -import { RmfAction } from '../../services/permissions'; +import { AppControllerProvider } from '../../hooks'; +import { RmfAction } from '../../services'; import { makeMockAppController } from '../../utils/test-utils.test'; import { AddPermissionDialog } from './add-permission-dialog'; diff --git a/packages/rmf-dashboard-framework/src/components/admin/add-permission-dialog.tsx b/packages/rmf-dashboard-framework/src/components/admin/add-permission-dialog.tsx index 3585ff4b2..436407f25 100644 --- a/packages/rmf-dashboard-framework/src/components/admin/add-permission-dialog.tsx +++ b/packages/rmf-dashboard-framework/src/components/admin/add-permission-dialog.tsx @@ -2,9 +2,8 @@ import { MenuItem, TextField } from '@mui/material'; import { Permission } from 'api-client'; import React from 'react'; -import { useAppController } from '../../hooks/use-app-controller'; -import { useAsync } from '../../hooks/use-async'; -import { getActionText, RmfAction } from '../../services/permissions'; +import { useAppController, useAsync } from '../../hooks'; +import { getActionText, RmfAction } from '../../services'; import { ConfirmationDialog } from '../confirmation-dialog'; export interface AddPermissionDialogProps { diff --git a/packages/rmf-dashboard-framework/src/components/admin/create-role-dialog.test.tsx b/packages/rmf-dashboard-framework/src/components/admin/create-role-dialog.test.tsx index 8353642cc..dd1a90f45 100644 --- a/packages/rmf-dashboard-framework/src/components/admin/create-role-dialog.test.tsx +++ b/packages/rmf-dashboard-framework/src/components/admin/create-role-dialog.test.tsx @@ -2,7 +2,7 @@ import { render as render_ } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { describe, expect, it, vi } from 'vitest'; -import { AppControllerProvider } from '../../hooks/use-app-controller'; +import { AppControllerProvider } from '../../hooks'; import { makeMockAppController } from '../../utils/test-utils.test'; import { CreateRoleDialog } from './create-role-dialog'; diff --git a/packages/rmf-dashboard-framework/src/components/admin/create-role-dialog.tsx b/packages/rmf-dashboard-framework/src/components/admin/create-role-dialog.tsx index 1ae040207..496aed968 100644 --- a/packages/rmf-dashboard-framework/src/components/admin/create-role-dialog.tsx +++ b/packages/rmf-dashboard-framework/src/components/admin/create-role-dialog.tsx @@ -1,8 +1,7 @@ import { TextField } from '@mui/material'; import React from 'react'; -import { useAppController } from '../../hooks/use-app-controller'; -import { useAsync } from '../../hooks/use-async'; +import { useAppController, useAsync } from '../../hooks'; import { ConfirmationDialog } from '../confirmation-dialog'; export interface CreateRoleDialogProps { diff --git a/packages/rmf-dashboard-framework/src/components/admin/create-user-dialog.test.tsx b/packages/rmf-dashboard-framework/src/components/admin/create-user-dialog.test.tsx index e24070aff..55285f66f 100644 --- a/packages/rmf-dashboard-framework/src/components/admin/create-user-dialog.test.tsx +++ b/packages/rmf-dashboard-framework/src/components/admin/create-user-dialog.test.tsx @@ -2,7 +2,7 @@ import { render as render_ } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { describe, expect, it, vi } from 'vitest'; -import { AppControllerProvider } from '../../hooks/use-app-controller'; +import { AppControllerProvider } from '../../hooks'; import { makeMockAppController } from '../../utils/test-utils.test'; import { CreateUserDialog } from './create-user-dialog'; diff --git a/packages/rmf-dashboard-framework/src/components/admin/create-user-dialog.tsx b/packages/rmf-dashboard-framework/src/components/admin/create-user-dialog.tsx index eeda4656a..baf79ce32 100644 --- a/packages/rmf-dashboard-framework/src/components/admin/create-user-dialog.tsx +++ b/packages/rmf-dashboard-framework/src/components/admin/create-user-dialog.tsx @@ -1,8 +1,7 @@ import { TextField } from '@mui/material'; import React from 'react'; -import { useAppController } from '../../hooks/use-app-controller'; -import { useAsync } from '../../hooks/use-async'; +import { useAppController, useAsync } from '../../hooks'; import { ConfirmationDialog } from '../confirmation-dialog'; export interface CreateUserDialogProps { diff --git a/packages/rmf-dashboard-framework/src/components/admin/manage-roles-dialog.test.tsx b/packages/rmf-dashboard-framework/src/components/admin/manage-roles-dialog.test.tsx index ded944bc6..b9e4815d7 100644 --- a/packages/rmf-dashboard-framework/src/components/admin/manage-roles-dialog.test.tsx +++ b/packages/rmf-dashboard-framework/src/components/admin/manage-roles-dialog.test.tsx @@ -2,7 +2,7 @@ import { render as render_, waitFor, waitForElementToBeRemoved } from '@testing- import userEvent from '@testing-library/user-event'; import { describe, expect, it, vi } from 'vitest'; -import { AppControllerProvider } from '../../hooks/use-app-controller'; +import { AppControllerProvider } from '../../hooks'; import { makeMockAppController } from '../../utils/test-utils.test'; import { ManageRolesCard, ManageRolesDialog } from './manage-roles-dialog'; diff --git a/packages/rmf-dashboard-framework/src/components/admin/manage-roles-dialog.tsx b/packages/rmf-dashboard-framework/src/components/admin/manage-roles-dialog.tsx index c32b577c0..1ab7fe85f 100644 --- a/packages/rmf-dashboard-framework/src/components/admin/manage-roles-dialog.tsx +++ b/packages/rmf-dashboard-framework/src/components/admin/manage-roles-dialog.tsx @@ -17,8 +17,7 @@ import { } from '@mui/material'; import React from 'react'; -import { useAppController } from '../../hooks/use-app-controller'; -import { useAsync } from '../../hooks/use-async'; +import { useAppController, useAsync } from '../../hooks'; import { Loading } from '../loading'; import { TransferList } from '../transfer-list'; diff --git a/packages/rmf-dashboard-framework/src/components/admin/permissions-card.test.tsx b/packages/rmf-dashboard-framework/src/components/admin/permissions-card.test.tsx index 6bd4ccc5f..78499d3c1 100644 --- a/packages/rmf-dashboard-framework/src/components/admin/permissions-card.test.tsx +++ b/packages/rmf-dashboard-framework/src/components/admin/permissions-card.test.tsx @@ -2,8 +2,8 @@ import { fireEvent, render as render_, waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest'; -import { AppControllerProvider } from '../../hooks/use-app-controller'; -import { getActionText, RmfAction } from '../../services/permissions'; +import { AppControllerProvider } from '../../hooks'; +import { getActionText, RmfAction } from '../../services'; import { makeMockAppController } from '../../utils/test-utils.test'; import { PermissionsCard } from './permissions-card'; diff --git a/packages/rmf-dashboard-framework/src/components/admin/permissions-card.tsx b/packages/rmf-dashboard-framework/src/components/admin/permissions-card.tsx index d2fd68fc8..96c60b09d 100644 --- a/packages/rmf-dashboard-framework/src/components/admin/permissions-card.tsx +++ b/packages/rmf-dashboard-framework/src/components/admin/permissions-card.tsx @@ -5,6 +5,7 @@ import { IconButton, Paper, PaperProps, + styled, Table, TableBody, TableCell, @@ -14,13 +15,11 @@ import { Toolbar, Typography, } from '@mui/material'; -import { styled } from '@mui/material'; import { Permission } from 'api-client'; import React from 'react'; -import { useAppController } from '../../hooks/use-app-controller'; -import { useAsync } from '../../hooks/use-async'; -import { getActionText } from '../../services/permissions'; +import { useAppController, useAsync } from '../../hooks'; +import { getActionText } from '../../services'; import { Loading } from '../loading'; import { AddPermissionDialog, AddPermissionDialogProps } from './add-permission-dialog'; diff --git a/packages/rmf-dashboard-framework/src/components/admin/role-list-card.stories.tsx b/packages/rmf-dashboard-framework/src/components/admin/role-list-card.stories.tsx index 72825c2d9..94ac2eec7 100644 --- a/packages/rmf-dashboard-framework/src/components/admin/role-list-card.stories.tsx +++ b/packages/rmf-dashboard-framework/src/components/admin/role-list-card.stories.tsx @@ -1,6 +1,6 @@ import { Meta, StoryObj } from '@storybook/react'; -import { RmfAction } from '../../services/permissions'; +import { RmfAction } from '../../services'; import { RoleListCard } from './role-list-card'; export default { diff --git a/packages/rmf-dashboard-framework/src/components/admin/role-list-card.test.tsx b/packages/rmf-dashboard-framework/src/components/admin/role-list-card.test.tsx index 5dd417803..b39c6bc19 100644 --- a/packages/rmf-dashboard-framework/src/components/admin/role-list-card.test.tsx +++ b/packages/rmf-dashboard-framework/src/components/admin/role-list-card.test.tsx @@ -2,7 +2,7 @@ import { render as render_, waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { describe, expect, it } from 'vitest'; -import { AppControllerProvider } from '../../hooks/use-app-controller'; +import { AppControllerProvider } from '../../hooks'; import { makeMockAppController } from '../../utils/test-utils.test'; import { RoleListCard } from './role-list-card'; diff --git a/packages/rmf-dashboard-framework/src/components/admin/role-list-card.tsx b/packages/rmf-dashboard-framework/src/components/admin/role-list-card.tsx index 9eca7fdc0..31d0286fc 100644 --- a/packages/rmf-dashboard-framework/src/components/admin/role-list-card.tsx +++ b/packages/rmf-dashboard-framework/src/components/admin/role-list-card.tsx @@ -19,8 +19,7 @@ import { import { Permission } from 'api-client'; import React from 'react'; -import { useAppController } from '../../hooks/use-app-controller'; -import { useAsync } from '../../hooks/use-async'; +import { useAppController, useAsync } from '../../hooks'; import { ConfirmationDialog } from '../confirmation-dialog'; import { Loading } from '../loading'; import { CreateRoleDialog, CreateRoleDialogProps } from './create-role-dialog'; diff --git a/packages/rmf-dashboard-framework/src/components/admin/role-list-page.tsx b/packages/rmf-dashboard-framework/src/components/admin/role-list-page.tsx index b4ba154ac..38eb6dbed 100644 --- a/packages/rmf-dashboard-framework/src/components/admin/role-list-page.tsx +++ b/packages/rmf-dashboard-framework/src/components/admin/role-list-page.tsx @@ -1,4 +1,4 @@ -import { useRmfApi } from '../../hooks/use-rmf-api'; +import { useRmfApi } from '../../hooks'; import { getApiErrorMessage } from '../../utils/api'; import { adminPageClasses, AdminPageContainer } from './page-css'; import { RoleListCard } from './role-list-card'; diff --git a/packages/rmf-dashboard-framework/src/components/admin/user-list-card.test.tsx b/packages/rmf-dashboard-framework/src/components/admin/user-list-card.test.tsx index 06f3865d5..b36611cbe 100644 --- a/packages/rmf-dashboard-framework/src/components/admin/user-list-card.test.tsx +++ b/packages/rmf-dashboard-framework/src/components/admin/user-list-card.test.tsx @@ -3,7 +3,7 @@ import userEvent from '@testing-library/user-event'; import { MemoryRouter } from 'react-router'; import { describe, expect, it, vi } from 'vitest'; -import { AppControllerProvider } from '../../hooks/use-app-controller'; +import { AppControllerProvider } from '../../hooks'; import { makeMockAppController } from '../../utils/test-utils.test'; import { UserListCard } from './user-list-card'; diff --git a/packages/rmf-dashboard-framework/src/components/admin/user-list-card.tsx b/packages/rmf-dashboard-framework/src/components/admin/user-list-card.tsx index 70d04fc51..14c1fb2bb 100644 --- a/packages/rmf-dashboard-framework/src/components/admin/user-list-card.tsx +++ b/packages/rmf-dashboard-framework/src/components/admin/user-list-card.tsx @@ -23,8 +23,7 @@ import { import React from 'react'; import { useNavigate } from 'react-router'; -import { useAppController } from '../../hooks/use-app-controller'; -import { useAsync } from '../../hooks/use-async'; +import { useAppController, useAsync } from '../../hooks'; import { ConfirmationDialog } from '../confirmation-dialog'; import { Loading } from '../loading'; import { CreateUserDialog, CreateUserDialogProps } from './create-user-dialog'; diff --git a/packages/rmf-dashboard-framework/src/components/admin/user-list-page.tsx b/packages/rmf-dashboard-framework/src/components/admin/user-list-page.tsx index 996f61afd..f68741bdc 100644 --- a/packages/rmf-dashboard-framework/src/components/admin/user-list-page.tsx +++ b/packages/rmf-dashboard-framework/src/components/admin/user-list-page.tsx @@ -1,4 +1,4 @@ -import { useRmfApi } from '../../hooks/use-rmf-api'; +import { useRmfApi } from '../../hooks'; import { getApiErrorMessage } from '../../utils/api'; import { adminPageClasses, AdminPageContainer } from './page-css'; import { UserListCard } from './user-list-card'; diff --git a/packages/rmf-dashboard-framework/src/components/admin/user-profile-page.tsx b/packages/rmf-dashboard-framework/src/components/admin/user-profile-page.tsx index fc2d16e2e..39aff2183 100644 --- a/packages/rmf-dashboard-framework/src/components/admin/user-profile-page.tsx +++ b/packages/rmf-dashboard-framework/src/components/admin/user-profile-page.tsx @@ -4,8 +4,7 @@ import { AxiosError } from 'axios'; import React from 'react'; import { useParams } from 'react-router'; -import { useAsync } from '../../hooks/use-async'; -import { useRmfApi } from '../../hooks/use-rmf-api'; +import { useAsync, useRmfApi } from '../../hooks'; import { getApiErrorMessage } from '../../utils/api'; import { ManageRolesCard } from './manage-roles-dialog'; import { adminPageClasses, AdminPageContainer } from './page-css'; diff --git a/packages/rmf-dashboard-framework/src/components/admin/user-profile.test.tsx b/packages/rmf-dashboard-framework/src/components/admin/user-profile.test.tsx index 2c6e4ef1b..41556df9b 100644 --- a/packages/rmf-dashboard-framework/src/components/admin/user-profile.test.tsx +++ b/packages/rmf-dashboard-framework/src/components/admin/user-profile.test.tsx @@ -3,7 +3,7 @@ import userEvent from '@testing-library/user-event'; import React from 'react'; import { describe, expect, it, vi } from 'vitest'; -import { AppControllerProvider } from '../../hooks/use-app-controller'; +import { AppControllerProvider } from '../../hooks'; import { makeMockAppController } from '../../utils/test-utils.test'; import { UserProfileCard } from './user-profile'; diff --git a/packages/rmf-dashboard-framework/src/components/admin/user-profile.tsx b/packages/rmf-dashboard-framework/src/components/admin/user-profile.tsx index a545d7b6f..f40e54840 100644 --- a/packages/rmf-dashboard-framework/src/components/admin/user-profile.tsx +++ b/packages/rmf-dashboard-framework/src/components/admin/user-profile.tsx @@ -14,8 +14,7 @@ import { import { User } from 'api-client'; import React from 'react'; -import { useAppController } from '../../hooks/use-app-controller'; -import { useAsync } from '../../hooks/use-async'; +import { useAppController, useAsync } from '../../hooks'; const classes = { avatar: 'user-profile-action', diff --git a/packages/rmf-dashboard-framework/src/components/alert-manager.tsx b/packages/rmf-dashboard-framework/src/components/alert-manager.tsx index 88b72f7b9..e18d56ecb 100644 --- a/packages/rmf-dashboard-framework/src/components/alert-manager.tsx +++ b/packages/rmf-dashboard-framework/src/components/alert-manager.tsx @@ -19,8 +19,7 @@ import { import React from 'react'; import { Subscription } from 'rxjs'; -import { useAppController } from '../hooks/use-app-controller'; -import { useRmfApi } from '../hooks/use-rmf-api'; +import { useAppController, useRmfApi } from '../hooks'; import { AppEvents } from './app-events'; import { TaskCancelButton } from './tasks/task-cancellation'; diff --git a/packages/rmf-dashboard-framework/src/components/appbar.test.tsx b/packages/rmf-dashboard-framework/src/components/appbar.test.tsx index c18015df5..195b12c15 100644 --- a/packages/rmf-dashboard-framework/src/components/appbar.test.tsx +++ b/packages/rmf-dashboard-framework/src/components/appbar.test.tsx @@ -4,10 +4,8 @@ import userEvent from '@testing-library/user-event'; import React from 'react'; import { describe, expect, it, vi } from 'vitest'; -import { AuthenticatorProvider } from '../hooks/use-authenticator'; -import { RmfApiProvider } from '../hooks/use-rmf-api'; -import { RmfApi } from '../services/rmf-api'; -import { StubAuthenticator } from '../services/stub-authenticator'; +import { AuthenticatorProvider, RmfApiProvider } from '../hooks'; +import { RmfApi, StubAuthenticator } from '../services'; import { MockRmfApi, render, TestProviders } from '../utils/test-utils.test'; import AppBar from './appbar'; diff --git a/packages/rmf-dashboard-framework/src/components/appbar.tsx b/packages/rmf-dashboard-framework/src/components/appbar.tsx index 28234960f..4132a7e7f 100644 --- a/packages/rmf-dashboard-framework/src/components/appbar.tsx +++ b/packages/rmf-dashboard-framework/src/components/appbar.tsx @@ -45,14 +45,16 @@ import { formatDistance } from 'date-fns'; import React from 'react'; import { Subscription } from 'rxjs'; -import { useAppController } from '../hooks/use-app-controller'; -import { useAuthenticator } from '../hooks/use-authenticator'; -import { useTaskFormData } from '../hooks/use-create-task-form'; -import { useResources } from '../hooks/use-resources'; -import { useRmfApi } from '../hooks/use-rmf-api'; -import { useSettings } from '../hooks/use-settings'; -import { useTaskRegistry } from '../hooks/use-task-registry'; -import { useUserProfile } from '../hooks/use-user-profile'; +import { + useAppController, + useAuthenticator, + useResources, + useRmfApi, + useSettings, + useTaskFormData, + useTaskRegistry, + useUserProfile, +} from '../hooks'; import { AppEvents } from './app-events'; import { ConfirmationDialog } from './confirmation-dialog'; import { dispatchTask, scheduleTask, TaskForm, TaskFormProps } from './tasks'; diff --git a/packages/rmf-dashboard-framework/src/components/beacons/beacons-table.tsx b/packages/rmf-dashboard-framework/src/components/beacons/beacons-table.tsx index f9e130534..9bdce7fd3 100644 --- a/packages/rmf-dashboard-framework/src/components/beacons/beacons-table.tsx +++ b/packages/rmf-dashboard-framework/src/components/beacons/beacons-table.tsx @@ -1,7 +1,7 @@ import { BeaconState } from 'api-client'; import React from 'react'; -import { useRmfApi } from '../../hooks/use-rmf-api'; +import { useRmfApi } from '../../hooks'; import { BeaconDataGridTable } from './beacon-table-datagrid'; export const BeaconsTable = () => { diff --git a/packages/rmf-dashboard-framework/src/components/delivery-alert-store.tsx b/packages/rmf-dashboard-framework/src/components/delivery-alert-store.tsx index 3ebb84cad..9583106d1 100644 --- a/packages/rmf-dashboard-framework/src/components/delivery-alert-store.tsx +++ b/packages/rmf-dashboard-framework/src/components/delivery-alert-store.tsx @@ -12,8 +12,7 @@ import { } from 'api-client'; import React from 'react'; -import { useAppController } from '../hooks/use-app-controller'; -import { useRmfApi } from '../hooks/use-rmf-api'; +import { useAppController, useRmfApi } from '../hooks'; import { TaskCancelButton } from './tasks/task-cancellation'; import { TaskInspector } from './tasks/task-inspector'; diff --git a/packages/rmf-dashboard-framework/src/components/doors/door-summary.tsx b/packages/rmf-dashboard-framework/src/components/doors/door-summary.tsx index 0e8c4a552..f50e7a231 100644 --- a/packages/rmf-dashboard-framework/src/components/doors/door-summary.tsx +++ b/packages/rmf-dashboard-framework/src/components/doors/door-summary.tsx @@ -3,7 +3,7 @@ import { Level } from 'api-client'; import React from 'react'; import { Door as DoorModel } from 'rmf-models/ros/rmf_building_map_msgs/msg'; -import { useRmfApi } from '../../hooks/use-rmf-api'; +import { useRmfApi } from '../../hooks'; import { getApiErrorMessage } from '../../utils/api'; import { doorModeToOpModeString, DoorTableData } from './door-table-datagrid'; import { doorModeToString, doorTypeToString } from './door-utils'; diff --git a/packages/rmf-dashboard-framework/src/components/doors/doors-table.tsx b/packages/rmf-dashboard-framework/src/components/doors/doors-table.tsx index 617970fa7..f0d53cec9 100644 --- a/packages/rmf-dashboard-framework/src/components/doors/doors-table.tsx +++ b/packages/rmf-dashboard-framework/src/components/doors/doors-table.tsx @@ -4,7 +4,7 @@ import React from 'react'; import { DoorMode as RmfDoorMode } from 'rmf-models/ros/rmf_door_msgs/msg/DoorMode'; import { throttleTime } from 'rxjs'; -import { useRmfApi } from '../../hooks/use-rmf-api'; +import { useRmfApi } from '../../hooks'; import { getApiErrorMessage } from '../../utils/api'; import { AppEvents } from '../app-events'; import { DoorDataGridTable, DoorTableData } from './door-table-datagrid'; diff --git a/packages/rmf-dashboard-framework/src/components/lifts/lift-summary.tsx b/packages/rmf-dashboard-framework/src/components/lifts/lift-summary.tsx index 83e8c6487..6df11d858 100644 --- a/packages/rmf-dashboard-framework/src/components/lifts/lift-summary.tsx +++ b/packages/rmf-dashboard-framework/src/components/lifts/lift-summary.tsx @@ -10,7 +10,7 @@ import { import { Lift } from 'api-client'; import React from 'react'; -import { useRmfApi } from '../../hooks/use-rmf-api'; +import { useRmfApi } from '../../hooks'; import { getApiErrorMessage } from '../../utils/api'; import { LiftTableData } from './lift-table-datagrid'; import { doorStateToString, liftModeToString } from './lift-utils'; diff --git a/packages/rmf-dashboard-framework/src/components/lifts/lifts-table.tsx b/packages/rmf-dashboard-framework/src/components/lifts/lifts-table.tsx index 99e9ae7b0..bdeda08a2 100644 --- a/packages/rmf-dashboard-framework/src/components/lifts/lifts-table.tsx +++ b/packages/rmf-dashboard-framework/src/components/lifts/lifts-table.tsx @@ -4,7 +4,7 @@ import React from 'react'; import { LiftRequest as RmfLiftRequest } from 'rmf-models/ros/rmf_lift_msgs/msg'; import { throttleTime } from 'rxjs'; -import { useRmfApi } from '../../hooks/use-rmf-api'; +import { useRmfApi } from '../../hooks'; import { getApiErrorMessage } from '../../utils/api'; import { AppEvents } from '../app-events'; import { LiftSummary } from './lift-summary'; diff --git a/packages/rmf-dashboard-framework/src/components/map/door-three.tsx b/packages/rmf-dashboard-framework/src/components/map/door-three.tsx index 41b55ab0f..7e546287c 100644 --- a/packages/rmf-dashboard-framework/src/components/map/door-three.tsx +++ b/packages/rmf-dashboard-framework/src/components/map/door-three.tsx @@ -6,7 +6,7 @@ import { DoorMode as RmfDoorMode } from 'rmf-models/ros/rmf_door_msgs/msg'; import { throttleTime } from 'rxjs'; import { Mesh } from 'three'; -import { useRmfApi } from '../../hooks/use-rmf-api'; +import { useRmfApi } from '../../hooks'; import { DoorThreeMaker } from './door-three-maker'; interface DoorProps { diff --git a/packages/rmf-dashboard-framework/src/components/map/index.tsx b/packages/rmf-dashboard-framework/src/components/map/index.tsx index 86b73d250..730892a06 100644 --- a/packages/rmf-dashboard-framework/src/components/map/index.tsx +++ b/packages/rmf-dashboard-framework/src/components/map/index.tsx @@ -9,12 +9,14 @@ import { Door as DoorModel } from 'rmf-models/ros/rmf_building_map_msgs/msg'; import { EMPTY, merge, scan, Subscription, switchMap, throttleTime } from 'rxjs'; import { Box3, TextureLoader, Vector3 } from 'three'; -import { useAppController } from '../../hooks/use-app-controller'; -import { useAuthenticator } from '../../hooks/use-authenticator'; -import { FleetResource, useResources } from '../../hooks/use-resources'; -import { useRmfApi } from '../../hooks/use-rmf-api'; -import ColorManager from '../../services/color-manager'; -import { TrajectoryData } from '../../services/robot-trajectory-manager'; +import { + FleetResource, + useAppController, + useAuthenticator, + useResources, + useRmfApi, +} from '../../hooks'; +import { ColorManager, TrajectoryData } from '../../services'; import { AppEvents } from '../app-events'; import { DoorSummary } from '../doors/door-summary'; import { LiftSummary } from '../lifts/lift-summary'; diff --git a/packages/rmf-dashboard-framework/src/components/map/lift-three.tsx b/packages/rmf-dashboard-framework/src/components/map/lift-three.tsx index ac6d0ce3f..064700ac5 100644 --- a/packages/rmf-dashboard-framework/src/components/map/lift-three.tsx +++ b/packages/rmf-dashboard-framework/src/components/map/lift-three.tsx @@ -4,7 +4,7 @@ import { Lift, LiftState } from 'api-client'; import React from 'react'; import { throttleTime } from 'rxjs'; -import { useRmfApi } from '../../hooks/use-rmf-api'; +import { useRmfApi } from '../../hooks'; import { LiftThreeMaker } from './lift-three-maker'; interface LiftsProps { diff --git a/packages/rmf-dashboard-framework/src/components/micro-app.tsx b/packages/rmf-dashboard-framework/src/components/micro-app.tsx index b698c87f7..9bf40000c 100644 --- a/packages/rmf-dashboard-framework/src/components/micro-app.tsx +++ b/packages/rmf-dashboard-framework/src/components/micro-app.tsx @@ -1,9 +1,8 @@ import React, { Suspense } from 'react'; import { Window, WindowProps } from '../components/window'; -import { useAppController } from '../hooks/use-app-controller'; -import { useSettings } from '../hooks/use-settings'; -import { Settings } from '../services/settings'; +import { useAppController, useSettings } from '../hooks'; +import { Settings } from '../services'; export type MicroAppProps = Omit; diff --git a/packages/rmf-dashboard-framework/src/components/rmf-dashboard.tsx b/packages/rmf-dashboard-framework/src/components/rmf-dashboard.tsx index de90d2461..93625d431 100644 --- a/packages/rmf-dashboard-framework/src/components/rmf-dashboard.tsx +++ b/packages/rmf-dashboard-framework/src/components/rmf-dashboard.tsx @@ -12,17 +12,27 @@ import React, { useTransition } from 'react'; import { matchPath, Navigate, Outlet, Route, Routes, useLocation, useNavigate } from 'react-router'; import { BrowserRouter } from 'react-router-dom'; -import { AppController, AppControllerProvider } from '../hooks/use-app-controller'; -import { AuthenticatorProvider } from '../hooks/use-authenticator'; -import { Resources, ResourcesProvider } from '../hooks/use-resources'; -import { RmfApiProvider } from '../hooks/use-rmf-api'; -import { SettingsProvider } from '../hooks/use-settings'; -import { TaskRegistry, TaskRegistryProvider } from '../hooks/use-task-registry'; -import { UserProfileProvider } from '../hooks/use-user-profile'; +import { + AppController, + AppControllerProvider, + AuthenticatorProvider, + Resources, + ResourcesProvider, + RmfApiProvider, + SettingsProvider, + TaskRegistry, + TaskRegistryProvider, + UserProfileProvider, +} from '../hooks'; import { LoginPage } from '../pages'; -import { Authenticator, UserProfile } from '../services/authenticator'; -import { DefaultRmfApi } from '../services/rmf-api'; -import { loadSettings, saveSettings, Settings } from '../services/settings'; +import { + Authenticator, + DefaultRmfApi, + loadSettings, + saveSettings, + Settings, + UserProfile, +} from '../services'; import { AlertManager } from './alert-manager'; import AppBar, { APP_BAR_HEIGHT } from './appbar'; import { DeliveryAlertStore } from './delivery-alert-store'; diff --git a/packages/rmf-dashboard-framework/src/components/robots/robot-decommission.tsx b/packages/rmf-dashboard-framework/src/components/robots/robot-decommission.tsx index 8cb1b5683..8fb346708 100644 --- a/packages/rmf-dashboard-framework/src/components/robots/robot-decommission.tsx +++ b/packages/rmf-dashboard-framework/src/components/robots/robot-decommission.tsx @@ -10,8 +10,7 @@ import { import { RobotState } from 'api-client'; import React from 'react'; -import { useAppController } from '../../hooks/use-app-controller'; -import { useRmfApi } from '../../hooks/use-rmf-api'; +import { useAppController, useRmfApi } from '../../hooks'; import { AppEvents } from '../app-events'; import { ConfirmationDialog } from '../confirmation-dialog'; diff --git a/packages/rmf-dashboard-framework/src/components/robots/robot-info-card.tsx b/packages/rmf-dashboard-framework/src/components/robots/robot-info-card.tsx index 9903a9902..d7c55a1e4 100644 --- a/packages/rmf-dashboard-framework/src/components/robots/robot-info-card.tsx +++ b/packages/rmf-dashboard-framework/src/components/robots/robot-info-card.tsx @@ -3,7 +3,7 @@ import { RobotState, TaskStateOutput } from 'api-client'; import React from 'react'; import { combineLatest, EMPTY, mergeMap, of, switchMap, throttleTime } from 'rxjs'; -import { useRmfApi } from '../../hooks/use-rmf-api'; +import { useRmfApi } from '../../hooks'; import { AppEvents } from '../app-events'; import { RobotInfo } from './robot-info'; diff --git a/packages/rmf-dashboard-framework/src/components/robots/robot-mutex-group-table.tsx b/packages/rmf-dashboard-framework/src/components/robots/robot-mutex-group-table.tsx index 1bf1f91ad..32f1bde45 100644 --- a/packages/rmf-dashboard-framework/src/components/robots/robot-mutex-group-table.tsx +++ b/packages/rmf-dashboard-framework/src/components/robots/robot-mutex-group-table.tsx @@ -1,8 +1,7 @@ import { TableContainer, Typography } from '@mui/material'; import React from 'react'; -import { useAppController } from '../../hooks/use-app-controller'; -import { useRmfApi } from '../../hooks/use-rmf-api'; +import { useAppController, useRmfApi } from '../../hooks'; import { ConfirmationDialog } from '../confirmation-dialog'; import { MutexGroupData, MutexGroupTable } from './mutex-group-table'; diff --git a/packages/rmf-dashboard-framework/src/components/robots/robot-summary.tsx b/packages/rmf-dashboard-framework/src/components/robots/robot-summary.tsx index 07c15203a..ea4b7e848 100644 --- a/packages/rmf-dashboard-framework/src/components/robots/robot-summary.tsx +++ b/packages/rmf-dashboard-framework/src/components/robots/robot-summary.tsx @@ -34,7 +34,7 @@ import { import React from 'react'; import { combineLatest, EMPTY, mergeMap, of } from 'rxjs'; -import { useRmfApi } from '../../hooks/use-rmf-api'; +import { useRmfApi } from '../../hooks'; import { TaskCancelButton } from '../tasks/task-cancellation'; import { TaskInspector } from '../tasks/task-inspector'; import { RobotDecommissionButton } from './robot-decommission'; diff --git a/packages/rmf-dashboard-framework/src/components/robots/robots-table.tsx b/packages/rmf-dashboard-framework/src/components/robots/robots-table.tsx index 8f5598983..29598ed6c 100644 --- a/packages/rmf-dashboard-framework/src/components/robots/robots-table.tsx +++ b/packages/rmf-dashboard-framework/src/components/robots/robots-table.tsx @@ -2,7 +2,7 @@ import { TableContainer } from '@mui/material'; import { TaskStateOutput as TaskState } from 'api-client'; import React from 'react'; -import { useRmfApi } from '../../hooks/use-rmf-api'; +import { useRmfApi } from '../../hooks'; import { AppEvents } from '../app-events'; import { RobotSummary } from './robot-summary'; import { RobotDataGridTable, RobotTableData } from './robot-table-datagrid'; diff --git a/packages/rmf-dashboard-framework/src/components/tasks/task-cancellation.tsx b/packages/rmf-dashboard-framework/src/components/tasks/task-cancellation.tsx index c09dbdf46..7b81718e5 100644 --- a/packages/rmf-dashboard-framework/src/components/tasks/task-cancellation.tsx +++ b/packages/rmf-dashboard-framework/src/components/tasks/task-cancellation.tsx @@ -2,10 +2,8 @@ import { Button, ButtonProps, Tooltip, Typography } from '@mui/material'; import { TaskStateOutput as TaskState } from 'api-client'; import React from 'react'; -import { useAppController } from '../../hooks/use-app-controller'; -import { useRmfApi } from '../../hooks/use-rmf-api'; -import { useUserProfile } from '../../hooks/use-user-profile'; -import { Enforcer } from '../../services/permissions'; +import { useAppController, useRmfApi, useUserProfile } from '../../hooks'; +import { Enforcer } from '../../services'; import { AppEvents } from '../app-events'; import { ConfirmationDialog } from '../confirmation-dialog'; diff --git a/packages/rmf-dashboard-framework/src/components/tasks/task-details-card.tsx b/packages/rmf-dashboard-framework/src/components/tasks/task-details-card.tsx index b0f4979f3..039f8b5c0 100644 --- a/packages/rmf-dashboard-framework/src/components/tasks/task-details-card.tsx +++ b/packages/rmf-dashboard-framework/src/components/tasks/task-details-card.tsx @@ -4,8 +4,7 @@ import React from 'react'; // import { UserProfileContext } from 'rmf-auth'; import { of, switchMap } from 'rxjs'; -import { useAppController } from '../../hooks/use-app-controller'; -import { useRmfApi } from '../../hooks/use-rmf-api'; +import { useAppController, useRmfApi } from '../../hooks'; import { AppEvents } from '../app-events'; import { TaskInfo } from './task-info'; // import { Enforcer } from '../permissions'; diff --git a/packages/rmf-dashboard-framework/src/components/tasks/task-inspector.tsx b/packages/rmf-dashboard-framework/src/components/tasks/task-inspector.tsx index ac6a8e18e..48f5e31a5 100644 --- a/packages/rmf-dashboard-framework/src/components/tasks/task-inspector.tsx +++ b/packages/rmf-dashboard-framework/src/components/tasks/task-inspector.tsx @@ -3,7 +3,7 @@ import { CardContent, useTheme } from '@mui/material'; import { TaskEventLog, TaskStateOutput as TaskState } from 'api-client'; import React from 'react'; -import { useRmfApi } from '../../hooks/use-rmf-api'; +import { useRmfApi } from '../../hooks'; import { TaskCancelButton } from './task-cancellation'; import { TaskInfo } from './task-info'; import { TaskLogs } from './task-logs'; diff --git a/packages/rmf-dashboard-framework/src/components/tasks/task-logs-app.tsx b/packages/rmf-dashboard-framework/src/components/tasks/task-logs-app.tsx index ff2b6dd61..436333d82 100644 --- a/packages/rmf-dashboard-framework/src/components/tasks/task-logs-app.tsx +++ b/packages/rmf-dashboard-framework/src/components/tasks/task-logs-app.tsx @@ -2,7 +2,7 @@ import { CardContent } from '@mui/material'; import { TaskEventLog, TaskStateOutput as TaskState } from 'api-client'; import React from 'react'; -import { useRmfApi } from '../../hooks/use-rmf-api'; +import { useRmfApi } from '../../hooks'; import { AppEvents } from '../app-events'; import { TaskLogs } from './task-logs'; diff --git a/packages/rmf-dashboard-framework/src/components/tasks/task-schedule.tsx b/packages/rmf-dashboard-framework/src/components/tasks/task-schedule.tsx index 99b002d75..2588f1901 100644 --- a/packages/rmf-dashboard-framework/src/components/tasks/task-schedule.tsx +++ b/packages/rmf-dashboard-framework/src/components/tasks/task-schedule.tsx @@ -12,11 +12,13 @@ import { Button, Theme, Typography, useTheme } from '@mui/material'; import { ScheduledTask, ScheduledTaskScheduleOutput as ApiSchedule } from 'api-client'; import React from 'react'; -import { useAppController } from '../../hooks/use-app-controller'; -import { useTaskFormData } from '../../hooks/use-create-task-form'; -import { useRmfApi } from '../../hooks/use-rmf-api'; -import { useTaskRegistry } from '../../hooks/use-task-registry'; -import { useUserProfile } from '../../hooks/use-user-profile'; +import { + useAppController, + useRmfApi, + useTaskFormData, + useTaskRegistry, + useUserProfile, +} from '../../hooks'; import { AppEvents } from '../app-events'; import { ConfirmationDialog } from '../confirmation-dialog'; import { Schedule, TaskForm, TaskFormProps } from './task-form'; diff --git a/packages/rmf-dashboard-framework/src/components/tasks/task-summary.tsx b/packages/rmf-dashboard-framework/src/components/tasks/task-summary.tsx index 08cb8357a..9af94b7d8 100644 --- a/packages/rmf-dashboard-framework/src/components/tasks/task-summary.tsx +++ b/packages/rmf-dashboard-framework/src/components/tasks/task-summary.tsx @@ -19,7 +19,7 @@ import { } from 'api-client'; import React from 'react'; -import { useRmfApi } from '../../hooks/use-rmf-api'; +import { useRmfApi } from '../../hooks'; import { TaskBookingLabels } from './booking-label'; import { getTaskBookingLabelFromTaskState } from './task-booking-label-utils'; import { TaskCancelButton } from './task-cancellation'; diff --git a/packages/rmf-dashboard-framework/src/components/tasks/tasks-window.tsx b/packages/rmf-dashboard-framework/src/components/tasks/tasks-window.tsx index e44061ddd..2286c41e7 100644 --- a/packages/rmf-dashboard-framework/src/components/tasks/tasks-window.tsx +++ b/packages/rmf-dashboard-framework/src/components/tasks/tasks-window.tsx @@ -16,9 +16,8 @@ import { import { TaskStateInput as TaskState } from 'api-client'; import React from 'react'; -import { useAppController } from '../../hooks/use-app-controller'; -import { useRmfApi } from '../../hooks/use-rmf-api'; -import { MicroAppProps } from '../../micro-apps'; +import { MicroAppProps } from '../../components'; +import { useAppController, useRmfApi } from '../../hooks'; import { AppEvents } from '../app-events'; import { Window, WindowCloseButton, WindowToolbar } from '../window'; import { TaskSchedule } from './task-schedule'; diff --git a/packages/rmf-dashboard-framework/src/components/tasks/utils.ts b/packages/rmf-dashboard-framework/src/components/tasks/utils.ts index 75b6d8aac..c388776fb 100644 --- a/packages/rmf-dashboard-framework/src/components/tasks/utils.ts +++ b/packages/rmf-dashboard-framework/src/components/tasks/utils.ts @@ -7,7 +7,7 @@ import { TaskStateOutput as TaskState, } from 'api-client'; -import { RmfApi } from '../../services/rmf-api'; +import { RmfApi } from '../../services'; import { getTaskBookingLabelFromTaskState } from './task-booking-label-utils'; import { RobotDispatchTarget } from './task-form'; import { Schedule } from './task-form'; diff --git a/packages/rmf-dashboard-framework/src/components/workspace.tsx b/packages/rmf-dashboard-framework/src/components/workspace.tsx index 0e334898f..756e50443 100644 --- a/packages/rmf-dashboard-framework/src/components/workspace.tsx +++ b/packages/rmf-dashboard-framework/src/components/workspace.tsx @@ -3,8 +3,8 @@ import DesignModeIcon from '@mui/icons-material/AutoFixNormal'; import { Box, Fab, IconButton, Menu, MenuItem, Typography, useTheme } from '@mui/material'; import React from 'react'; -import { useAppController } from '../hooks/use-app-controller'; -import { MicroAppManifest } from '../micro-apps'; +import { MicroAppManifest } from '../components'; +import { useAppController } from '../hooks'; import { WindowContainer, WindowLayout } from './window'; export interface InitialWindow { diff --git a/packages/rmf-dashboard-framework/src/hooks/index.ts b/packages/rmf-dashboard-framework/src/hooks/index.ts new file mode 100644 index 000000000..163c9294d --- /dev/null +++ b/packages/rmf-dashboard-framework/src/hooks/index.ts @@ -0,0 +1,10 @@ +export * from './deferred-context'; +export * from './use-app-controller'; +export * from './use-async'; +export * from './use-authenticator'; +export * from './use-create-task-form'; +export * from './use-resources'; +export * from './use-rmf-api'; +export * from './use-settings'; +export * from './use-task-registry'; +export * from './use-user-profile'; diff --git a/packages/rmf-dashboard-framework/src/hooks/use-app-controller.ts b/packages/rmf-dashboard-framework/src/hooks/use-app-controller.ts index 28d3b1d27..4b33b36e4 100644 --- a/packages/rmf-dashboard-framework/src/hooks/use-app-controller.ts +++ b/packages/rmf-dashboard-framework/src/hooks/use-app-controller.ts @@ -1,6 +1,6 @@ import { AlertProps } from '@mui/material'; -import { Settings } from '../services/settings'; +import { Settings } from '../services'; import { createDeferredContext } from './deferred-context'; export interface AppController { diff --git a/packages/rmf-dashboard-framework/src/hooks/use-authenticator.ts b/packages/rmf-dashboard-framework/src/hooks/use-authenticator.ts index d0fd61775..af6b50da6 100644 --- a/packages/rmf-dashboard-framework/src/hooks/use-authenticator.ts +++ b/packages/rmf-dashboard-framework/src/hooks/use-authenticator.ts @@ -1,4 +1,4 @@ -import { Authenticator } from '../services/authenticator'; +import { Authenticator } from '../services'; import { createDeferredContext } from './deferred-context'; export const [useAuthenticator, AuthenticatorProvider] = createDeferredContext(); diff --git a/packages/rmf-dashboard-framework/src/hooks/use-create-task-form.tsx b/packages/rmf-dashboard-framework/src/hooks/use-create-task-form.tsx index cc25ad53a..64bbfc807 100644 --- a/packages/rmf-dashboard-framework/src/hooks/use-create-task-form.tsx +++ b/packages/rmf-dashboard-framework/src/hooks/use-create-task-form.tsx @@ -2,7 +2,7 @@ import React from 'react'; import { Subscription } from 'rxjs'; import { getPlaces } from '../components/place'; -import { RmfApi } from '../services/rmf-api'; +import { RmfApi } from '../services'; export const useTaskFormData = (rmfApi: RmfApi | undefined) => { const [waypointNames, setWaypointNames] = React.useState([]); diff --git a/packages/rmf-dashboard-framework/src/hooks/use-rmf-api.ts b/packages/rmf-dashboard-framework/src/hooks/use-rmf-api.ts index 40ff6e546..9c5ba19de 100644 --- a/packages/rmf-dashboard-framework/src/hooks/use-rmf-api.ts +++ b/packages/rmf-dashboard-framework/src/hooks/use-rmf-api.ts @@ -1,4 +1,4 @@ -import { RmfApi } from '../services/rmf-api'; +import { RmfApi } from '../services'; import { createDeferredContext } from './deferred-context'; export const [useRmfApi, RmfApiProvider] = createDeferredContext(); diff --git a/packages/rmf-dashboard-framework/src/hooks/use-settings.ts b/packages/rmf-dashboard-framework/src/hooks/use-settings.ts index c1ea65b55..99f6892cc 100644 --- a/packages/rmf-dashboard-framework/src/hooks/use-settings.ts +++ b/packages/rmf-dashboard-framework/src/hooks/use-settings.ts @@ -1,4 +1,4 @@ -import { Settings } from '../services/settings'; +import { Settings } from '../services'; import { createDeferredContext } from './deferred-context'; export const [useSettings, SettingsProvider] = createDeferredContext(); diff --git a/packages/rmf-dashboard-framework/src/hooks/use-user-profile.tsx b/packages/rmf-dashboard-framework/src/hooks/use-user-profile.tsx index bca58a758..c5a8dfe81 100644 --- a/packages/rmf-dashboard-framework/src/hooks/use-user-profile.tsx +++ b/packages/rmf-dashboard-framework/src/hooks/use-user-profile.tsx @@ -1,4 +1,4 @@ -import { UserProfile } from '../services/authenticator'; +import { UserProfile } from '../services'; import { createDeferredContext } from './deferred-context'; export const [useUserProfile, UserProfileProvider] = createDeferredContext(); diff --git a/packages/rmf-dashboard-framework/src/micro-apps/index.tsx b/packages/rmf-dashboard-framework/src/micro-apps/index.ts similarity index 100% rename from packages/rmf-dashboard-framework/src/micro-apps/index.tsx rename to packages/rmf-dashboard-framework/src/micro-apps/index.ts diff --git a/packages/rmf-dashboard-framework/src/services/index.ts b/packages/rmf-dashboard-framework/src/services/index.ts new file mode 100644 index 000000000..b7c84b708 --- /dev/null +++ b/packages/rmf-dashboard-framework/src/services/index.ts @@ -0,0 +1,10 @@ +export * from './authenticator'; +export * from './color-manager'; +export * from './keycloak'; +export * from './negotiation-status-manager'; +export * from './permissions'; +export * from './rmf-api'; +export * from './robot-trajectory-manager'; +export * from './settings'; +export * from './stub-authenticator'; +export * from './trajectory-socket-manager'; diff --git a/packages/rmf-dashboard-framework/src/utils/index.ts b/packages/rmf-dashboard-framework/src/utils/index.ts new file mode 100644 index 000000000..83c4d931f --- /dev/null +++ b/packages/rmf-dashboard-framework/src/utils/index.ts @@ -0,0 +1,2 @@ +export * from './api'; +export * from './url'; diff --git a/packages/rmf-dashboard-framework/src/utils/test-utils.test.tsx b/packages/rmf-dashboard-framework/src/utils/test-utils.test.tsx index 7f317f77c..670dc5604 100644 --- a/packages/rmf-dashboard-framework/src/utils/test-utils.test.tsx +++ b/packages/rmf-dashboard-framework/src/utils/test-utils.test.tsx @@ -34,17 +34,19 @@ import axios from 'axios'; import React from 'react'; import { Subject } from 'rxjs'; -import { AppController, AppControllerProvider } from '../hooks/use-app-controller'; -import { AuthenticatorProvider } from '../hooks/use-authenticator'; -import { Resources, ResourcesProvider } from '../hooks/use-resources'; -import { RmfApiProvider } from '../hooks/use-rmf-api'; -import { SettingsProvider } from '../hooks/use-settings'; -import { TaskRegistry, TaskRegistryProvider } from '../hooks/use-task-registry'; -import { UserProfileProvider } from '../hooks/use-user-profile'; -import { UserProfile } from '../services/authenticator'; -import { RmfApi } from '../services/rmf-api'; -import { Settings } from '../services/settings'; -import StubAuthenticator from '../services/stub-authenticator'; +import { + AppController, + AppControllerProvider, + AuthenticatorProvider, + Resources, + ResourcesProvider, + RmfApiProvider, + SettingsProvider, + TaskRegistry, + TaskRegistryProvider, + UserProfileProvider, +} from '../hooks'; +import { RmfApi, Settings, StubAuthenticator, UserProfile } from '../services'; export const superUser: UserProfile = { user: { From 15eab8bcd46a159c69a5d5559f277fdbf4b300b7 Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Fri, 18 Oct 2024 03:59:57 +0000 Subject: [PATCH 26/30] fixing tutorial Signed-off-by: Teo Koon Peng --- .../.storybook/preview.tsx | 2 +- .../docs/getting-started.md | 27 ++----------------- .../examples/shared/app.css | 8 ------ .../examples/shared/vite.config.ts | 5 ---- packages/rmf-dashboard-framework/package.json | 9 +++---- .../src/micro-apps/doors-app.ts | 2 +- .../src/micro-apps/lifts-app.ts | 2 +- .../src/micro-apps/robot-mutex-groups-app.ts | 2 +- .../src/micro-apps/robots-app.ts | 2 +- .../src/micro-apps/tasks-app.tsx | 2 +- .../rmf-dashboard-framework/tsconfig.app.json | 8 +----- .../tsconfig.node.json | 2 -- 12 files changed, 13 insertions(+), 58 deletions(-) delete mode 100644 packages/rmf-dashboard-framework/examples/shared/app.css diff --git a/packages/rmf-dashboard-framework/.storybook/preview.tsx b/packages/rmf-dashboard-framework/.storybook/preview.tsx index 29957b765..c6358ff55 100644 --- a/packages/rmf-dashboard-framework/.storybook/preview.tsx +++ b/packages/rmf-dashboard-framework/.storybook/preview.tsx @@ -1,8 +1,8 @@ import { CssBaseline } from '@mui/material'; import { Decorator, Preview } from '@storybook/react'; -import { TestProviders } from 'rmf-dashboard-framework/utils/test-utils.test'; import { LocalizationProvider } from '../src/components/locale'; +import { TestProviders } from '../src/utils/test-utils.test'; const preview: Preview = { parameters: { diff --git a/packages/rmf-dashboard-framework/docs/getting-started.md b/packages/rmf-dashboard-framework/docs/getting-started.md index a396185c0..4497c7d2e 100644 --- a/packages/rmf-dashboard-framework/docs/getting-started.md +++ b/packages/rmf-dashboard-framework/docs/getting-started.md @@ -25,33 +25,10 @@ cd basic-dashboard git clone --depth 1 https://github.com/open-rmf/rmf-web ``` - - -Modify the following to resolve `rmf-dashboard-framework` as if it is installed from npmjs. - Add local dependency to `rmf-web`: -package.json - -``` -"dependencies": { - ... - "rmf-dashboard-framework": "rmf-web/packages/rmf-dashboard-framework" -} -``` - -Configure typescript to resolve `rmf-dashboard-framework`: - -tsconfig.app.json - -``` -compilerOptions: [ - ..., - "paths": { - "rmf-dashboard-framework/*": ["./node_modules/rmf-dashboard-framework/src/*"] - }, - ... -] +```bash +pnpm add rmf-web/packages/rmf-dashboard-framework ``` Build `rmf-dashboard-framework` diff --git a/packages/rmf-dashboard-framework/examples/shared/app.css b/packages/rmf-dashboard-framework/examples/shared/app.css deleted file mode 100644 index 2319b13e4..000000000 --- a/packages/rmf-dashboard-framework/examples/shared/app.css +++ /dev/null @@ -1,8 +0,0 @@ -html, -body, -#root { - height: 100%; - width: 100%; - margin: 0; - padding: 0; -} diff --git a/packages/rmf-dashboard-framework/examples/shared/vite.config.ts b/packages/rmf-dashboard-framework/examples/shared/vite.config.ts index 5972ebe86..352b1818f 100644 --- a/packages/rmf-dashboard-framework/examples/shared/vite.config.ts +++ b/packages/rmf-dashboard-framework/examples/shared/vite.config.ts @@ -6,9 +6,4 @@ import { defineConfig } from 'vite'; export default defineConfig({ plugins: [react()], publicDir: path.resolve(__dirname, 'public'), - resolve: { - alias: { - 'rmf-dashboard-framework': path.resolve(__dirname, '../../src'), - }, - }, }); diff --git a/packages/rmf-dashboard-framework/package.json b/packages/rmf-dashboard-framework/package.json index 91a2722ba..ebeddd269 100644 --- a/packages/rmf-dashboard-framework/package.json +++ b/packages/rmf-dashboard-framework/package.json @@ -67,7 +67,6 @@ "three": "^0.166.1" }, "devDependencies": { - "@babel/core": "^7.18.6", "@storybook/addon-essentials": "^8.3.3", "@storybook/addon-interactions": "^8.3.3", "@storybook/addon-links": "^8.3.3", @@ -93,9 +92,9 @@ "vitest": "^2.0.4" }, "exports": { - "./components": "./src/components/index", - "./hooks": "./src/hooks/index", - "./micro-apps": "./src/micro-apps/index", - "./services": "./src/services/index" + "./components": "./src/components/index.ts", + "./hooks": "./src/hooks/index.ts", + "./micro-apps": "./src/micro-apps/index.ts", + "./services": "./src/services/index.ts" } } diff --git a/packages/rmf-dashboard-framework/src/micro-apps/doors-app.ts b/packages/rmf-dashboard-framework/src/micro-apps/doors-app.ts index 31879dacd..810764b7e 100644 --- a/packages/rmf-dashboard-framework/src/micro-apps/doors-app.ts +++ b/packages/rmf-dashboard-framework/src/micro-apps/doors-app.ts @@ -1,4 +1,4 @@ -import { createMicroApp } from '.'; +import { createMicroApp } from '../components'; export default createMicroApp( 'doors-table', diff --git a/packages/rmf-dashboard-framework/src/micro-apps/lifts-app.ts b/packages/rmf-dashboard-framework/src/micro-apps/lifts-app.ts index 832d5d718..b2f51fede 100644 --- a/packages/rmf-dashboard-framework/src/micro-apps/lifts-app.ts +++ b/packages/rmf-dashboard-framework/src/micro-apps/lifts-app.ts @@ -1,4 +1,4 @@ -import { createMicroApp } from '.'; +import { createMicroApp } from '../components'; export default createMicroApp( 'lifts-table', diff --git a/packages/rmf-dashboard-framework/src/micro-apps/robot-mutex-groups-app.ts b/packages/rmf-dashboard-framework/src/micro-apps/robot-mutex-groups-app.ts index 7d7001ad8..6068409e5 100644 --- a/packages/rmf-dashboard-framework/src/micro-apps/robot-mutex-groups-app.ts +++ b/packages/rmf-dashboard-framework/src/micro-apps/robot-mutex-groups-app.ts @@ -1,4 +1,4 @@ -import { createMicroApp } from '.'; +import { createMicroApp } from '../components'; export default createMicroApp( 'robot-mutex-groups-table', diff --git a/packages/rmf-dashboard-framework/src/micro-apps/robots-app.ts b/packages/rmf-dashboard-framework/src/micro-apps/robots-app.ts index eafd02079..26ee1de33 100644 --- a/packages/rmf-dashboard-framework/src/micro-apps/robots-app.ts +++ b/packages/rmf-dashboard-framework/src/micro-apps/robots-app.ts @@ -1,4 +1,4 @@ -import { createMicroApp } from '.'; +import { createMicroApp } from '../components'; export default createMicroApp( 'robots-table', diff --git a/packages/rmf-dashboard-framework/src/micro-apps/tasks-app.tsx b/packages/rmf-dashboard-framework/src/micro-apps/tasks-app.tsx index b25fb2303..ad1b7c95a 100644 --- a/packages/rmf-dashboard-framework/src/micro-apps/tasks-app.tsx +++ b/packages/rmf-dashboard-framework/src/micro-apps/tasks-app.tsx @@ -1,7 +1,7 @@ import { lazy } from 'react'; import { Suspense } from 'react'; -import { MicroAppManifest } from '.'; +import { MicroAppManifest } from '../components'; const TasksWindow = lazy(() => import('../components/tasks/tasks-window')); diff --git a/packages/rmf-dashboard-framework/tsconfig.app.json b/packages/rmf-dashboard-framework/tsconfig.app.json index 9b3ccaf36..48c206f5b 100644 --- a/packages/rmf-dashboard-framework/tsconfig.app.json +++ b/packages/rmf-dashboard-framework/tsconfig.app.json @@ -1,7 +1,5 @@ { "compilerOptions": { - "composite": true, - "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", "target": "ES2020", "useDefineForClassFields": true, "lib": ["ES2020", "DOM", "DOM.Iterable"], @@ -22,11 +20,7 @@ "strict": true, "noUnusedLocals": true, "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true, - - "paths": { - "rmf-dashboard-framework/*": ["./src/*"] - } + "noFallthroughCasesInSwitch": true }, "include": ["src", "examples", ".storybook/*"] } diff --git a/packages/rmf-dashboard-framework/tsconfig.node.json b/packages/rmf-dashboard-framework/tsconfig.node.json index 674e12a27..28194bb59 100644 --- a/packages/rmf-dashboard-framework/tsconfig.node.json +++ b/packages/rmf-dashboard-framework/tsconfig.node.json @@ -1,7 +1,5 @@ { "compilerOptions": { - "composite": true, - "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", "skipLibCheck": true, "module": "ESNext", "moduleResolution": "bundler", From 7f2f57025e70f402fab292222d2b91a0b06c5780 Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Fri, 18 Oct 2024 05:58:43 +0000 Subject: [PATCH 27/30] update docs Signed-off-by: Teo Koon Peng --- packages/rmf-dashboard-framework/docs/getting-started.md | 5 +++-- pnpm-lock.yaml | 3 --- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/rmf-dashboard-framework/docs/getting-started.md b/packages/rmf-dashboard-framework/docs/getting-started.md index 4497c7d2e..410df5982 100644 --- a/packages/rmf-dashboard-framework/docs/getting-started.md +++ b/packages/rmf-dashboard-framework/docs/getting-started.md @@ -105,8 +105,9 @@ The `layout` property defines the position and size of a MicroApp, the screen is You shouldn't need to do this for local testing, but for reference, the example uses vite, an optimized production build can be created with + ```bash -# cd +# cd pnpm vite build ``` @@ -114,5 +115,5 @@ There is no dev server for a production build, you will need a web server to acc ```bash # not recommended in production! -pnpx serve -s build +pnpx serve -s dist ``` diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e26c1bf9f..a21fdae1e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -261,9 +261,6 @@ importers: specifier: ^0.166.1 version: 0.166.1 devDependencies: - '@babel/core': - specifier: ^7.18.6 - version: 7.25.2 '@storybook/addon-essentials': specifier: ^8.3.3 version: 8.3.3(storybook@8.3.3) From 92c9365c5cbdaf21996c74944b6025a1b35c9690 Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Fri, 18 Oct 2024 06:03:27 +0000 Subject: [PATCH 28/30] update docs Signed-off-by: Teo Koon Peng --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ff98a4473..5e3adfdad 100644 --- a/README.md +++ b/README.md @@ -144,6 +144,7 @@ pnpm start # Configuration - See the [api-server](packages/api-server/README.md#configuration) docs for API server run-time configurations. +- [rmf-dashboard-framework](packages/api-server/README.md) allows you to easily build a dashboard. # Troubleshooting From 1b18900bd8525d4d68c7205a4f1bcdf780475885 Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Mon, 4 Nov 2024 03:24:47 +0000 Subject: [PATCH 29/30] update references to rmf-dashboard-framework Signed-off-by: Teo Koon Peng --- README.md | 2 +- packages/rmf-dashboard-framework/examples/keycloak/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5e3adfdad..f2e5db797 100644 --- a/README.md +++ b/README.md @@ -120,7 +120,7 @@ When developing individual components, it may be useful to start the dashboard a ```bash # Start the dashboard in dev, this monitors for changes in the dashboard package and performs rebuilds. A browser refresh is required after all automated builds. -cd packages/dashboard +cd packages/rmf-dashboard-framework pnpm start:example examples/demo # Start the API server, this will need to be restarted for any changes to be reflected diff --git a/packages/rmf-dashboard-framework/examples/keycloak/README.md b/packages/rmf-dashboard-framework/examples/keycloak/README.md index 684821ae6..da2c96f21 100644 --- a/packages/rmf-dashboard-framework/examples/keycloak/README.md +++ b/packages/rmf-dashboard-framework/examples/keycloak/README.md @@ -29,6 +29,6 @@ the script will 3. Start rmf api server with the keycloak config ```bash -# be sure to run from packages/dashboard directory and source a supported rmf installation +# be sure to run from packages/rmf-dashboard-framework directory and source a supported rmf installation RMF_API_SERVER_CONFIG="$(pwd)/examples/keycloak/api_server_config.py" pnpm -C ../api-server start ``` From e05547f9cc3d85cbdb7e500aa0ba0a0f7566076a Mon Sep 17 00:00:00 2001 From: Teo Koon Peng Date: Mon, 4 Nov 2024 03:25:42 +0000 Subject: [PATCH 30/30] fix demo dashboard Signed-off-by: Teo Koon Peng --- .github/demo-dashboard/Dockerfile | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/.github/demo-dashboard/Dockerfile b/.github/demo-dashboard/Dockerfile index 2fdf2a43b..9a5c70951 100644 --- a/.github/demo-dashboard/Dockerfile +++ b/.github/demo-dashboard/Dockerfile @@ -3,12 +3,15 @@ ARG BRANCH=main ### Build dashboard -RUN apt update && apt install -y curl +RUN apt update && apt install -y curl \ + # required for api-server, which is a dev dependency of rmf-dashboard-framework + python3 python3-venv RUN curl -fsSL https://get.pnpm.io/install.sh | bash - # shell runs in non-interactive mode, which does not source .bashrc so we need to set the PATH manually ENV PNPM_HOME /root/.local/share/pnpm ENV PATH "$PNPM_HOME:$PATH" -RUN pnpm env use --global lts +# node-canvas does not have prebuilt binaries for latest lts (node 22) +RUN pnpm env use --global 20 # fetch sources RUN mkdir -p /ws \ @@ -26,7 +29,7 @@ RUN cd /ws/packages/rmf-dashboard-framework \ ### Set up bare minimum dashboard image FROM docker.io/ubuntu:24.04 -COPY --from=0 /ws/packages/rmf-dashboard-framework/dist /opt/dashboard +COPY --from=0 /ws/packages/rmf-dashboard-framework/examples/demo/dist /opt/dashboard RUN apt update && apt install -y curl @@ -34,5 +37,8 @@ RUN curl -fsSL https://get.pnpm.io/install.sh | bash - # shell runs in non-interactive mode, which does not source .bashrc so we need to set the PATH manually ENV PNPM_HOME /root/.local/share/pnpm ENV PATH "$PNPM_HOME:$PATH" +RUN pnpm env use --global 20 + +RUN pnpm add --global serve -ENTRYPOINT ["pnpx", "serve", "-s", "/opt/dashboard"] +ENTRYPOINT ["serve", "-sn", "/opt/dashboard"]