From d400ea52584e2656339bdea120c3c6d2a089ddab Mon Sep 17 00:00:00 2001 From: dineug Date: Sat, 3 Aug 2024 17:45:15 +0900 Subject: [PATCH] fix: Legacy Cleanup --- erd-editor.code-workspace | 56 +- packages-legacy/lit-observable/.gitignore | 1 - packages-legacy/lit-observable/LICENSE | 21 - packages-legacy/lit-observable/index.html | 12 - packages-legacy/lit-observable/package.json | 32 - .../lit-observable/src/core/context.ts | 8 - .../src/core/defineComponent.ts | 254 - .../lit-observable/src/core/helper.ts | 37 - .../lit-observable/src/core/index.ts | 9 - .../lit-observable/src/core/observable.ts | 212 - .../lit-observable/src/core/styleSheets.ts | 12 - .../lit-observable/src/example/MyTodo.ts | 28 - .../lit-observable/src/example/Store.ts | 13 - .../lit-observable/src/example/TodoItem.ts | 20 - .../lit-observable/src/example/TodoList.ts | 27 - .../src/example/TodoProvider.ts | 27 - .../lit-observable/src/example/index.ts | 1 - .../lit-observable/src/index.dev.ts | 8 - packages-legacy/lit-observable/src/index.ts | 1 - .../src/internal-types/index.d.ts | 8 - packages-legacy/lit-observable/tsconfig.json | 13 - .../lit-observable/types/context.d.ts | 5 - .../lit-observable/types/defineComponent.d.ts | 47 - .../lit-observable/types/helper.d.ts | 14 - .../lit-observable/types/index.d.ts | 23 - .../lit-observable/types/observable.d.ts | 27 - packages-legacy/lit-observable/vite.config.ts | 31 - packages-legacy/sql-ddl-parser/.gitignore | 1 - packages-legacy/sql-ddl-parser/LICENSE | 21 - packages-legacy/sql-ddl-parser/package.json | 28 - .../sql-ddl-parser/src/SQLParser.spec.ts | 39 - .../sql-ddl-parser/src/SQLParser.ts | 240 - .../sql-ddl-parser/src/SQL_DDL_Test_Case.md | 884 - packages-legacy/sql-ddl-parser/src/index.ts | 1 - .../src/sqlParser/SQLParserHelper.ts | 302 - .../sqlParser/alter.table.add.foreignKey.ts | 77 - .../sqlParser/alter.table.add.primaryKey.ts | 87 - .../src/sqlParser/alter.table.add.unique.ts | 80 - .../src/sqlParser/create.index.ts | 84 - .../src/sqlParser/create.table.ts | 439 - .../src/sqlParser/create.unique.index.ts | 7 - .../src/sqlParser/dataType/MSSQL.ts | 36 - .../src/sqlParser/dataType/MariaDB.ts | 50 - .../src/sqlParser/dataType/MySQL.ts | 48 - .../src/sqlParser/dataType/Oracle.ts | 27 - .../src/sqlParser/dataType/PostgreSQL.ts | 63 - .../src/sqlParser/dataType/SQLite.ts | 10 - .../src/sqlParser/keyword/MSSQL.ts | 1 - .../src/sqlParser/keyword/MariaDB.ts | 1 - .../src/sqlParser/keyword/MySQL.ts | 39 - .../src/sqlParser/keyword/Oracle.ts | 1 - .../src/sqlParser/keyword/PostgreSQL.ts | 1 - .../src/sqlParser/keyword/SQLite.ts | 1 - packages-legacy/sql-ddl-parser/tsconfig.json | 12 - .../sql-ddl-parser/types/index.d.ts | 101 - packages-legacy/sql-ddl-parser/vite.config.ts | 25 - packages-legacy/vuerd/.gitignore | 1 - packages-legacy/vuerd/LICENSE | 21 - packages-legacy/vuerd/README.md | 343 - packages-legacy/vuerd/index.html | 12 - packages-legacy/vuerd/package.json | 55 - packages-legacy/vuerd/src/components/Alert.ts | 104 - .../vuerd/src/components/Contextmenu.style.ts | 59 - .../src/components/Contextmenu.template.ts | 23 - .../vuerd/src/components/Contextmenu.ts | 168 - .../vuerd/src/components/ERDEditor.style.ts | 35 - .../src/components/ERDEditor.template.ts | 19 - .../vuerd/src/components/ERDEditor.ts | 214 - .../vuerd/src/components/ERDEditorProvider.ts | 37 - .../vuerd/src/components/Icon.style.ts | 7 - packages-legacy/vuerd/src/components/Icon.ts | 76 - .../vuerd/src/components/PanelView.ts | 92 - .../vuerd/src/components/Prompt.ts | 123 - .../vuerd/src/components/Sash.style.ts | 22 - packages-legacy/vuerd/src/components/Sash.ts | 130 - .../vuerd/src/components/ToastBar.style.ts | 68 - .../vuerd/src/components/ToastBar.ts | 102 - .../src/components/css/colorPicker.style.ts | 2891 --- .../css/highlight/atom-one-dark.style.ts | 98 - .../css/highlight/atom-one-light.style.ts | 98 - .../css/highlight/github-gist.style.ts | 83 - .../css/highlight/monokai-sublime.style.ts | 84 - .../components/css/highlight/vs2015.style.ts | 119 - .../vuerd/src/components/css/index.ts | 14 - .../src/components/css/scrollbar.style.ts | 26 - .../vuerd/src/components/css/tippy.style.ts | 81 - .../src/components/drawer/Drawer.style.ts | 45 - .../vuerd/src/components/drawer/Drawer.ts | 108 - .../vuerd/src/components/drawer/HelpDrawer.ts | 185 - .../components/drawer/SettingDrawer.style.ts | 45 - .../src/components/drawer/SettingDrawer.ts | 186 - .../GeneratorCode.style.ts | 12 - .../tablePropertiesDrawer/GeneratorCode.ts | 176 - .../tablePropertiesDrawer/SQLDDL.style.ts | 12 - .../drawer/tablePropertiesDrawer/SQLDDL.ts | 161 - .../TablePropertiesDrawer.style.ts | 40 - .../TablePropertiesDrawer.ts | 126 - .../indexes/IndexAddColumn.template.ts | 32 - .../indexes/IndexAddColumn.ts | 88 - .../indexes/IndexColumn.ts | 184 - .../indexes/Indexes.style.ts | 109 - .../tablePropertiesDrawer/indexes/Indexes.ts | 171 - .../indexes/index.style.ts | 5 - .../src/components/editor/Canvas.style.ts | 14 - .../vuerd/src/components/editor/Canvas.ts | 121 - .../src/components/editor/CanvasSVG.style.ts | 22 - .../vuerd/src/components/editor/CanvasSVG.ts | 109 - .../src/components/editor/DragSelect.style.ts | 9 - .../vuerd/src/components/editor/DragSelect.ts | 157 - .../editor/DrawRelationship.style.ts | 12 - .../src/components/editor/DrawRelationship.ts | 100 - .../vuerd/src/components/editor/ERD.style.ts | 16 - .../vuerd/src/components/editor/ERD.ts | 294 - .../src/components/editor/Input.style.ts | 59 - .../vuerd/src/components/editor/Input.ts | 149 - .../editor/Relationship.template.ts | 283 - .../src/components/editor/find/Find.style.ts | 83 - .../components/editor/find/Find.template.ts | 32 - .../vuerd/src/components/editor/find/Find.ts | 171 - .../src/components/editor/index.style.ts | 46 - .../src/components/editor/memo/Memo.style.ts | 54 - .../components/editor/memo/Memo.template.ts | 72 - .../vuerd/src/components/editor/memo/Memo.ts | 234 - .../src/components/editor/minimap/Memo.ts | 50 - .../editor/minimap/Minimap.style.ts | 14 - .../src/components/editor/minimap/Minimap.ts | 201 - .../editor/minimap/MinimapHandle.style.ts | 18 - .../editor/minimap/MinimapHandle.ts | 73 - .../src/components/editor/minimap/Table.ts | 48 - .../editor/minimap/useMinimapScroll.ts | 128 - .../editor/table/HighLevelTable.style.ts | 16 - .../components/editor/table/HighLevelTable.ts | 201 - .../components/editor/table/Table.style.ts | 72 - .../src/components/editor/table/Table.ts | 379 - .../editor/table/column/Column.style.ts | 35 - .../editor/table/column/Column.template.ts | 189 - .../components/editor/table/column/Column.ts | 269 - .../table/column/ColumnAutoIncrement.style.ts | 26 - .../table/column/ColumnAutoIncrement.ts | 61 - .../table/column/ColumnDataType.style.ts | 51 - .../table/column/ColumnDataType.template.ts | 35 - .../editor/table/column/ColumnDataType.ts | 140 - .../editor/table/column/ColumnKey.style.ts | 24 - .../editor/table/column/ColumnKey.ts | 49 - .../table/column/ColumnNotNull.style.ts | 22 - .../editor/table/column/ColumnNotNull.ts | 52 - .../editor/table/column/ColumnUnique.style.ts | 26 - .../editor/table/column/ColumnUnique.ts | 59 - .../virtual-scroll/VirtualScroll.style.ts | 50 - .../editor/virtual-scroll/VirtualScroll.ts | 151 - .../editor/virtual-scroll/useVirtualScroll.ts | 157 - .../vuerd/src/components/index.style.ts | 18 - .../src/components/menubar/Menubar.style.ts | 71 - .../vuerd/src/components/menubar/Menubar.ts | 245 - .../vuerd/src/core/AutomaticTablePlacement.ts | 188 - .../vuerd/src/core/ERDEditorContext.ts | 56 - .../vuerd/src/core/config/highlight.config.ts | 26 - .../vuerd/src/core/config/index.ts | 2 - .../vuerd/src/core/config/tween.config.ts | 8 - .../src/core/contextmenu/bracketType.menu.ts | 50 - .../core/contextmenu/columnNameCase.menu.ts | 52 - .../src/core/contextmenu/database.menu.ts | 26 - .../core/contextmenu/drawRelationship.menu.ts | 59 - .../vuerd/src/core/contextmenu/erd.menu.ts | 97 - .../vuerd/src/core/contextmenu/export.menu.ts | 75 - .../core/contextmenu/generatorCode.menu.ts | 51 - .../core/contextmenu/highlightTheme.menu.ts | 28 - .../vuerd/src/core/contextmenu/import.menu.ts | 30 - .../src/core/contextmenu/language.menu.ts | 26 - .../src/core/contextmenu/relationship.menu.ts | 33 - .../vuerd/src/core/contextmenu/show.menu.ts | 65 - .../contextmenu/singleRelationship.menu.ts | 37 - .../src/core/contextmenu/sql-ddl.menu.ts | 42 - .../vuerd/src/core/contextmenu/table.menu.ts | 66 - .../core/contextmenu/tableNameCase.menu.ts | 50 - packages-legacy/vuerd/src/core/extension.ts | 8 - packages-legacy/vuerd/src/core/file.ts | 200 - .../vuerd/src/core/flipAnimation.ts | 71 - .../vuerd/src/core/generator/code/JPA.ts | 237 - .../vuerd/src/core/generator/code/csharp.ts | 70 - .../vuerd/src/core/generator/code/graphql.ts | 137 - .../vuerd/src/core/generator/code/helper.ts | 49 - .../vuerd/src/core/generator/code/index.ts | 112 - .../vuerd/src/core/generator/code/java.ts | 67 - .../vuerd/src/core/generator/code/kotlin.ts | 104 - .../vuerd/src/core/generator/code/scala.ts | 75 - .../src/core/generator/code/typescript.ts | 70 - .../vuerd/src/core/helper/dom.helper.ts | 70 - .../src/core/helper/dragSelect.helper.ts | 108 - .../vuerd/src/core/helper/editor.helper.ts | 63 - .../vuerd/src/core/helper/event.helper.ts | 79 - .../vuerd/src/core/helper/eventBus.helper.ts | 68 - .../vuerd/src/core/helper/index.ts | 98 - .../vuerd/src/core/helper/text.helper.ts | 7 - packages-legacy/vuerd/src/core/highlight.ts | 39 - packages-legacy/vuerd/src/core/history.ts | 67 - .../src/core/hooks/ERDEditorDrawer.hook.ts | 114 - .../src/core/hooks/ERDEditorElement.hook.ts | 109 - .../src/core/hooks/ERDEditorGhost.hook.ts | 67 - .../vuerd/src/core/hooks/ERDKeymap.hook.ts | 240 - .../vuerd/src/core/hooks/alert.hook.ts | 43 - .../vuerd/src/core/hooks/colorPicker.hook.ts | 101 - .../vuerd/src/core/hooks/columnHint.hook.ts | 178 - .../vuerd/src/core/hooks/context.hook.ts | 12 - .../vuerd/src/core/hooks/dataTypeHint.hook.ts | 181 - .../src/core/hooks/drawerAnimation.hook.ts | 58 - .../src/core/hooks/flipAnimation.hook.ts | 18 - .../vuerd/src/core/hooks/hasTable.hook.ts | 36 - .../src/core/hooks/menubarPanels.hook.ts | 88 - .../src/core/hooks/mousePosition.hook.ts | 18 - .../vuerd/src/core/hooks/panelView.hook.ts | 79 - .../vuerd/src/core/hooks/prompt.hook.ts | 42 - .../src/core/hooks/renderTrigger.hook.ts | 18 - .../vuerd/src/core/hooks/resizeMemo.hook.ts | 169 - .../vuerd/src/core/hooks/tableHint.hook.ts | 195 - .../vuerd/src/core/hooks/tooltip.hook.ts | 71 - .../vuerd/src/core/hooks/unmounted.hook.ts | 21 - packages-legacy/vuerd/src/core/icon.ts | 132 - packages-legacy/vuerd/src/core/index.ts | 4 - packages-legacy/vuerd/src/core/keymap.ts | 335 - packages-legacy/vuerd/src/core/layout.ts | 36 - packages-legacy/vuerd/src/core/logger.ts | 6 - .../src/core/migration/relationshipType.ts | 16 - .../src/core/observable/fromDraggable.ts | 12 - .../core/observable/fromShadowDraggable.ts | 15 - .../src/core/operators/commandsFilter.ts | 18 - .../core/operators/groupByStreamCommands.ts | 67 - .../src/core/operators/ignoreEnterProcess.ts | 19 - .../src/core/operators/notEmptyCommands.ts | 7 - .../src/core/operators/readonlyCommands.ts | 24 - packages-legacy/vuerd/src/core/panel.ts | 14 - .../vuerd/src/core/parser/ParserToJson.ts | 660 - .../vuerd/src/core/parser/index.d.ts | 142 - .../vuerd/src/core/sql/dataType/MSSQL.ts | 38 - .../vuerd/src/core/sql/dataType/MariaDB.ts | 52 - .../vuerd/src/core/sql/dataType/MySQL.ts | 50 - .../vuerd/src/core/sql/dataType/Oracle.ts | 29 - .../vuerd/src/core/sql/dataType/PostgreSQL.ts | 65 - .../vuerd/src/core/sql/dataType/SQLite.ts | 12 - .../vuerd/src/core/sql/dataType/index.ts | 60 - .../vuerd/src/core/sql/ddl/MSSQL.ts | 243 - .../vuerd/src/core/sql/ddl/MariaDB.ts | 234 - .../vuerd/src/core/sql/ddl/MySQL.ts | 235 - .../vuerd/src/core/sql/ddl/Oracle.ts | 271 - .../vuerd/src/core/sql/ddl/PostgreSQL.ts | 227 - .../vuerd/src/core/sql/ddl/SQLite.ts | 243 - .../vuerd/src/core/sql/ddl/helper.ts | 123 - .../vuerd/src/core/sql/ddl/index.ts | 164 - packages-legacy/vuerd/src/core/tagged.ts | 7 - packages-legacy/vuerd/src/core/theme.ts | 45 - .../engine/command/canvas.cmd.helper.gen.ts | 54 - .../src/engine/command/canvas.cmd.helper.ts | 75 - .../vuerd/src/engine/command/canvas.cmd.ts | 212 - .../engine/command/column.cmd.helper.gen.ts | 86 - .../src/engine/command/column.cmd.helper.ts | 216 - .../vuerd/src/engine/command/column.cmd.ts | 341 - .../engine/command/editor.cmd.helper.gen.ts | 166 - .../src/engine/command/editor.cmd.helper.ts | 95 - .../vuerd/src/engine/command/editor.cmd.ts | 358 - .../command/editor/filter.cmd.helper.gen.ts | 79 - .../command/editor/filter.cmd.helper.ts | 112 - .../src/engine/command/editor/filter.cmd.ts | 314 - .../command/helper/editor.focus.helper.ts | 365 - .../engine/command/helper/editor.helper.ts | 33 - .../helper/editor/filter.focus.helper.ts | 247 - .../command/helper/editor/filter.helper.ts | 33 - .../vuerd/src/engine/command/helper/index.ts | 199 - .../src/engine/command/index.cmd.helper.ts | 63 - .../vuerd/src/engine/command/index.cmd.ts | 139 - .../vuerd/src/engine/command/index.ts | 81 - .../src/engine/command/memo.cmd.helper.gen.ts | 17 - .../src/engine/command/memo.cmd.helper.ts | 109 - .../vuerd/src/engine/command/memo.cmd.ts | 160 - .../engine/command/relationship.cmd.helper.ts | 73 - .../src/engine/command/relationship.cmd.ts | 139 - .../engine/command/table.cmd.helper.gen.ts | 126 - .../src/engine/command/table.cmd.helper.ts | 125 - .../vuerd/src/engine/command/table.cmd.ts | 212 - .../vuerd/src/engine/history/canvas.cmd.ts | 68 - .../vuerd/src/engine/history/column.cmd.ts | 363 - .../vuerd/src/engine/history/editor.cmd.ts | 17 - .../vuerd/src/engine/history/index.ts | 72 - .../vuerd/src/engine/history/memo.cmd.ts | 52 - .../src/engine/history/relationship.cmd.ts | 113 - .../vuerd/src/engine/history/stream.cmd.ts | 166 - .../vuerd/src/engine/history/table.cmd.ts | 128 - .../vuerd/src/engine/hooks/index.ts | 19 - .../hooks/recalculatingTableWidth.hook.ts | 21 - .../src/engine/hooks/relationshipSort.hook.ts | 34 - .../src/engine/hooks/resetZIndex.hook.ts | 24 - .../vuerd/src/engine/store/canvas.state.ts | 118 - .../vuerd/src/engine/store/editor.state.ts | 37 - .../src/engine/store/editor/filter.state.ts | 41 - .../src/engine/store/helper/canvas.helper.ts | 34 - .../src/engine/store/helper/column.helper.ts | 80 - .../src/engine/store/helper/editor.helper.ts | 59 - .../store/helper/editor/filter.helper.ts | 45 - .../vuerd/src/engine/store/helper/index.ts | 49 - .../store/helper/relationship.helper.ts | 939 - .../src/engine/store/helper/table.helper.ts | 121 - .../src/engine/store/helper/valid.helper.ts | 208 - .../vuerd/src/engine/store/index.ts | 95 - .../vuerd/src/engine/store/memo.state.ts | 5 - .../src/engine/store/models/column.model.ts | 64 - .../src/engine/store/models/filter.model.ts | 25 - .../src/engine/store/models/index.model.ts | 42 - .../src/engine/store/models/memo.model.ts | 61 - .../engine/store/models/relationship.model.ts | 100 - .../engine/store/models/table.model.helper.ts | 102 - .../src/engine/store/models/table.model.ts | 128 - .../src/engine/store/relationship.state.ts | 21 - .../vuerd/src/engine/store/table.state.ts | 13 - .../vuerd/src/extensions/builtin.ts | 9 - .../panels/generator-code/components/index.ts | 9 - .../extensions/panels/generator-code/index.ts | 15 - .../panels/sql-ddl/components/index.ts | 9 - .../src/extensions/panels/sql-ddl/index.ts | 16 - .../components/Column.template.ts | 131 - .../panels/visualization/components/Column.ts | 68 - .../panels/visualization/components/Table.ts | 109 - .../components/Visualization.style.ts | 10 - .../visualization/components/Visualization.ts | 154 - .../visualization/components/index.style.ts | 24 - .../panels/visualization/components/index.ts | 31 - .../visualization/core/visualization.ts | 182 - .../panels/visualization/hooks/api.hook.ts | 20 - .../extensions/panels/visualization/index.ts | 22 - packages-legacy/vuerd/src/index.dev.ts | 11 - packages-legacy/vuerd/src/index.ts | 5 - .../src/internal-types/ERDEditorContext.d.ts | 16 - .../vuerd/src/internal-types/command.d.ts | 3 - .../vuerd/src/internal-types/env.d.ts | 7 - .../src/internal-types/event.helper.d.ts | 28 - .../vuerd/src/internal-types/helper.d.ts | 12 - .../vuerd/src/internal-types/history.d.ts | 14 - .../vuerd/src/internal-types/panel.d.ts | 5 - .../vuerd/src/internal-types/store.d.ts | 10 - packages-legacy/vuerd/src/vite-env.d.ts | 3 - packages-legacy/vuerd/theme/abyss.css | 22 - packages-legacy/vuerd/theme/kimbie-dark.css | 22 - .../vuerd/theme/monokai-dimmed.css | 22 - packages-legacy/vuerd/theme/monokai.css | 22 - packages-legacy/vuerd/theme/one-dark-pro.css | 22 - packages-legacy/vuerd/theme/red.css | 22 - .../vuerd/theme/solarized-dark.css | 22 - .../vuerd/theme/solarized-light.css | 22 - .../vuerd/theme/tomorrow-night-blue.css | 22 - packages-legacy/vuerd/theme/vscode-dark.css | 22 - packages-legacy/vuerd/tsconfig.json | 12 - .../types/components/ERDEditorElement.d.ts | 26 - .../vuerd/types/core/ERDEditorContext.d.ts | 15 - .../vuerd/types/core/contextmenu.d.ts | 18 - .../vuerd/types/core/extension.d.ts | 8 - packages-legacy/vuerd/types/core/file.d.ts | 17 - packages-legacy/vuerd/types/core/helper.d.ts | 5 - packages-legacy/vuerd/types/core/icon.d.ts | 13 - packages-legacy/vuerd/types/core/keymap.d.ts | 44 - .../vuerd/types/core/observable.d.ts | 11 - packages-legacy/vuerd/types/core/panel.d.ts | 34 - packages-legacy/vuerd/types/core/theme.d.ts | 27 - .../types/engine/command/canvas.cmd.d.ts | 104 - .../engine/command/canvas.cmd.helper.d.ts | 89 - .../types/engine/command/column.cmd.d.ts | 87 - .../engine/command/column.cmd.helper.d.ts | 103 - .../engine/command/column.cmd.helper.gen.d.ts | 38 - .../types/engine/command/editor.cmd.d.ts | 84 - .../engine/command/editor.cmd.helper.d.ts | 91 - .../engine/command/editor.cmd.helper.gen.d.ts | 60 - .../engine/command/editor/filter.cmd.d.ts | 77 - .../command/editor/filter.cmd.helper.d.ts | 77 - .../command/editor/filter.cmd.helper.gen.d.ts | 32 - .../vuerd/types/engine/command/index.cmd.d.ts | 54 - .../engine/command/index.cmd.helper.d.ts | 40 - .../vuerd/types/engine/command/index.d.ts | 53 - .../vuerd/types/engine/command/memo.cmd.d.ts | 62 - .../types/engine/command/memo.cmd.helper.d.ts | 61 - .../engine/command/memo.cmd.helper.gen.d.ts | 18 - .../engine/command/relationship.cmd.d.ts | 56 - .../command/relationship.cmd.helper.d.ts | 37 - .../vuerd/types/engine/command/table.cmd.d.ts | 63 - .../engine/command/table.cmd.helper.gen.d.ts | 37 - .../engine/command/table.com.helper.d.ts | 63 - .../types/engine/store/canvas.state.d.ts | 82 - .../types/engine/store/editor.state.d.ts | 61 - .../engine/store/editor/filter.state.d.ts | 43 - .../vuerd/types/engine/store/index.d.ts | 30 - .../vuerd/types/engine/store/memo.state.d.ts | 19 - .../engine/store/relationship.state.d.ts | 40 - .../vuerd/types/engine/store/snapshot.d.ts | 19 - .../vuerd/types/engine/store/table.state.d.ts | 85 - packages-legacy/vuerd/types/index.d.ts | 15 - packages-legacy/vuerd/vite.config.ts | 56 - .../environment/.env.legacy | 1 - .../environment/.env.legacy-lazy | 1 - .../erd-editor-vscode-webview/package.json | 8 +- .../erd-editor-vscode-webview/vite.config.ts | 14 - packages/erd-editor-vscode/CHANGELOG.md | 6 + packages/erd-editor-vscode/README.md | 4 - packages/erd-editor-vscode/package.json | 131 +- .../src/constants/viewType.ts | 1 - .../src/erd-editor-legacy.ts | 107 - .../src/erd-editor-provider.ts | 24 +- packages/erd-editor-vscode/src/extension.ts | 27 +- pnpm-lock.yaml | 17660 +++++++++------- 404 files changed, 9640 insertions(+), 43085 deletions(-) delete mode 100644 packages-legacy/lit-observable/.gitignore delete mode 100644 packages-legacy/lit-observable/LICENSE delete mode 100644 packages-legacy/lit-observable/index.html delete mode 100644 packages-legacy/lit-observable/package.json delete mode 100644 packages-legacy/lit-observable/src/core/context.ts delete mode 100644 packages-legacy/lit-observable/src/core/defineComponent.ts delete mode 100644 packages-legacy/lit-observable/src/core/helper.ts delete mode 100644 packages-legacy/lit-observable/src/core/index.ts delete mode 100644 packages-legacy/lit-observable/src/core/observable.ts delete mode 100644 packages-legacy/lit-observable/src/core/styleSheets.ts delete mode 100644 packages-legacy/lit-observable/src/example/MyTodo.ts delete mode 100644 packages-legacy/lit-observable/src/example/Store.ts delete mode 100644 packages-legacy/lit-observable/src/example/TodoItem.ts delete mode 100644 packages-legacy/lit-observable/src/example/TodoList.ts delete mode 100644 packages-legacy/lit-observable/src/example/TodoProvider.ts delete mode 100644 packages-legacy/lit-observable/src/example/index.ts delete mode 100644 packages-legacy/lit-observable/src/index.dev.ts delete mode 100644 packages-legacy/lit-observable/src/index.ts delete mode 100644 packages-legacy/lit-observable/src/internal-types/index.d.ts delete mode 100644 packages-legacy/lit-observable/tsconfig.json delete mode 100644 packages-legacy/lit-observable/types/context.d.ts delete mode 100644 packages-legacy/lit-observable/types/defineComponent.d.ts delete mode 100644 packages-legacy/lit-observable/types/helper.d.ts delete mode 100644 packages-legacy/lit-observable/types/index.d.ts delete mode 100644 packages-legacy/lit-observable/types/observable.d.ts delete mode 100644 packages-legacy/lit-observable/vite.config.ts delete mode 100644 packages-legacy/sql-ddl-parser/.gitignore delete mode 100644 packages-legacy/sql-ddl-parser/LICENSE delete mode 100644 packages-legacy/sql-ddl-parser/package.json delete mode 100644 packages-legacy/sql-ddl-parser/src/SQLParser.spec.ts delete mode 100644 packages-legacy/sql-ddl-parser/src/SQLParser.ts delete mode 100644 packages-legacy/sql-ddl-parser/src/SQL_DDL_Test_Case.md delete mode 100644 packages-legacy/sql-ddl-parser/src/index.ts delete mode 100644 packages-legacy/sql-ddl-parser/src/sqlParser/SQLParserHelper.ts delete mode 100644 packages-legacy/sql-ddl-parser/src/sqlParser/alter.table.add.foreignKey.ts delete mode 100644 packages-legacy/sql-ddl-parser/src/sqlParser/alter.table.add.primaryKey.ts delete mode 100644 packages-legacy/sql-ddl-parser/src/sqlParser/alter.table.add.unique.ts delete mode 100644 packages-legacy/sql-ddl-parser/src/sqlParser/create.index.ts delete mode 100644 packages-legacy/sql-ddl-parser/src/sqlParser/create.table.ts delete mode 100644 packages-legacy/sql-ddl-parser/src/sqlParser/create.unique.index.ts delete mode 100644 packages-legacy/sql-ddl-parser/src/sqlParser/dataType/MSSQL.ts delete mode 100644 packages-legacy/sql-ddl-parser/src/sqlParser/dataType/MariaDB.ts delete mode 100644 packages-legacy/sql-ddl-parser/src/sqlParser/dataType/MySQL.ts delete mode 100644 packages-legacy/sql-ddl-parser/src/sqlParser/dataType/Oracle.ts delete mode 100644 packages-legacy/sql-ddl-parser/src/sqlParser/dataType/PostgreSQL.ts delete mode 100644 packages-legacy/sql-ddl-parser/src/sqlParser/dataType/SQLite.ts delete mode 100644 packages-legacy/sql-ddl-parser/src/sqlParser/keyword/MSSQL.ts delete mode 100644 packages-legacy/sql-ddl-parser/src/sqlParser/keyword/MariaDB.ts delete mode 100644 packages-legacy/sql-ddl-parser/src/sqlParser/keyword/MySQL.ts delete mode 100644 packages-legacy/sql-ddl-parser/src/sqlParser/keyword/Oracle.ts delete mode 100644 packages-legacy/sql-ddl-parser/src/sqlParser/keyword/PostgreSQL.ts delete mode 100644 packages-legacy/sql-ddl-parser/src/sqlParser/keyword/SQLite.ts delete mode 100644 packages-legacy/sql-ddl-parser/tsconfig.json delete mode 100644 packages-legacy/sql-ddl-parser/types/index.d.ts delete mode 100644 packages-legacy/sql-ddl-parser/vite.config.ts delete mode 100644 packages-legacy/vuerd/.gitignore delete mode 100644 packages-legacy/vuerd/LICENSE delete mode 100644 packages-legacy/vuerd/README.md delete mode 100644 packages-legacy/vuerd/index.html delete mode 100644 packages-legacy/vuerd/package.json delete mode 100644 packages-legacy/vuerd/src/components/Alert.ts delete mode 100644 packages-legacy/vuerd/src/components/Contextmenu.style.ts delete mode 100644 packages-legacy/vuerd/src/components/Contextmenu.template.ts delete mode 100644 packages-legacy/vuerd/src/components/Contextmenu.ts delete mode 100644 packages-legacy/vuerd/src/components/ERDEditor.style.ts delete mode 100644 packages-legacy/vuerd/src/components/ERDEditor.template.ts delete mode 100644 packages-legacy/vuerd/src/components/ERDEditor.ts delete mode 100644 packages-legacy/vuerd/src/components/ERDEditorProvider.ts delete mode 100644 packages-legacy/vuerd/src/components/Icon.style.ts delete mode 100644 packages-legacy/vuerd/src/components/Icon.ts delete mode 100644 packages-legacy/vuerd/src/components/PanelView.ts delete mode 100644 packages-legacy/vuerd/src/components/Prompt.ts delete mode 100644 packages-legacy/vuerd/src/components/Sash.style.ts delete mode 100644 packages-legacy/vuerd/src/components/Sash.ts delete mode 100644 packages-legacy/vuerd/src/components/ToastBar.style.ts delete mode 100644 packages-legacy/vuerd/src/components/ToastBar.ts delete mode 100644 packages-legacy/vuerd/src/components/css/colorPicker.style.ts delete mode 100644 packages-legacy/vuerd/src/components/css/highlight/atom-one-dark.style.ts delete mode 100644 packages-legacy/vuerd/src/components/css/highlight/atom-one-light.style.ts delete mode 100644 packages-legacy/vuerd/src/components/css/highlight/github-gist.style.ts delete mode 100644 packages-legacy/vuerd/src/components/css/highlight/monokai-sublime.style.ts delete mode 100644 packages-legacy/vuerd/src/components/css/highlight/vs2015.style.ts delete mode 100644 packages-legacy/vuerd/src/components/css/index.ts delete mode 100644 packages-legacy/vuerd/src/components/css/scrollbar.style.ts delete mode 100644 packages-legacy/vuerd/src/components/css/tippy.style.ts delete mode 100644 packages-legacy/vuerd/src/components/drawer/Drawer.style.ts delete mode 100644 packages-legacy/vuerd/src/components/drawer/Drawer.ts delete mode 100644 packages-legacy/vuerd/src/components/drawer/HelpDrawer.ts delete mode 100644 packages-legacy/vuerd/src/components/drawer/SettingDrawer.style.ts delete mode 100644 packages-legacy/vuerd/src/components/drawer/SettingDrawer.ts delete mode 100644 packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/GeneratorCode.style.ts delete mode 100644 packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/GeneratorCode.ts delete mode 100644 packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/SQLDDL.style.ts delete mode 100644 packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/SQLDDL.ts delete mode 100644 packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/TablePropertiesDrawer.style.ts delete mode 100644 packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/TablePropertiesDrawer.ts delete mode 100644 packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/indexes/IndexAddColumn.template.ts delete mode 100644 packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/indexes/IndexAddColumn.ts delete mode 100644 packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/indexes/IndexColumn.ts delete mode 100644 packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/indexes/Indexes.style.ts delete mode 100644 packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/indexes/Indexes.ts delete mode 100644 packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/indexes/index.style.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/Canvas.style.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/Canvas.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/CanvasSVG.style.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/CanvasSVG.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/DragSelect.style.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/DragSelect.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/DrawRelationship.style.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/DrawRelationship.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/ERD.style.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/ERD.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/Input.style.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/Input.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/Relationship.template.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/find/Find.style.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/find/Find.template.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/find/Find.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/index.style.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/memo/Memo.style.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/memo/Memo.template.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/memo/Memo.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/minimap/Memo.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/minimap/Minimap.style.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/minimap/Minimap.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/minimap/MinimapHandle.style.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/minimap/MinimapHandle.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/minimap/Table.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/minimap/useMinimapScroll.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/table/HighLevelTable.style.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/table/HighLevelTable.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/table/Table.style.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/table/Table.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/table/column/Column.style.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/table/column/Column.template.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/table/column/Column.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/table/column/ColumnAutoIncrement.style.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/table/column/ColumnAutoIncrement.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/table/column/ColumnDataType.style.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/table/column/ColumnDataType.template.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/table/column/ColumnDataType.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/table/column/ColumnKey.style.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/table/column/ColumnKey.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/table/column/ColumnNotNull.style.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/table/column/ColumnNotNull.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/table/column/ColumnUnique.style.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/table/column/ColumnUnique.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/virtual-scroll/VirtualScroll.style.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/virtual-scroll/VirtualScroll.ts delete mode 100644 packages-legacy/vuerd/src/components/editor/virtual-scroll/useVirtualScroll.ts delete mode 100644 packages-legacy/vuerd/src/components/index.style.ts delete mode 100644 packages-legacy/vuerd/src/components/menubar/Menubar.style.ts delete mode 100644 packages-legacy/vuerd/src/components/menubar/Menubar.ts delete mode 100644 packages-legacy/vuerd/src/core/AutomaticTablePlacement.ts delete mode 100644 packages-legacy/vuerd/src/core/ERDEditorContext.ts delete mode 100644 packages-legacy/vuerd/src/core/config/highlight.config.ts delete mode 100644 packages-legacy/vuerd/src/core/config/index.ts delete mode 100644 packages-legacy/vuerd/src/core/config/tween.config.ts delete mode 100644 packages-legacy/vuerd/src/core/contextmenu/bracketType.menu.ts delete mode 100644 packages-legacy/vuerd/src/core/contextmenu/columnNameCase.menu.ts delete mode 100644 packages-legacy/vuerd/src/core/contextmenu/database.menu.ts delete mode 100644 packages-legacy/vuerd/src/core/contextmenu/drawRelationship.menu.ts delete mode 100644 packages-legacy/vuerd/src/core/contextmenu/erd.menu.ts delete mode 100644 packages-legacy/vuerd/src/core/contextmenu/export.menu.ts delete mode 100644 packages-legacy/vuerd/src/core/contextmenu/generatorCode.menu.ts delete mode 100644 packages-legacy/vuerd/src/core/contextmenu/highlightTheme.menu.ts delete mode 100644 packages-legacy/vuerd/src/core/contextmenu/import.menu.ts delete mode 100644 packages-legacy/vuerd/src/core/contextmenu/language.menu.ts delete mode 100644 packages-legacy/vuerd/src/core/contextmenu/relationship.menu.ts delete mode 100644 packages-legacy/vuerd/src/core/contextmenu/show.menu.ts delete mode 100644 packages-legacy/vuerd/src/core/contextmenu/singleRelationship.menu.ts delete mode 100644 packages-legacy/vuerd/src/core/contextmenu/sql-ddl.menu.ts delete mode 100644 packages-legacy/vuerd/src/core/contextmenu/table.menu.ts delete mode 100644 packages-legacy/vuerd/src/core/contextmenu/tableNameCase.menu.ts delete mode 100644 packages-legacy/vuerd/src/core/extension.ts delete mode 100644 packages-legacy/vuerd/src/core/file.ts delete mode 100644 packages-legacy/vuerd/src/core/flipAnimation.ts delete mode 100644 packages-legacy/vuerd/src/core/generator/code/JPA.ts delete mode 100644 packages-legacy/vuerd/src/core/generator/code/csharp.ts delete mode 100644 packages-legacy/vuerd/src/core/generator/code/graphql.ts delete mode 100644 packages-legacy/vuerd/src/core/generator/code/helper.ts delete mode 100644 packages-legacy/vuerd/src/core/generator/code/index.ts delete mode 100644 packages-legacy/vuerd/src/core/generator/code/java.ts delete mode 100644 packages-legacy/vuerd/src/core/generator/code/kotlin.ts delete mode 100644 packages-legacy/vuerd/src/core/generator/code/scala.ts delete mode 100644 packages-legacy/vuerd/src/core/generator/code/typescript.ts delete mode 100644 packages-legacy/vuerd/src/core/helper/dom.helper.ts delete mode 100644 packages-legacy/vuerd/src/core/helper/dragSelect.helper.ts delete mode 100644 packages-legacy/vuerd/src/core/helper/editor.helper.ts delete mode 100644 packages-legacy/vuerd/src/core/helper/event.helper.ts delete mode 100644 packages-legacy/vuerd/src/core/helper/eventBus.helper.ts delete mode 100644 packages-legacy/vuerd/src/core/helper/index.ts delete mode 100644 packages-legacy/vuerd/src/core/helper/text.helper.ts delete mode 100644 packages-legacy/vuerd/src/core/highlight.ts delete mode 100644 packages-legacy/vuerd/src/core/history.ts delete mode 100644 packages-legacy/vuerd/src/core/hooks/ERDEditorDrawer.hook.ts delete mode 100644 packages-legacy/vuerd/src/core/hooks/ERDEditorElement.hook.ts delete mode 100644 packages-legacy/vuerd/src/core/hooks/ERDEditorGhost.hook.ts delete mode 100644 packages-legacy/vuerd/src/core/hooks/ERDKeymap.hook.ts delete mode 100644 packages-legacy/vuerd/src/core/hooks/alert.hook.ts delete mode 100644 packages-legacy/vuerd/src/core/hooks/colorPicker.hook.ts delete mode 100644 packages-legacy/vuerd/src/core/hooks/columnHint.hook.ts delete mode 100644 packages-legacy/vuerd/src/core/hooks/context.hook.ts delete mode 100644 packages-legacy/vuerd/src/core/hooks/dataTypeHint.hook.ts delete mode 100644 packages-legacy/vuerd/src/core/hooks/drawerAnimation.hook.ts delete mode 100644 packages-legacy/vuerd/src/core/hooks/flipAnimation.hook.ts delete mode 100644 packages-legacy/vuerd/src/core/hooks/hasTable.hook.ts delete mode 100644 packages-legacy/vuerd/src/core/hooks/menubarPanels.hook.ts delete mode 100644 packages-legacy/vuerd/src/core/hooks/mousePosition.hook.ts delete mode 100644 packages-legacy/vuerd/src/core/hooks/panelView.hook.ts delete mode 100644 packages-legacy/vuerd/src/core/hooks/prompt.hook.ts delete mode 100644 packages-legacy/vuerd/src/core/hooks/renderTrigger.hook.ts delete mode 100644 packages-legacy/vuerd/src/core/hooks/resizeMemo.hook.ts delete mode 100644 packages-legacy/vuerd/src/core/hooks/tableHint.hook.ts delete mode 100644 packages-legacy/vuerd/src/core/hooks/tooltip.hook.ts delete mode 100644 packages-legacy/vuerd/src/core/hooks/unmounted.hook.ts delete mode 100644 packages-legacy/vuerd/src/core/icon.ts delete mode 100644 packages-legacy/vuerd/src/core/index.ts delete mode 100644 packages-legacy/vuerd/src/core/keymap.ts delete mode 100644 packages-legacy/vuerd/src/core/layout.ts delete mode 100644 packages-legacy/vuerd/src/core/logger.ts delete mode 100644 packages-legacy/vuerd/src/core/migration/relationshipType.ts delete mode 100644 packages-legacy/vuerd/src/core/observable/fromDraggable.ts delete mode 100644 packages-legacy/vuerd/src/core/observable/fromShadowDraggable.ts delete mode 100644 packages-legacy/vuerd/src/core/operators/commandsFilter.ts delete mode 100644 packages-legacy/vuerd/src/core/operators/groupByStreamCommands.ts delete mode 100644 packages-legacy/vuerd/src/core/operators/ignoreEnterProcess.ts delete mode 100644 packages-legacy/vuerd/src/core/operators/notEmptyCommands.ts delete mode 100644 packages-legacy/vuerd/src/core/operators/readonlyCommands.ts delete mode 100644 packages-legacy/vuerd/src/core/panel.ts delete mode 100644 packages-legacy/vuerd/src/core/parser/ParserToJson.ts delete mode 100644 packages-legacy/vuerd/src/core/parser/index.d.ts delete mode 100644 packages-legacy/vuerd/src/core/sql/dataType/MSSQL.ts delete mode 100644 packages-legacy/vuerd/src/core/sql/dataType/MariaDB.ts delete mode 100644 packages-legacy/vuerd/src/core/sql/dataType/MySQL.ts delete mode 100644 packages-legacy/vuerd/src/core/sql/dataType/Oracle.ts delete mode 100644 packages-legacy/vuerd/src/core/sql/dataType/PostgreSQL.ts delete mode 100644 packages-legacy/vuerd/src/core/sql/dataType/SQLite.ts delete mode 100644 packages-legacy/vuerd/src/core/sql/dataType/index.ts delete mode 100644 packages-legacy/vuerd/src/core/sql/ddl/MSSQL.ts delete mode 100644 packages-legacy/vuerd/src/core/sql/ddl/MariaDB.ts delete mode 100644 packages-legacy/vuerd/src/core/sql/ddl/MySQL.ts delete mode 100644 packages-legacy/vuerd/src/core/sql/ddl/Oracle.ts delete mode 100644 packages-legacy/vuerd/src/core/sql/ddl/PostgreSQL.ts delete mode 100644 packages-legacy/vuerd/src/core/sql/ddl/SQLite.ts delete mode 100644 packages-legacy/vuerd/src/core/sql/ddl/helper.ts delete mode 100644 packages-legacy/vuerd/src/core/sql/ddl/index.ts delete mode 100644 packages-legacy/vuerd/src/core/tagged.ts delete mode 100644 packages-legacy/vuerd/src/core/theme.ts delete mode 100644 packages-legacy/vuerd/src/engine/command/canvas.cmd.helper.gen.ts delete mode 100644 packages-legacy/vuerd/src/engine/command/canvas.cmd.helper.ts delete mode 100644 packages-legacy/vuerd/src/engine/command/canvas.cmd.ts delete mode 100644 packages-legacy/vuerd/src/engine/command/column.cmd.helper.gen.ts delete mode 100644 packages-legacy/vuerd/src/engine/command/column.cmd.helper.ts delete mode 100644 packages-legacy/vuerd/src/engine/command/column.cmd.ts delete mode 100644 packages-legacy/vuerd/src/engine/command/editor.cmd.helper.gen.ts delete mode 100644 packages-legacy/vuerd/src/engine/command/editor.cmd.helper.ts delete mode 100644 packages-legacy/vuerd/src/engine/command/editor.cmd.ts delete mode 100644 packages-legacy/vuerd/src/engine/command/editor/filter.cmd.helper.gen.ts delete mode 100644 packages-legacy/vuerd/src/engine/command/editor/filter.cmd.helper.ts delete mode 100644 packages-legacy/vuerd/src/engine/command/editor/filter.cmd.ts delete mode 100644 packages-legacy/vuerd/src/engine/command/helper/editor.focus.helper.ts delete mode 100644 packages-legacy/vuerd/src/engine/command/helper/editor.helper.ts delete mode 100644 packages-legacy/vuerd/src/engine/command/helper/editor/filter.focus.helper.ts delete mode 100644 packages-legacy/vuerd/src/engine/command/helper/editor/filter.helper.ts delete mode 100644 packages-legacy/vuerd/src/engine/command/helper/index.ts delete mode 100644 packages-legacy/vuerd/src/engine/command/index.cmd.helper.ts delete mode 100644 packages-legacy/vuerd/src/engine/command/index.cmd.ts delete mode 100644 packages-legacy/vuerd/src/engine/command/index.ts delete mode 100644 packages-legacy/vuerd/src/engine/command/memo.cmd.helper.gen.ts delete mode 100644 packages-legacy/vuerd/src/engine/command/memo.cmd.helper.ts delete mode 100644 packages-legacy/vuerd/src/engine/command/memo.cmd.ts delete mode 100644 packages-legacy/vuerd/src/engine/command/relationship.cmd.helper.ts delete mode 100644 packages-legacy/vuerd/src/engine/command/relationship.cmd.ts delete mode 100644 packages-legacy/vuerd/src/engine/command/table.cmd.helper.gen.ts delete mode 100644 packages-legacy/vuerd/src/engine/command/table.cmd.helper.ts delete mode 100644 packages-legacy/vuerd/src/engine/command/table.cmd.ts delete mode 100644 packages-legacy/vuerd/src/engine/history/canvas.cmd.ts delete mode 100644 packages-legacy/vuerd/src/engine/history/column.cmd.ts delete mode 100644 packages-legacy/vuerd/src/engine/history/editor.cmd.ts delete mode 100644 packages-legacy/vuerd/src/engine/history/index.ts delete mode 100644 packages-legacy/vuerd/src/engine/history/memo.cmd.ts delete mode 100644 packages-legacy/vuerd/src/engine/history/relationship.cmd.ts delete mode 100644 packages-legacy/vuerd/src/engine/history/stream.cmd.ts delete mode 100644 packages-legacy/vuerd/src/engine/history/table.cmd.ts delete mode 100644 packages-legacy/vuerd/src/engine/hooks/index.ts delete mode 100644 packages-legacy/vuerd/src/engine/hooks/recalculatingTableWidth.hook.ts delete mode 100644 packages-legacy/vuerd/src/engine/hooks/relationshipSort.hook.ts delete mode 100644 packages-legacy/vuerd/src/engine/hooks/resetZIndex.hook.ts delete mode 100644 packages-legacy/vuerd/src/engine/store/canvas.state.ts delete mode 100644 packages-legacy/vuerd/src/engine/store/editor.state.ts delete mode 100644 packages-legacy/vuerd/src/engine/store/editor/filter.state.ts delete mode 100644 packages-legacy/vuerd/src/engine/store/helper/canvas.helper.ts delete mode 100644 packages-legacy/vuerd/src/engine/store/helper/column.helper.ts delete mode 100644 packages-legacy/vuerd/src/engine/store/helper/editor.helper.ts delete mode 100644 packages-legacy/vuerd/src/engine/store/helper/editor/filter.helper.ts delete mode 100644 packages-legacy/vuerd/src/engine/store/helper/index.ts delete mode 100644 packages-legacy/vuerd/src/engine/store/helper/relationship.helper.ts delete mode 100644 packages-legacy/vuerd/src/engine/store/helper/table.helper.ts delete mode 100644 packages-legacy/vuerd/src/engine/store/helper/valid.helper.ts delete mode 100644 packages-legacy/vuerd/src/engine/store/index.ts delete mode 100644 packages-legacy/vuerd/src/engine/store/memo.state.ts delete mode 100644 packages-legacy/vuerd/src/engine/store/models/column.model.ts delete mode 100644 packages-legacy/vuerd/src/engine/store/models/filter.model.ts delete mode 100644 packages-legacy/vuerd/src/engine/store/models/index.model.ts delete mode 100644 packages-legacy/vuerd/src/engine/store/models/memo.model.ts delete mode 100644 packages-legacy/vuerd/src/engine/store/models/relationship.model.ts delete mode 100644 packages-legacy/vuerd/src/engine/store/models/table.model.helper.ts delete mode 100644 packages-legacy/vuerd/src/engine/store/models/table.model.ts delete mode 100644 packages-legacy/vuerd/src/engine/store/relationship.state.ts delete mode 100644 packages-legacy/vuerd/src/engine/store/table.state.ts delete mode 100644 packages-legacy/vuerd/src/extensions/builtin.ts delete mode 100644 packages-legacy/vuerd/src/extensions/panels/generator-code/components/index.ts delete mode 100644 packages-legacy/vuerd/src/extensions/panels/generator-code/index.ts delete mode 100644 packages-legacy/vuerd/src/extensions/panels/sql-ddl/components/index.ts delete mode 100644 packages-legacy/vuerd/src/extensions/panels/sql-ddl/index.ts delete mode 100644 packages-legacy/vuerd/src/extensions/panels/visualization/components/Column.template.ts delete mode 100644 packages-legacy/vuerd/src/extensions/panels/visualization/components/Column.ts delete mode 100644 packages-legacy/vuerd/src/extensions/panels/visualization/components/Table.ts delete mode 100644 packages-legacy/vuerd/src/extensions/panels/visualization/components/Visualization.style.ts delete mode 100644 packages-legacy/vuerd/src/extensions/panels/visualization/components/Visualization.ts delete mode 100644 packages-legacy/vuerd/src/extensions/panels/visualization/components/index.style.ts delete mode 100644 packages-legacy/vuerd/src/extensions/panels/visualization/components/index.ts delete mode 100644 packages-legacy/vuerd/src/extensions/panels/visualization/core/visualization.ts delete mode 100644 packages-legacy/vuerd/src/extensions/panels/visualization/hooks/api.hook.ts delete mode 100644 packages-legacy/vuerd/src/extensions/panels/visualization/index.ts delete mode 100644 packages-legacy/vuerd/src/index.dev.ts delete mode 100644 packages-legacy/vuerd/src/index.ts delete mode 100644 packages-legacy/vuerd/src/internal-types/ERDEditorContext.d.ts delete mode 100644 packages-legacy/vuerd/src/internal-types/command.d.ts delete mode 100644 packages-legacy/vuerd/src/internal-types/env.d.ts delete mode 100644 packages-legacy/vuerd/src/internal-types/event.helper.d.ts delete mode 100644 packages-legacy/vuerd/src/internal-types/helper.d.ts delete mode 100644 packages-legacy/vuerd/src/internal-types/history.d.ts delete mode 100644 packages-legacy/vuerd/src/internal-types/panel.d.ts delete mode 100644 packages-legacy/vuerd/src/internal-types/store.d.ts delete mode 100644 packages-legacy/vuerd/src/vite-env.d.ts delete mode 100644 packages-legacy/vuerd/theme/abyss.css delete mode 100644 packages-legacy/vuerd/theme/kimbie-dark.css delete mode 100644 packages-legacy/vuerd/theme/monokai-dimmed.css delete mode 100644 packages-legacy/vuerd/theme/monokai.css delete mode 100644 packages-legacy/vuerd/theme/one-dark-pro.css delete mode 100644 packages-legacy/vuerd/theme/red.css delete mode 100644 packages-legacy/vuerd/theme/solarized-dark.css delete mode 100644 packages-legacy/vuerd/theme/solarized-light.css delete mode 100644 packages-legacy/vuerd/theme/tomorrow-night-blue.css delete mode 100644 packages-legacy/vuerd/theme/vscode-dark.css delete mode 100644 packages-legacy/vuerd/tsconfig.json delete mode 100644 packages-legacy/vuerd/types/components/ERDEditorElement.d.ts delete mode 100644 packages-legacy/vuerd/types/core/ERDEditorContext.d.ts delete mode 100644 packages-legacy/vuerd/types/core/contextmenu.d.ts delete mode 100644 packages-legacy/vuerd/types/core/extension.d.ts delete mode 100644 packages-legacy/vuerd/types/core/file.d.ts delete mode 100644 packages-legacy/vuerd/types/core/helper.d.ts delete mode 100644 packages-legacy/vuerd/types/core/icon.d.ts delete mode 100644 packages-legacy/vuerd/types/core/keymap.d.ts delete mode 100644 packages-legacy/vuerd/types/core/observable.d.ts delete mode 100644 packages-legacy/vuerd/types/core/panel.d.ts delete mode 100644 packages-legacy/vuerd/types/core/theme.d.ts delete mode 100644 packages-legacy/vuerd/types/engine/command/canvas.cmd.d.ts delete mode 100644 packages-legacy/vuerd/types/engine/command/canvas.cmd.helper.d.ts delete mode 100644 packages-legacy/vuerd/types/engine/command/column.cmd.d.ts delete mode 100644 packages-legacy/vuerd/types/engine/command/column.cmd.helper.d.ts delete mode 100644 packages-legacy/vuerd/types/engine/command/column.cmd.helper.gen.d.ts delete mode 100644 packages-legacy/vuerd/types/engine/command/editor.cmd.d.ts delete mode 100644 packages-legacy/vuerd/types/engine/command/editor.cmd.helper.d.ts delete mode 100644 packages-legacy/vuerd/types/engine/command/editor.cmd.helper.gen.d.ts delete mode 100644 packages-legacy/vuerd/types/engine/command/editor/filter.cmd.d.ts delete mode 100644 packages-legacy/vuerd/types/engine/command/editor/filter.cmd.helper.d.ts delete mode 100644 packages-legacy/vuerd/types/engine/command/editor/filter.cmd.helper.gen.d.ts delete mode 100644 packages-legacy/vuerd/types/engine/command/index.cmd.d.ts delete mode 100644 packages-legacy/vuerd/types/engine/command/index.cmd.helper.d.ts delete mode 100644 packages-legacy/vuerd/types/engine/command/index.d.ts delete mode 100644 packages-legacy/vuerd/types/engine/command/memo.cmd.d.ts delete mode 100644 packages-legacy/vuerd/types/engine/command/memo.cmd.helper.d.ts delete mode 100644 packages-legacy/vuerd/types/engine/command/memo.cmd.helper.gen.d.ts delete mode 100644 packages-legacy/vuerd/types/engine/command/relationship.cmd.d.ts delete mode 100644 packages-legacy/vuerd/types/engine/command/relationship.cmd.helper.d.ts delete mode 100644 packages-legacy/vuerd/types/engine/command/table.cmd.d.ts delete mode 100644 packages-legacy/vuerd/types/engine/command/table.cmd.helper.gen.d.ts delete mode 100644 packages-legacy/vuerd/types/engine/command/table.com.helper.d.ts delete mode 100644 packages-legacy/vuerd/types/engine/store/canvas.state.d.ts delete mode 100644 packages-legacy/vuerd/types/engine/store/editor.state.d.ts delete mode 100644 packages-legacy/vuerd/types/engine/store/editor/filter.state.d.ts delete mode 100644 packages-legacy/vuerd/types/engine/store/index.d.ts delete mode 100644 packages-legacy/vuerd/types/engine/store/memo.state.d.ts delete mode 100644 packages-legacy/vuerd/types/engine/store/relationship.state.d.ts delete mode 100644 packages-legacy/vuerd/types/engine/store/snapshot.d.ts delete mode 100644 packages-legacy/vuerd/types/engine/store/table.state.d.ts delete mode 100644 packages-legacy/vuerd/types/index.d.ts delete mode 100644 packages-legacy/vuerd/vite.config.ts delete mode 100644 packages/erd-editor-vscode-webview/environment/.env.legacy delete mode 100644 packages/erd-editor-vscode-webview/environment/.env.legacy-lazy delete mode 100644 packages/erd-editor-vscode/src/erd-editor-legacy.ts diff --git a/erd-editor.code-workspace b/erd-editor.code-workspace index 9839f256..71be7b5e 100644 --- a/erd-editor.code-workspace +++ b/erd-editor.code-workspace @@ -2,98 +2,86 @@ "folders": [ { "name": "erd-editor", - "path": "packages/erd-editor" + "path": "packages/erd-editor", }, { "name": "erd-editor-schema", - "path": "packages/erd-editor-schema" + "path": "packages/erd-editor-schema", }, { "name": "erd-editor-shiki-worker", - "path": "packages/erd-editor-shiki-worker" + "path": "packages/erd-editor-shiki-worker", }, { "name": "erd-editor-vscode", - "path": "packages/erd-editor-vscode" + "path": "packages/erd-editor-vscode", }, { "name": "erd-editor-vscode-webview", - "path": "packages/erd-editor-vscode-webview" + "path": "packages/erd-editor-vscode-webview", }, { "name": "erd-editor-vscode-bridge", - "path": "packages/erd-editor-vscode-bridge" + "path": "packages/erd-editor-vscode-bridge", }, { "name": "erd-editor-intellij-webview", - "path": "packages/erd-editor-intellij-webview" + "path": "packages/erd-editor-intellij-webview", }, { "name": "erd-editor-app", - "path": "packages/erd-editor-app" + "path": "packages/erd-editor-app", }, { "name": "schema-sql-parser", - "path": "packages/schema-sql-parser" + "path": "packages/schema-sql-parser", }, { "name": "shared", - "path": "packages/shared" + "path": "packages/shared", }, { "name": "r-html", - "path": "packages/r-html" + "path": "packages/r-html", }, { "name": "vite-plugin-r-html", - "path": "packages/vite-plugin-r-html" - }, - { - "name": "@legacy/vuerd", - "path": "packages-legacy/vuerd" - }, - { - "name": "@legacy/sql-ddl-parser", - "path": "packages-legacy/sql-ddl-parser" - }, - { - "name": "@legacy/lit-observable", - "path": "packages-legacy/lit-observable" + "path": "packages/vite-plugin-r-html", }, { "name": "monorepo", - "path": "." - } + "path": ".", + }, ], "settings": { "files.autoSave": "onFocusChange", "editor.formatOnSave": true, "editor.codeActionsOnSave": { - "source.fixAll": "explicit" + "source.fixAll": "explicit", }, "editor.tabSize": 2, "editor.suggestSelection": "first", "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.tabCompletion": "on", "[json]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" + "editor.defaultFormatter": "esbenp.prettier-vscode", }, "[javascript]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" + "editor.defaultFormatter": "esbenp.prettier-vscode", }, "[typescript]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" + "editor.defaultFormatter": "esbenp.prettier-vscode", }, "typescript.updateImportsOnFileMove.enabled": "always", "javascript.updateImportsOnFileMove.enabled": "always", - "typescript.enablePromptUseWorkspaceTsdk": true + "typescript.enablePromptUseWorkspaceTsdk": true, }, "extensions": { "recommendations": [ "editorconfig.editorconfig", "dbaeumer.vscode-eslint", "esbenp.prettier-vscode", - "styled-components.vscode-styled-components" - ] - } + "styled-components.vscode-styled-components", + ], + }, } diff --git a/packages-legacy/lit-observable/.gitignore b/packages-legacy/lit-observable/.gitignore deleted file mode 100644 index 1509aadd..00000000 --- a/packages-legacy/lit-observable/.gitignore +++ /dev/null @@ -1 +0,0 @@ -!types \ No newline at end of file diff --git a/packages-legacy/lit-observable/LICENSE b/packages-legacy/lit-observable/LICENSE deleted file mode 100644 index 2092969e..00000000 --- a/packages-legacy/lit-observable/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2021 SeungHwan-Lee - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/packages-legacy/lit-observable/index.html b/packages-legacy/lit-observable/index.html deleted file mode 100644 index f9e43d0a..00000000 --- a/packages-legacy/lit-observable/index.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - lit-observable - - - - - diff --git a/packages-legacy/lit-observable/package.json b/packages-legacy/lit-observable/package.json deleted file mode 100644 index b855b454..00000000 --- a/packages-legacy/lit-observable/package.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "@vuerd/lit-observable", - "version": "0.2.2", - "private": true, - "description": "lit-html + reactive", - "type": "module", - "main": "./dist/lit-observable.js", - "typings": "./types/index.d.ts", - "exports": { - ".": { - "import": { - "types": "./types/index.d.ts", - "default": "./dist/lit-observable.js" - } - } - }, - "author": "dineug ", - "license": "MIT", - "scripts": { - "dev": "vite serve", - "build": "vite build" - }, - "dependencies": { - "lit-html": "^1.4.1", - "lodash-es": "^4.17.21" - }, - "devDependencies": { - "@types/lodash-es": "^4.17.12", - "typescript": "5.4.5", - "vite": "^5.2.8" - } -} diff --git a/packages-legacy/lit-observable/src/core/context.ts b/packages-legacy/lit-observable/src/core/context.ts deleted file mode 100644 index b4fef8bc..00000000 --- a/packages-legacy/lit-observable/src/core/context.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { ProviderElement } from '@@types/context'; - -import { closestElement } from './helper'; - -export function getContext(selector: string, el: Element): T { - const provider = closestElement(selector, el) as ProviderElement; - return provider.value; -} diff --git a/packages-legacy/lit-observable/src/core/defineComponent.ts b/packages-legacy/lit-observable/src/core/defineComponent.ts deleted file mode 100644 index 1ee72897..00000000 --- a/packages-legacy/lit-observable/src/core/defineComponent.ts +++ /dev/null @@ -1,254 +0,0 @@ -import { html, render } from 'lit-html'; -import { camelCase, kebabCase } from 'lodash-es'; - -import { - Callback, - Options, - PropOptions, - Ref, - Template, -} from '@@types/defineComponent'; -import { Unsubscribe } from '@@types/observable'; - -import { - isObject, - isUndefined, - queryShadowSelector, - queryShadowSelectorAll, -} from './helper'; -import { observable, observer } from './observable'; -import { isSheet, isStyle } from './styleSheets'; - -const BEFORE_MOUNT = Symbol('beforeMount'); -const MOUNTED = Symbol('mounted'); -const UNMOUNTED = Symbol('unmounted'); -const BEFORE_FIRST_UPDATE = Symbol('beforeFirstUpdate'); -const FIRST_UPDATED = Symbol('firstUpdated'); -const BEFORE_UPDATE = Symbol('beforeUpdate'); -const UPDATED = Symbol('updated'); -const QUERY = Symbol('query'); -const QUERY_ALL = Symbol('queryAll'); -const QUERY_SHADOW = Symbol('queryShadow'); -const QUERY_SHADOW_ALL = Symbol('queryShadowAll'); -const UNSUBSCRIBE = Symbol('unsubscribe'); -const RENDER_ROOT = Symbol('renderRoot'); -const TEMPLATE = Symbol('template'); -const STYLE = Symbol('style'); -const PROPS = Symbol('props'); - -type LifecycleName = - | typeof BEFORE_MOUNT - | typeof MOUNTED - | typeof UNMOUNTED - | typeof BEFORE_FIRST_UPDATE - | typeof FIRST_UPDATED - | typeof BEFORE_UPDATE - | typeof UPDATED; -type QueryName = typeof QUERY | typeof QUERY_ALL; -type QueryShadowName = typeof QUERY_SHADOW | typeof QUERY_SHADOW_ALL; - -interface Component extends HTMLElement { - [BEFORE_MOUNT]: Callback[] | null; - [MOUNTED]: Callback[] | null; - [UNMOUNTED]: Callback[] | null; - [BEFORE_FIRST_UPDATE]: Callback[] | null; - [FIRST_UPDATED]: Callback[] | null; - [BEFORE_UPDATE]: Callback[] | null; - [UPDATED]: Callback[] | null; - [QUERY]: Callback[] | null; - [UNSUBSCRIBE]: Unsubscribe[]; - [RENDER_ROOT]: ShadowRoot | HTMLElement; - [TEMPLATE]: Template; - [STYLE]: HTMLStyleElement | null; - [PROPS]: any; -} - -let currentInstance: Component | null = null; - -const createLifecycle = (name: LifecycleName) => (f: Callback) => { - currentInstance && - (currentInstance[name] ?? (currentInstance[name] = [])).push(f); -}; -const createQuery = - (name: QueryName) => - (selector: string): Ref => { - const ref = { value: null } as Ref; - - if (currentInstance) { - const renderRoot = currentInstance[RENDER_ROOT]; - const f = () => - (ref.value = - name === QUERY - ? renderRoot.querySelector(selector) - : [...renderRoot.querySelectorAll(selector)]); - - (currentInstance[QUERY] ?? (currentInstance[QUERY] = [])).push(f); - } - - return ref; - }; -const createQueryShadow = - (name: QueryShadowName) => - (...selectors: string[]): Ref => { - const ref = { value: null } as Ref; - - if (currentInstance) { - const el = currentInstance; - const f = () => - (ref.value = - name === QUERY_SHADOW - ? queryShadowSelector(selectors, el) - : queryShadowSelectorAll(selectors, el)); - - (currentInstance[QUERY] ?? (currentInstance[QUERY] = [])).push(f); - } - - return ref; - }; - -export const beforeMount = createLifecycle(BEFORE_MOUNT); -export const mounted = createLifecycle(MOUNTED); -export const unmounted = createLifecycle(UNMOUNTED); -export const beforeFirstUpdate = createLifecycle(BEFORE_FIRST_UPDATE); -export const firstUpdated = createLifecycle(FIRST_UPDATED); -export const beforeUpdate = createLifecycle(BEFORE_UPDATE); -export const updated = createLifecycle(UPDATED); -export const query = createQuery(QUERY); -export const queryAll = createQuery(QUERY_ALL); -export const queryShadow = createQueryShadow(QUERY_SHADOW); -export const queryShadowAll = createQueryShadow(QUERY_SHADOW_ALL); - -export function defineComponent(name: string, options: Options) { - options.shadow ?? (options.shadow = 'open'); - - const observedProps = options.observedProps ?? []; - const observedPropNames = observedProps.map(prop => - isObject(prop) ? (prop as PropOptions).name : (prop as string) - ); - const observedPropsOptions = observedProps.filter(prop => - isObject(prop) - ) as PropOptions[]; - const sheet = isSheet(options) ? new CSSStyleSheet() : null; - sheet && sheet.replaceSync(options.style || ''); - - const C = class extends HTMLElement implements Component { - static get observedAttributes() { - return Array.from( - new Set([ - ...observedPropNames, - ...observedPropNames.map(propName => kebabCase(propName)), - ]) - ); - } - - [BEFORE_MOUNT]: Callback[] | null = null; - [MOUNTED]: Callback[] | null = null; - [UNMOUNTED]: Callback[] | null = null; - [BEFORE_FIRST_UPDATE]: Callback[] | null = null; - [FIRST_UPDATED]: Callback[] | null = null; - [BEFORE_UPDATE]: Callback[] | null = null; - [UPDATED]: Callback[] | null = null; - [QUERY]: Callback[] | null = null; - [UNSUBSCRIBE]: Unsubscribe[] = []; - [RENDER_ROOT]: ShadowRoot | HTMLElement = this; - [TEMPLATE]: Template; - [STYLE]: HTMLStyleElement | null = null; - [PROPS] = observable({}) as any; - - constructor() { - super(); - - observedPropsOptions.forEach( - propOptions => - isUndefined(propOptions.default) || - Reflect.set( - this[PROPS], - camelCase(propOptions.name), - propOptions.default - ) - ); - - options.shadow && - (this[RENDER_ROOT] = this.attachShadow({ mode: options.shadow })); - - if (isStyle(options)) { - const style = document.createElement('style'); - style.textContent = options.style || ''; - this[STYLE] = style; - } - - sheet && ((this[RENDER_ROOT] as ShadowRoot).adoptedStyleSheets = [sheet]); - - currentInstance = this; - this[TEMPLATE] = options.render.call(this, this[PROPS], this); - currentInstance = null; - } - - connectedCallback() { - options.styleMap && Object.assign(this.style, options.styleMap); - this[BEFORE_MOUNT]?.forEach(f => f()); - - let isMounted = false; - this[UNSUBSCRIBE].push( - observer(() => { - isMounted - ? this[BEFORE_UPDATE]?.forEach(f => f()) - : this[BEFORE_FIRST_UPDATE]?.forEach(f => f()); - - render(html`${this[STYLE]}${this[TEMPLATE]()}`, this[RENDER_ROOT]); - this[QUERY]?.forEach(f => f()); - - if (isMounted) { - this[UPDATED]?.forEach(f => f()); - } else { - this[FIRST_UPDATED]?.forEach(f => f()); - isMounted = true; - } - }) - ); - - this[MOUNTED]?.forEach(f => f()); - } - - disconnectedCallback() { - this[UNSUBSCRIBE].forEach(f => f()); - this[UNSUBSCRIBE] = []; - this[UNMOUNTED]?.forEach(f => f()); - } - - attributeChangedCallback( - propName: string, - oldValue: string | null, - newValue: string | null - ) { - const propOptions = observedProps.find( - prop => - isObject(prop) && - camelCase((prop as PropOptions).name) === camelCase(propName) - ) as PropOptions | undefined; - - propOptions && propOptions.type - ? Reflect.set( - this[PROPS], - camelCase(propName), - propOptions.type === Boolean - ? newValue === 'true' || newValue === '' - : propOptions.type(newValue) - ) - : Reflect.set(this[PROPS], camelCase(propName), newValue); - } - }; - - observedPropNames.forEach(propName => { - Object.defineProperty(C.prototype, propName, { - get() { - return Reflect.get(this[PROPS], propName); - }, - set(value) { - Reflect.set(this[PROPS], propName, value); - }, - }); - }); - - customElements.define(name, C); -} diff --git a/packages-legacy/lit-observable/src/core/helper.ts b/packages-legacy/lit-observable/src/core/helper.ts deleted file mode 100644 index 4ead066d..00000000 --- a/packages-legacy/lit-observable/src/core/helper.ts +++ /dev/null @@ -1,37 +0,0 @@ -export const isObject = (obj: any) => !!obj && typeof obj === 'object'; -export const isArray = (obj: any) => Array.isArray(obj); -export const isUndefined = (value: any) => value === undefined; -export const closestElement = ( - selector: string, - el: any, - target = el && el.closest(selector) -): Element | null => - !el || el === document || el === window - ? null - : target - ? target - : closestElement(selector, el.getRootNode().host); - -export const queryShadowSelector = (selectors: string[], el: Element) => - selectors.length - ? selectors.reduce((element, selector) => { - const target = element?.querySelector(selector); - return target ? target : element?.shadowRoot?.querySelector(selector); - }, el) - : null; - -export const queryShadowSelectorAll = (selectors: string[], el: Element) => - selectors.length - ? selectors.reduce>( - (elements, selector) => { - const target: Element[] = []; - elements.forEach(element => { - element.shadowRoot && - target.push(...element.shadowRoot.querySelectorAll(selector)); - target.push(...element.querySelectorAll(selector)); - }); - return target; - }, - [el] - ) - : []; diff --git a/packages-legacy/lit-observable/src/core/index.ts b/packages-legacy/lit-observable/src/core/index.ts deleted file mode 100644 index f807bdc3..00000000 --- a/packages-legacy/lit-observable/src/core/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -export * from './context'; -export * from './defineComponent'; -export { - closestElement, - queryShadowSelector, - queryShadowSelectorAll, -} from './helper'; -export * from './observable'; -export { html, svg, SVGTemplateResult, TemplateResult } from 'lit-html'; diff --git a/packages-legacy/lit-observable/src/core/observable.ts b/packages-legacy/lit-observable/src/core/observable.ts deleted file mode 100644 index 0c9b58aa..00000000 --- a/packages-legacy/lit-observable/src/core/observable.ts +++ /dev/null @@ -1,212 +0,0 @@ -import { - NextTrigger, - Observer, - PropName, - Subject, - SubjectObserver, - Trigger, - Unsubscribe, -} from '@@types/observable'; - -import { isArray, isObject } from './helper'; - -const rawToProxy = new WeakMap(); -const rawToObservers = new WeakMap>(); -const proxyToRaw = new WeakMap(); -const proxyToSubject = new WeakMap>(); -const observerToTriggers = new WeakMap>(); -const queue: Observer[] = []; -const nextQueue: NextTrigger[] = []; - -let currentObserver: Observer | null = null; -let batch = false; -let nextBatch = false; - -export function observer(f: Observer): Unsubscribe { - currentObserver = f; - f(); - currentObserver = null; - - return () => unobserve(f); -} - -function unobserve(observer: Observer) { - const triggers = observerToTriggers.get(observer); - - triggers?.forEach(({ raw }) => { - const observers = rawToObservers.get(raw); - - observers && - observers.includes(observer) && - observers.splice(observers.indexOf(observer), 1); - }); - - triggers && observerToTriggers.delete(observer); -} - -function addObserver(raw: any) { - if (!currentObserver) return; - - const observers = rawToObservers.get(raw); - - if (!observers) { - rawToObservers.set(raw, [currentObserver]); - } else if (!observers.includes(currentObserver)) { - observers.push(currentObserver); - } -} - -function addTrigger(raw: any, p: PropName) { - if (!currentObserver) return; - - const triggers = observerToTriggers.get(currentObserver); - - if (triggers) { - const trigger = triggers.find(trigger => trigger.raw === raw); - - if (!trigger) { - triggers.push({ raw, keys: [p] }); - } else if (!trigger.keys.includes(p)) { - trigger.keys.push(p); - } - } else { - observerToTriggers.set(currentObserver, [{ raw, keys: [p] }]); - } -} - -function isTrigger(raw: any, p: PropName, observer: Observer) { - const triggers = observerToTriggers.get(observer); - - return triggers - ? triggers.some(trigger => trigger.raw === raw && trigger.keys.includes(p)) - : false; -} - -const effect = (raw: any, p: PropName) => - rawToObservers.get(raw)?.forEach(observer => { - if (!isTrigger(raw, p, observer)) return; - - queue.includes(observer) || queue.push(observer); - - if (!batch) { - queueMicrotask(execute); - batch = true; - } - }); - -function execute() { - while (queue.length) { - const target = queue.shift() as Observer; - - unobserve(target); - observer(target); - } - batch = false; -} - -export function observable(raw: T): T { - const proxy = new Proxy(raw as any, { - get(target, p, receiver) { - const value = Reflect.get(target, p, receiver); - - if (value instanceof RegExp) { - return value; - } - - addObserver(raw); - addTrigger(raw, p); - - if (isObject(value) && !proxyToRaw.has(value)) { - if (rawToProxy.has(value)) return rawToProxy.get(value); - - return observable(value); - } - - return value; - }, - set(target, p, value, receiver) { - const oldValue = Reflect.get(target, p, receiver); - const res = Reflect.set(target, p, value, receiver); - - if (!isArray(target) && oldValue !== value) { - effect(target, p); - nextEffect(target, p); - } else if (p === 'length') { - effect(target, p); - nextEffect(target, p); - } - - return res; - }, - }); - - rawToProxy.set(raw as any, proxy); - proxyToRaw.set(proxy, raw); - - return proxy; -} - -function nextEffect(raw: any, p: PropName) { - const proxy = rawToProxy.get(raw); - if (!proxy) return; - - const subject = proxyToSubject.get(proxy); - if (!subject) return; - - const trigger = nextQueue.find(trigger => trigger.proxy === proxy); - - if (!trigger) { - nextQueue.push({ proxy, keys: [p] }); - } else if (!trigger.keys.includes(p)) { - trigger.keys.push(p); - } - - if (!nextBatch) { - queueMicrotask(nextExecute); - nextBatch = true; - } -} - -function nextExecute() { - while (nextQueue.length) { - const trigger = nextQueue.shift() as NextTrigger; - const subject = proxyToSubject.get(trigger.proxy); - - trigger.keys.forEach(key => subject?.next(key)); - } - nextBatch = false; -} - -export function createSubject(): Subject { - const observers: Array> = []; - - const next = (value: T) => observers.forEach(observer => observer(value)); - - const subscribe = (observer: SubjectObserver) => { - observers.push(observer); - - return () => { - observers.includes(observer) && - observers.splice(observers.indexOf(observer), 1); - }; - }; - - return { - next, - subscribe, - }; -} - -export function watch( - proxy: any, - observer: SubjectObserver -): Unsubscribe { - let subject = proxyToSubject.get(proxy); - - if (!subject) { - subject = createSubject(); - proxyToSubject.set(proxy, subject); - } - - return subject.subscribe(observer); -} diff --git a/packages-legacy/lit-observable/src/core/styleSheets.ts b/packages-legacy/lit-observable/src/core/styleSheets.ts deleted file mode 100644 index 7345b1ae..00000000 --- a/packages-legacy/lit-observable/src/core/styleSheets.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Options } from '@@types/defineComponent'; - -const supportsAdoptingStyleSheets = - window.ShadowRoot && - 'adoptedStyleSheets' in Document.prototype && - 'replace' in CSSStyleSheet.prototype; - -export const isSheet = (options: Options): boolean => - supportsAdoptingStyleSheets && !!options.shadow && !!options.style; - -export const isStyle = (options: Options): boolean => - !isSheet(options) && !!options.style; diff --git a/packages-legacy/lit-observable/src/example/MyTodo.ts b/packages-legacy/lit-observable/src/example/MyTodo.ts deleted file mode 100644 index cbfa51ce..00000000 --- a/packages-legacy/lit-observable/src/example/MyTodo.ts +++ /dev/null @@ -1,28 +0,0 @@ -import './TodoList'; - -import { defineComponent, html } from '@/core'; - -import { Store } from './Store'; - -declare global { - interface HTMLElementTagNameMap { - 'my-todo': MyTodoElement; - } -} - -interface MyTodoElement extends HTMLElement {} - -defineComponent('my-todo', { - shadow: 'closed', - render() { - const store = new Store(); - const add = () => store.add({ name: `${Math.random()}` }); - - return () => html` - - - - - `; - }, -}); diff --git a/packages-legacy/lit-observable/src/example/Store.ts b/packages-legacy/lit-observable/src/example/Store.ts deleted file mode 100644 index 76167cc2..00000000 --- a/packages-legacy/lit-observable/src/example/Store.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { observable } from '@/core'; - -export interface Todo { - name: string; -} - -export class Store { - list: Todo[] = observable([]); - - add(todo: Todo) { - this.list.push(todo); - } -} diff --git a/packages-legacy/lit-observable/src/example/TodoItem.ts b/packages-legacy/lit-observable/src/example/TodoItem.ts deleted file mode 100644 index d6997648..00000000 --- a/packages-legacy/lit-observable/src/example/TodoItem.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { defineComponent, html } from '@/core'; - -import { Todo } from './Store'; - -declare global { - interface HTMLElementTagNameMap { - 'todo-item': TodoItemElement; - } -} - -interface TodoItemProps { - todo: Todo; -} - -interface TodoItemElement extends TodoItemProps, HTMLElement {} - -defineComponent('todo-item', { - observedProps: ['todo'], - render: (props: TodoItemProps) => () => html`
  • ${props.todo.name}
  • `, -}); diff --git a/packages-legacy/lit-observable/src/example/TodoList.ts b/packages-legacy/lit-observable/src/example/TodoList.ts deleted file mode 100644 index 769915b7..00000000 --- a/packages-legacy/lit-observable/src/example/TodoList.ts +++ /dev/null @@ -1,27 +0,0 @@ -import './TodoItem'; - -import { defineComponent, html } from '@/core'; - -import { getTodoContextRef } from './TodoProvider'; - -declare global { - interface HTMLElementTagNameMap { - 'todo-list': TodoListElement; - } -} - -interface TodoListElement extends HTMLElement {} - -defineComponent('todo-list', { - render(_, ctx: TodoListElement) { - const storeRef = getTodoContextRef(ctx); - - return () => html` -
      - ${storeRef.value.list.map( - todo => html`` - )} -
    - `; - }, -}); diff --git a/packages-legacy/lit-observable/src/example/TodoProvider.ts b/packages-legacy/lit-observable/src/example/TodoProvider.ts deleted file mode 100644 index f8f0059d..00000000 --- a/packages-legacy/lit-observable/src/example/TodoProvider.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { beforeMount, defineComponent, getContext, html } from '@/core'; -import { ProviderElement } from '@@types/context'; - -import { Store } from './Store'; - -declare global { - interface HTMLElementTagNameMap { - 'todo-provider': TodoProviderElement; - } -} - -export interface TodoProviderElement extends ProviderElement {} - -defineComponent('todo-provider', { - render: () => () => html``, -}); - -export const getTodoContext = (el: Element) => - getContext('todo-provider', el); - -export function getTodoContextRef(ctx: Element) { - const ref: { value: Store | null } = { value: null }; - - beforeMount(() => (ref.value = getTodoContext(ctx))); - - return ref as { value: Store }; -} diff --git a/packages-legacy/lit-observable/src/example/index.ts b/packages-legacy/lit-observable/src/example/index.ts deleted file mode 100644 index 4beb6e32..00000000 --- a/packages-legacy/lit-observable/src/example/index.ts +++ /dev/null @@ -1 +0,0 @@ -import './MyTodo'; diff --git a/packages-legacy/lit-observable/src/index.dev.ts b/packages-legacy/lit-observable/src/index.dev.ts deleted file mode 100644 index 1521df5c..00000000 --- a/packages-legacy/lit-observable/src/index.dev.ts +++ /dev/null @@ -1,8 +0,0 @@ -import './example'; - -function runTodo() { - const myTodo = document.createElement('my-todo'); - document.body.appendChild(myTodo); -} - -runTodo(); diff --git a/packages-legacy/lit-observable/src/index.ts b/packages-legacy/lit-observable/src/index.ts deleted file mode 100644 index 4b0e0413..00000000 --- a/packages-legacy/lit-observable/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './core'; diff --git a/packages-legacy/lit-observable/src/internal-types/index.d.ts b/packages-legacy/lit-observable/src/internal-types/index.d.ts deleted file mode 100644 index 1681abaa..00000000 --- a/packages-legacy/lit-observable/src/internal-types/index.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -interface ShadowRoot { - adoptedStyleSheets: CSSStyleSheet[]; -} - -interface CSSStyleSheet { - replaceSync(cssText: string): void; - replace(cssText: string): Promise; -} diff --git a/packages-legacy/lit-observable/tsconfig.json b/packages-legacy/lit-observable/tsconfig.json deleted file mode 100644 index 72ab3224..00000000 --- a/packages-legacy/lit-observable/tsconfig.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "baseUrl": ".", - "paths": { - "@/*": ["src/*"], - "@@types/*": ["types/*"] - }, - "types": ["vite/client"] - }, - "include": ["src/**/*.ts", "types/**/*.ts"], - "exclude": ["node_modules"] -} diff --git a/packages-legacy/lit-observable/types/context.d.ts b/packages-legacy/lit-observable/types/context.d.ts deleted file mode 100644 index 5cd8afd9..00000000 --- a/packages-legacy/lit-observable/types/context.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -export interface ProviderElement extends HTMLElement { - value: T; -} - -export declare function getContext(selector: string, el: Element): T; diff --git a/packages-legacy/lit-observable/types/defineComponent.d.ts b/packages-legacy/lit-observable/types/defineComponent.d.ts deleted file mode 100644 index 714108aa..00000000 --- a/packages-legacy/lit-observable/types/defineComponent.d.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { SVGTemplateResult, TemplateResult } from 'lit-html'; - -export type Callback = () => void; -export type Template = () => - | TemplateResult - | SVGTemplateResult - | null - | undefined; -export type FunctionalComponent

    = ( - this: HTMLElement, - props: P, - ctx: T -) => Template; -export type PrimitiveType = string | number | boolean | null | undefined; -export type Convert = (value: string | null) => PrimitiveType; - -export interface PropOptions { - name: string; - default?: PrimitiveType; - // attribute convert type - type?: Convert | typeof String | typeof Number | typeof Boolean; -} - -export interface Options { - observedProps?: Array; - shadow?: ShadowRootMode | false; - style?: string; - styleMap?: Partial; - render: FunctionalComponent; -} - -export interface Ref { - value: T; -} - -export declare function beforeMount(callback: Callback): void; -export declare function mounted(callback: Callback): void; -export declare function unmounted(callback: Callback): void; -export declare function beforeFirstUpdate(callback: Callback): void; -export declare function firstUpdated(callback: Callback): void; -export declare function beforeUpdate(callback: Callback): void; -export declare function updated(callback: Callback): void; -export declare function query(selector: string): Ref; -export declare function queryAll(selector: string): Ref; -export declare function queryShadow(...selectors: string[]): Ref; -export declare function queryShadowAll(...selectors: string[]): Ref; -export declare function defineComponent(name: string, options: Options): void; diff --git a/packages-legacy/lit-observable/types/helper.d.ts b/packages-legacy/lit-observable/types/helper.d.ts deleted file mode 100644 index 2ef2ad91..00000000 --- a/packages-legacy/lit-observable/types/helper.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -export declare function closestElement( - selector: string, - el: any -): Element | null; - -export declare function queryShadowSelector( - selectors: string[], - el: Element -): Element | null | undefined; - -export declare function queryShadowSelectorAll( - selectors: string[], - el: Element -): Element[]; diff --git a/packages-legacy/lit-observable/types/index.d.ts b/packages-legacy/lit-observable/types/index.d.ts deleted file mode 100644 index 8cdb65e5..00000000 --- a/packages-legacy/lit-observable/types/index.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -export { getContext, ProviderElement } from './context'; -export { - beforeFirstUpdate, - beforeMount, - beforeUpdate, - defineComponent, - firstUpdated, - FunctionalComponent, - mounted, - query, - queryAll, - queryShadow, - queryShadowAll, - unmounted, - updated, -} from './defineComponent'; -export { - closestElement, - queryShadowSelector, - queryShadowSelectorAll, -} from './helper'; -export { createSubject, observable, observer, watch } from './observable'; -export { html, svg, SVGTemplateResult, TemplateResult } from 'lit-html'; diff --git a/packages-legacy/lit-observable/types/observable.d.ts b/packages-legacy/lit-observable/types/observable.d.ts deleted file mode 100644 index d46854e1..00000000 --- a/packages-legacy/lit-observable/types/observable.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -export type PropName = string | number | symbol; -export type Observer = () => void; -export type Unsubscribe = () => void; -export type SubjectObserver = (value: T) => void; - -export interface Trigger { - raw: any; - keys: PropName[]; -} - -export interface NextTrigger { - proxy: any; - keys: PropName[]; -} - -export interface Subject { - next(value: T): void; - subscribe(observer: SubjectObserver): Unsubscribe; -} - -export declare function observable(raw: T): T; -export declare function observer(f: Observer): Unsubscribe; -export declare function createSubject(): Subject; -export declare function watch( - proxy: any, - observer: SubjectObserver -): Unsubscribe; diff --git a/packages-legacy/lit-observable/vite.config.ts b/packages-legacy/lit-observable/vite.config.ts deleted file mode 100644 index 20c8cba6..00000000 --- a/packages-legacy/lit-observable/vite.config.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { readFileSync } from 'node:fs'; -import { join } from 'node:path'; - -import { defineConfig } from 'vite'; - -const pkg = JSON.parse(readFileSync('package.json', { encoding: 'utf8' })); - -const external = new RegExp( - `^(${Object.keys(pkg.dependencies || {}).join('|')})$` -); - -export default defineConfig({ - build: { - lib: { - entry: './src/index.ts', - fileName: 'lit-observable', - formats: ['es'], - }, - rollupOptions: { - external, - }, - }, - resolve: { - alias: { - '@': join(__dirname, 'src'), - }, - }, - server: { - open: true, - }, -}); diff --git a/packages-legacy/sql-ddl-parser/.gitignore b/packages-legacy/sql-ddl-parser/.gitignore deleted file mode 100644 index 1509aadd..00000000 --- a/packages-legacy/sql-ddl-parser/.gitignore +++ /dev/null @@ -1 +0,0 @@ -!types \ No newline at end of file diff --git a/packages-legacy/sql-ddl-parser/LICENSE b/packages-legacy/sql-ddl-parser/LICENSE deleted file mode 100644 index 43469b52..00000000 --- a/packages-legacy/sql-ddl-parser/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2020 SeungHwan-Lee - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/packages-legacy/sql-ddl-parser/package.json b/packages-legacy/sql-ddl-parser/package.json deleted file mode 100644 index 050c8fc8..00000000 --- a/packages-legacy/sql-ddl-parser/package.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "@vuerd/sql-ddl-parser", - "version": "0.2.2", - "private": true, - "description": "Permissive SQL DDL Parser", - "type": "module", - "main": "./dist/sql-ddl-parser.js", - "module": "./dist/sql-ddl-parser.js", - "typings": "./types/index.d.ts", - "exports": { - ".": { - "types": "./types/index.d.ts", - "default": "./dist/sql-ddl-parser.js" - } - }, - "author": "dineug ", - "license": "MIT", - "scripts": { - "build": "vite build", - "test": "vitest run", - "test:dev": "vitest dev" - }, - "devDependencies": { - "typescript": "5.4.5", - "vite": "^5.2.8", - "vitest": "^1.5.0" - } -} diff --git a/packages-legacy/sql-ddl-parser/src/SQLParser.spec.ts b/packages-legacy/sql-ddl-parser/src/SQLParser.spec.ts deleted file mode 100644 index 938ae276..00000000 --- a/packages-legacy/sql-ddl-parser/src/SQLParser.spec.ts +++ /dev/null @@ -1,39 +0,0 @@ -import fs from 'node:fs'; -import path from 'node:path'; - -import { expect, test } from 'vitest'; - -import { parser, tokenizer } from '@/SQLParser'; - -type TestCase = [string, string, string]; -const testCaseList: Array = []; -function setupCase() { - const sqlDDLTestCase = fs.readFileSync( - path.join(__dirname, './SQL_DDL_Test_Case.md'), - 'utf8' - ); - const testCases = sqlDDLTestCase - .split('### ') - .slice(1) - .map(value => `### ${value}`); - testCases.forEach(testCase => { - const caseName = /###.*/.exec(testCase); - if (caseName) { - const center = testCase.search(/```\s/); - const jsonString = testCase.slice(center + 3); - const sql = testCase.substring(testCase.search(/```sql/) + 6, center); - const json = jsonString.substring( - jsonString.search(/```json/) + 7, - jsonString.search(/```\s/) - ); - testCaseList.push([caseName.toString(), sql, JSON.parse(json)]); - } - }); -} -setupCase(); - -test.each(testCaseList)('%s', (_, sql, json) => { - const tokens = tokenizer(sql); - const statements = parser(tokens); - expect(json).toEqual({ statements }); -}); diff --git a/packages-legacy/sql-ddl-parser/src/SQLParser.ts b/packages-legacy/sql-ddl-parser/src/SQLParser.ts deleted file mode 100644 index 11294524..00000000 --- a/packages-legacy/sql-ddl-parser/src/SQLParser.ts +++ /dev/null @@ -1,240 +0,0 @@ -import { Statement, Token } from '@@types/index'; - -import { alterTableAddForeignKey } from './sqlParser/alter.table.add.foreignKey'; -import { alterTableAddPrimaryKey } from './sqlParser/alter.table.add.primaryKey'; -import { alterTableAddUnique } from './sqlParser/alter.table.add.unique'; -import { createIndex } from './sqlParser/create.index'; -import { createTable } from './sqlParser/create.table'; -import { createUniqueIndex } from './sqlParser/create.unique.index'; -import { - isAlterTableAddForeignKey, - isAlterTableAddPrimaryKey, - isAlterTableAddUnique, - isCreateIndex, - isCreateTable, - isCreateUniqueIndex, - isExtraString, - isNewStatement, - isSemicolon, - isStringKeyword, - tokenMatch, -} from './sqlParser/SQLParserHelper'; - -/** - * https://github.com/jamiebuilds/the-super-tiny-compiler - */ -export function tokenizer(input: string): Token[] { - let current = 0; - - const tokens: Token[] = []; - - while (current < input.length) { - let char = input[current]; - - if (tokenMatch.whiteSpace.test(char)) { - current++; - continue; - } - - if (char === tokenMatch.leftParen) { - tokens.push({ - type: 'leftParen', - value: '(', - }); - current++; - continue; - } - - if (char === tokenMatch.rightParen) { - tokens.push({ - type: 'rightParen', - value: ')', - }); - current++; - continue; - } - - if (char === tokenMatch.comma) { - tokens.push({ - type: 'comma', - value: ',', - }); - current++; - continue; - } - - if (char === tokenMatch.period) { - tokens.push({ - type: 'period', - value: '.', - }); - current++; - continue; - } - - if (char === tokenMatch.equal) { - tokens.push({ - type: 'equal', - value: '=', - }); - current++; - continue; - } - - if (char === tokenMatch.semicolon) { - tokens.push({ - type: 'semicolon', - value: ';', - }); - current++; - continue; - } - - if (char === tokenMatch.doubleQuote) { - let value = ''; - - char = input[++current]; - - while (char !== tokenMatch.doubleQuote) { - value += char; - char = input[++current]; - } - - char = input[++current]; - - tokens.push({ type: 'doubleQuoteString', value }); - - continue; - } - - if (char === tokenMatch.singleQuote) { - let value = ''; - - char = input[++current]; - - while (char !== tokenMatch.singleQuote) { - value += char; - char = input[++current]; - } - - char = input[++current]; - - tokens.push({ type: 'singleQuoteString', value }); - - continue; - } - - if (char === tokenMatch.backtick) { - let value = ''; - - char = input[++current]; - - while (char !== tokenMatch.backtick) { - value += char; - char = input[++current]; - } - - char = input[++current]; - - tokens.push({ type: 'backtickString', value }); - - continue; - } - - if (tokenMatch.string.test(char)) { - let value = ''; - - while (tokenMatch.string.test(char)) { - value += char; - char = input[++current]; - } - - tokens.push({ type: 'string', value }); - - continue; - } - - if (tokenMatch.unknown.test(char)) { - let value = ''; - - while (tokenMatch.unknown.test(char)) { - value += char; - char = input[++current]; - } - - tokens.push({ type: 'unknown', value }); - - continue; - } - - current++; - } - - tokens.forEach(token => { - if (isExtraString(token)) { - token.type = 'string'; - } else if (isStringKeyword(token)) { - token.type = 'keyword'; - } - }); - - return tokens; -} - -export function parser(tokens: Token[]): Statement[] { - let current = 0; - - const tokenStatements: Array> = []; - const statements: Statement[] = []; - - while (current < tokens.length) { - let token = tokens[current]; - - if (isNewStatement(token)) { - const statement: Token[] = []; - - statement.push(token); - token = tokens[++current]; - - while ( - current < tokens.length && - !isNewStatement(token) && - !isSemicolon(token) - ) { - statement.push(token); - token = tokens[++current]; - } - - tokenStatements.push(statement); - } - - if (token && isNewStatement(token)) { - continue; - } - - current++; - } - - tokenStatements.forEach(tokenStatement => { - if (isCreateTable(tokenStatement)) { - statements.push(createTable(tokenStatement)); - } else if (isCreateIndex(tokenStatement)) { - statements.push(createIndex(tokenStatement)); - } else if (isCreateUniqueIndex(tokenStatement)) { - statements.push(createUniqueIndex(tokenStatement)); - } else if (isAlterTableAddPrimaryKey(tokenStatement)) { - statements.push(alterTableAddPrimaryKey(tokenStatement)); - } else if (isAlterTableAddForeignKey(tokenStatement)) { - statements.push(alterTableAddForeignKey(tokenStatement)); - } else if (isAlterTableAddUnique(tokenStatement)) { - statements.push(alterTableAddUnique(tokenStatement)); - } - }); - - return statements; -} - -export function DDLParser(input: string): Statement[] { - const tokens = tokenizer(input); - return parser(tokens); -} diff --git a/packages-legacy/sql-ddl-parser/src/SQL_DDL_Test_Case.md b/packages-legacy/sql-ddl-parser/src/SQL_DDL_Test_Case.md deleted file mode 100644 index 378f99c1..00000000 --- a/packages-legacy/sql-ddl-parser/src/SQL_DDL_Test_Case.md +++ /dev/null @@ -1,884 +0,0 @@ -# SQL DDL Test Case - -## Support DataType - -- MySQL / MariaDB - - > bigint - > binary - > bit - > blob - > bool - > boolean - > char - > date - > datetime - > dec - > decimal - > double - > enum - > fixed - > float - > geometry - > geometrycollection - > int - > integer - > json - > linestring - > longblob - > longtext - > mediumblob - > mediumint - > mediumtext - > multilinestring - > multipoint - > multipolygon - > numeric - > point - > polygon - > real - > set - > smallint - > text - > time - > timestamp - > tinyblob - > tinyint - > tinytext - > varbinary - > varchar - > year - -- MSSQL - - > bigint - > binary - > bit - > char - > date - > datetime - > datetime2 - > datetimeoffset - > decimal - > float - > geography - > geometry - > image - > int - > money - > nchar - > ntext - > numeric - > nvarchar - > real - > smalldatetime - > smallint - > smallmoney - > sql_variant - > text - > time - > tinyint - > uniqueidentifier - > varbinary - > varchar - > xml - -- Oracle - - > bfile - > binary_double - > binary_float - > blob - > char - > clob - > date - > datetime - > long - > nchar - > nclob - > number - > nvarchar2 - > raw - > timestamp - > uritype - > varchar - > varchar2 - > xmltype - -- PostgreSQL - - > bigint - > bigserial - > bit - > bool - > boolean - > box - > bytea - > char - > character - > cidr - > circle - > date - > decimal - > float4 - > float8 - > inet - > int - > int2 - > int4 - > int8 - > integer - > interval - > json - > jsonb - > line - > lseg - > macaddr - > macaddr8 - > money - > numeric - > path - > pg_lsn - > point - > polygon - > real - > serial - > serial2 - > serial4 - > serial8 - > smallint - > smallserial - > text - > time - > timestamp - > timestamptz - > timetz - > tsquery - > tsvector - > txid_snapshot - > uuid - > varbit - > varchar - > xml - -- SQLite - > blob - > integer - > numeric - > real - > text - -## Support Syntax - -### Basics - -```sql -CREATE TABLE a ( - b bigint -) -``` - -```json -{ - "statements": [ - { - "type": "create.table", - "name": "a", - "comment": "", - "columns": [ - { - "name": "b", - "dataType": "bigint", - "default": "", - "comment": "", - "primaryKey": false, - "autoIncrement": false, - "unique": false, - "nullable": true - } - ], - "indexes": [], - "foreignKeys": [] - } - ] -} -``` - -### Double Quote - -```sql -CREATE TABLE "a" ( - "b" bigint -) -``` - -```json -{ - "statements": [ - { - "type": "create.table", - "name": "a", - "comment": "", - "columns": [ - { - "name": "b", - "dataType": "bigint", - "default": "", - "comment": "", - "primaryKey": false, - "autoIncrement": false, - "unique": false, - "nullable": true - } - ], - "indexes": [], - "foreignKeys": [] - } - ] -} -``` - -### Single Quote - -```sql -CREATE TABLE 'a' ( - 'b' bigint -) -``` - -```json -{ - "statements": [ - { - "type": "create.table", - "name": "a", - "comment": "", - "columns": [ - { - "name": "b", - "dataType": "bigint", - "default": "", - "comment": "", - "primaryKey": false, - "autoIncrement": false, - "unique": false, - "nullable": true - } - ], - "indexes": [], - "foreignKeys": [] - } - ] -} -``` - -### Backtick - -```sql -CREATE TABLE `a` ( - `b` bigint -) -``` - -```json -{ - "statements": [ - { - "type": "create.table", - "name": "a", - "comment": "", - "columns": [ - { - "name": "b", - "dataType": "bigint", - "default": "", - "comment": "", - "primaryKey": false, - "autoIncrement": false, - "unique": false, - "nullable": true - } - ], - "indexes": [], - "foreignKeys": [] - } - ] -} -``` - -### database.table - -```sql -CREATE TABLE test.a ( - b bigint -) -``` - -```json -{ - "statements": [ - { - "type": "create.table", - "name": "a", - "comment": "", - "columns": [ - { - "name": "b", - "dataType": "bigint", - "default": "", - "comment": "", - "primaryKey": false, - "autoIncrement": false, - "unique": false, - "nullable": true - } - ], - "indexes": [], - "foreignKeys": [] - } - ] -} -``` - -### Column Options - -```sql -CREATE TABLE a ( - b varchar(255) NOT NULL DEFAULT 'c' COMMENT 'd' PRIMARY KEY AUTO_INCREMENT UNIQUE -) -``` - -```json -{ - "statements": [ - { - "type": "create.table", - "name": "a", - "comment": "", - "columns": [ - { - "name": "b", - "dataType": "varchar(255)", - "default": "c", - "comment": "d", - "primaryKey": true, - "autoIncrement": true, - "unique": true, - "nullable": false - } - ], - "indexes": [], - "foreignKeys": [] - } - ] -} -``` - -### Column PRIMARY KEY - -```sql -CREATE TABLE a ( - b varchar(255), - c int, - PRIMARY KEY(b, c) -) -CREATE TABLE b ( - b varchar(255), - c int, - CONSTRAINT PK_B PRIMARY KEY(b, c) -) -``` - -```json -{ - "statements": [ - { - "type": "create.table", - "name": "a", - "comment": "", - "columns": [ - { - "name": "b", - "dataType": "varchar(255)", - "default": "", - "comment": "", - "primaryKey": true, - "autoIncrement": false, - "unique": false, - "nullable": true - }, - { - "name": "c", - "dataType": "int", - "default": "", - "comment": "", - "primaryKey": true, - "autoIncrement": false, - "unique": false, - "nullable": true - } - ], - "indexes": [], - "foreignKeys": [] - }, - { - "type": "create.table", - "name": "b", - "comment": "", - "columns": [ - { - "name": "b", - "dataType": "varchar(255)", - "default": "", - "comment": "", - "primaryKey": true, - "autoIncrement": false, - "unique": false, - "nullable": true - }, - { - "name": "c", - "dataType": "int", - "default": "", - "comment": "", - "primaryKey": true, - "autoIncrement": false, - "unique": false, - "nullable": true - } - ], - "indexes": [], - "foreignKeys": [] - } - ] -} -``` - -### Column UNIQUE - -```sql -CREATE TABLE a ( - b varchar(255), - c int, - UNIQUE(b, c) -) -CREATE TABLE b ( - b varchar(255), - c int, - CONSTRAINT UC_B UNIQUE(b, c) -) -``` - -```json -{ - "statements": [ - { - "type": "create.table", - "name": "a", - "comment": "", - "columns": [ - { - "name": "b", - "dataType": "varchar(255)", - "default": "", - "comment": "", - "primaryKey": false, - "autoIncrement": false, - "unique": true, - "nullable": true - }, - { - "name": "c", - "dataType": "int", - "default": "", - "comment": "", - "primaryKey": false, - "autoIncrement": false, - "unique": true, - "nullable": true - } - ], - "indexes": [], - "foreignKeys": [] - }, - { - "type": "create.table", - "name": "b", - "comment": "", - "columns": [ - { - "name": "b", - "dataType": "varchar(255)", - "default": "", - "comment": "", - "primaryKey": false, - "autoIncrement": false, - "unique": true, - "nullable": true - }, - { - "name": "c", - "dataType": "int", - "default": "", - "comment": "", - "primaryKey": false, - "autoIncrement": false, - "unique": true, - "nullable": true - } - ], - "indexes": [], - "foreignKeys": [] - } - ] -} -``` - -### Column INDEX - -```sql -CREATE TABLE a ( - b varchar(255), - c int, - INDEX IDX_A (b DESC, c ASC) -) -``` - -```json -{ - "statements": [ - { - "type": "create.table", - "name": "a", - "comment": "", - "columns": [ - { - "name": "b", - "dataType": "varchar(255)", - "default": "", - "comment": "", - "primaryKey": false, - "autoIncrement": false, - "unique": false, - "nullable": true - }, - { - "name": "c", - "dataType": "int", - "default": "", - "comment": "", - "primaryKey": false, - "autoIncrement": false, - "unique": false, - "nullable": true - } - ], - "indexes": [ - { - "name": "IDX_A", - "unique": false, - "columns": [ - { - "name": "b", - "sort": "DESC" - }, - { - "name": "c", - "sort": "ASC" - } - ] - } - ], - "foreignKeys": [] - } - ] -} -``` - -### Column PRIMARY KEY, UNIQUE KEY, KEY - -```sql -CREATE TABLE 'users' ( - 'id' bigint unsigned NOT NULL AUTO_INCREMENT, - 'name' varchar(30) NOT NULL, - 'email' varchar(30) NOT NULL, - PRIMARY KEY ('id'), - UNIQUE KEY 'users_email_unique' ('email'), - KEY 'test_name_index' ('name'), -); -``` - -```json -{ - "statements": [ - { - "columns": [ - { - "autoIncrement": true, - "comment": "", - "dataType": "bigint", - "default": "", - "name": "id", - "nullable": false, - "primaryKey": true, - "unique": false - }, - { - "autoIncrement": false, - "comment": "", - "dataType": "varchar(30)", - "default": "", - "name": "name", - "nullable": false, - "primaryKey": false, - "unique": false - }, - { - "autoIncrement": false, - "comment": "", - "dataType": "varchar(30)", - "default": "", - "name": "email", - "nullable": false, - "primaryKey": false, - "unique": true - } - ], - "comment": "", - "foreignKeys": [], - "indexes": [ - { - "columns": [ - { - "name": "name", - "sort": "ASC" - } - ], - "name": "test_name_index", - "unique": false - } - ], - "name": "users", - "type": "create.table" - } - ] -} -``` - -### Column FOREIGN KEY - -```sql -CREATE TABLE a ( - b varchar(255), - c int, - FOREIGN KEY(b, c) REFERENCES b (b, c) -) -CREATE TABLE b ( - b varchar(255), - c int, - CONSTRAINT FK_B FOREIGN KEY(b, c) REFERENCES a (b, c) -) -``` - -```json -{ - "statements": [ - { - "type": "create.table", - "name": "a", - "comment": "", - "columns": [ - { - "name": "b", - "dataType": "varchar(255)", - "default": "", - "comment": "", - "primaryKey": false, - "autoIncrement": false, - "unique": false, - "nullable": true - }, - { - "name": "c", - "dataType": "int", - "default": "", - "comment": "", - "primaryKey": false, - "autoIncrement": false, - "unique": false, - "nullable": true - } - ], - "indexes": [], - "foreignKeys": [ - { - "columnNames": ["b", "c"], - "refTableName": "b", - "refColumnNames": ["b", "c"] - } - ] - }, - { - "type": "create.table", - "name": "b", - "comment": "", - "columns": [ - { - "name": "b", - "dataType": "varchar(255)", - "default": "", - "comment": "", - "primaryKey": false, - "autoIncrement": false, - "unique": false, - "nullable": true - }, - { - "name": "c", - "dataType": "int", - "default": "", - "comment": "", - "primaryKey": false, - "autoIncrement": false, - "unique": false, - "nullable": true - } - ], - "indexes": [], - "foreignKeys": [ - { - "columnNames": ["b", "c"], - "refTableName": "a", - "refColumnNames": ["b", "c"] - } - ] - } - ] -} -``` - -### CREATE INDEX - -```sql -CREATE INDEX IDX_A on A (a, b DESC) -CREATE UNIQUE INDEX IDX_B on B (a, b DESC) -``` - -```json -{ - "statements": [ - { - "type": "create.index", - "name": "IDX_A", - "unique": false, - "tableName": "A", - "columns": [ - { - "name": "a", - "sort": "ASC" - }, - { - "name": "b", - "sort": "DESC" - } - ] - }, - { - "type": "create.index", - "name": "IDX_B", - "unique": true, - "tableName": "B", - "columns": [ - { - "name": "a", - "sort": "ASC" - }, - { - "name": "b", - "sort": "DESC" - } - ] - } - ] -} -``` - -### Alter Table Add PRIMARY KEY - -```sql -ALTER TABLE Persons ADD PRIMARY KEY (ID) -ALTER TABLE Persons ADD CONSTRAINT PK_Person PRIMARY KEY (ID,LastName) -``` - -```json -{ - "statements": [ - { - "type": "alter.table.add.primaryKey", - "name": "Persons", - "columnNames": ["ID"] - }, - { - "type": "alter.table.add.primaryKey", - "name": "Persons", - "columnNames": ["ID", "LastName"] - } - ] -} -``` - -### Alter Table Add FOREIGN KEY - -```sql -ALTER TABLE Orders -ADD FOREIGN KEY (PersonID) REFERENCES Persons(PersonID) - -ALTER TABLE Orders -ADD CONSTRAINT FK_PersonOrder -FOREIGN KEY (PersonID) REFERENCES Persons(PersonID) -``` - -```json -{ - "statements": [ - { - "type": "alter.table.add.foreignKey", - "name": "Orders", - "columnNames": ["PersonID"], - "refTableName": "Persons", - "refColumnNames": ["PersonID"] - }, - { - "type": "alter.table.add.foreignKey", - "name": "Orders", - "columnNames": ["PersonID"], - "refTableName": "Persons", - "refColumnNames": ["PersonID"] - } - ] -} -``` - -### Alter Table Add UNIQUE - -```sql -ALTER TABLE Persons ADD UNIQUE (ID) -ALTER TABLE Persons ADD CONSTRAINT UC_Person UNIQUE (ID,LastName) -``` - -```json -{ - "statements": [ - { - "type": "alter.table.add.unique", - "name": "Persons", - "columnNames": ["ID"] - }, - { - "type": "alter.table.add.unique", - "name": "Persons", - "columnNames": ["ID", "LastName"] - } - ] -} -``` diff --git a/packages-legacy/sql-ddl-parser/src/index.ts b/packages-legacy/sql-ddl-parser/src/index.ts deleted file mode 100644 index aec50039..00000000 --- a/packages-legacy/sql-ddl-parser/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './SQLParser'; diff --git a/packages-legacy/sql-ddl-parser/src/sqlParser/SQLParserHelper.ts b/packages-legacy/sql-ddl-parser/src/sqlParser/SQLParserHelper.ts deleted file mode 100644 index c60953f8..00000000 --- a/packages-legacy/sql-ddl-parser/src/sqlParser/SQLParserHelper.ts +++ /dev/null @@ -1,302 +0,0 @@ -import { Token } from '@@types/index'; - -import { MariaDBTypes } from './dataType/MariaDB'; -import { MSSQLTypes } from './dataType/MSSQL'; -import { MySQLTypes } from './dataType/MySQL'; -import { OracleTypes } from './dataType/Oracle'; -import { PostgreSQLTypes } from './dataType/PostgreSQL'; -import { SQLiteTypes } from './dataType/SQLite'; -import { MariaDBKeywords } from './keyword/MariaDB'; -import { MSSQLKeywords } from './keyword/MSSQL'; -import { MySQLKeywords } from './keyword/MySQL'; -import { OracleKeywords } from './keyword/Oracle'; -import { PostgreSQLKeywords } from './keyword/PostgreSQL'; -import { SQLiteKeywords } from './keyword/SQLite'; - -export interface Current { - value: number; -} - -export const tokenMatch = { - whiteSpace: /(?:\s+|#.*|-- +.*|\/\*(?:[\s\S])*?\*\/)+/, - leftParen: '(', - rightParen: ')', - comma: ',', - period: '.', - equal: '=', - semicolon: ';', - doubleQuote: `"`, - singleQuote: `'`, - backtick: '`', - keywords: getKeywords(), - // number, english, korean, chinese, japanese - string: - /[a-z0-9_\u3131-\u314E\u314F-\u3163\uAC00-\uD7A3\u3040-\u309F\u30A0-\u30FF\u3400-\u4DB5\u4E00-\u9FCC]/i, - unknown: /.+/, - dataTypes: getDataTypes(), -}; - -function getDataTypes(): string[] { - const keywords: string[] = [ - ...MariaDBTypes, - ...MSSQLTypes, - ...MySQLTypes, - ...OracleTypes, - ...PostgreSQLTypes, - ...SQLiteTypes, - ]; - return Array.from(new Set(keywords.map(keyword => keyword.toUpperCase()))); -} - -function getKeywords(): string[] { - const keywords: string[] = [ - ...MariaDBKeywords, - ...MSSQLKeywords, - ...MySQLKeywords, - ...OracleKeywords, - ...PostgreSQLKeywords, - ...SQLiteKeywords, - ...getDataTypes(), - ]; - return Array.from(new Set(keywords.map(keyword => keyword.toUpperCase()))); -} - -export function keywordEqual(token: Token, value: string): boolean { - return ( - token.type === 'keyword' && - token.value.toUpperCase() === value.toUpperCase() - ); -} - -export function isExtraString(token?: Token): boolean { - if (!token) return false; - return ( - token.type === 'doubleQuoteString' || - token.type === 'singleQuoteString' || - token.type === 'backtickString' - ); -} - -export function isStringKeyword(token?: Token): boolean { - if (!token) return false; - const value = token.value.toUpperCase(); - return token.type === 'string' && tokenMatch.keywords.includes(value); -} - -export function isKeyword(token?: Token): boolean { - if (!token) return false; - return token.type === 'keyword'; -} - -export function isString(token?: Token): boolean { - if (!token) return false; - return token.type === 'string'; -} - -export function isPeriod(token?: Token): boolean { - if (!token) return false; - return token.type === 'period'; -} - -export function isLeftParen(token?: Token): boolean { - if (!token) return false; - return token.type === 'leftParen'; -} - -export function isRightParen(token?: Token): boolean { - if (!token) return false; - return token.type === 'rightParen'; -} - -export function isSemicolon(token?: Token): boolean { - if (!token) return false; - return token.type === 'semicolon'; -} - -export function isComma(token?: Token): boolean { - if (!token) return false; - return token.type === 'comma'; -} - -export function isCurrent(list: T[], current: number): boolean { - return list.length > current; -} - -export function isNewStatement(token?: Token): boolean { - if (!token) return false; - return ( - keywordEqual(token, 'CREATE') || - keywordEqual(token, 'ALTER') || - keywordEqual(token, 'DROP') || - keywordEqual(token, 'USE') || - keywordEqual(token, 'RENAME') || - keywordEqual(token, 'DELETE') || - keywordEqual(token, 'SELECT') - ); -} - -export function isCreateTable(tokens: Token[]): boolean { - return ( - tokens.length > 2 && - keywordEqual(tokens[0], 'CREATE') && - keywordEqual(tokens[1], 'TABLE') - ); -} - -export function isCreateIndex(tokens: Token[]): boolean { - return ( - tokens.length > 2 && - keywordEqual(tokens[0], 'CREATE') && - keywordEqual(tokens[1], 'INDEX') - ); -} - -export function isCreateUniqueIndex(tokens: Token[]): boolean { - return ( - tokens.length > 3 && - keywordEqual(tokens[0], 'CREATE') && - keywordEqual(tokens[1], 'UNIQUE') && - keywordEqual(tokens[2], 'INDEX') - ); -} - -export function isAlterTableAddPrimaryKey(tokens: Token[]): boolean { - return ( - (tokens.length > 6 && - keywordEqual(tokens[0], 'ALTER') && - keywordEqual(tokens[1], 'TABLE') && - keywordEqual(tokens[3], 'ADD') && - keywordEqual(tokens[4], 'PRIMARY') && - keywordEqual(tokens[5], 'KEY')) || - (tokens.length > 8 && - keywordEqual(tokens[0], 'ALTER') && - keywordEqual(tokens[1], 'TABLE') && - keywordEqual(tokens[3], 'ADD') && - keywordEqual(tokens[4], 'CONSTRAINT') && - keywordEqual(tokens[6], 'PRIMARY') && - keywordEqual(tokens[7], 'KEY')) - ); -} - -export function isAlterTableAddForeignKey(tokens: Token[]): boolean { - return ( - (tokens.length > 6 && - keywordEqual(tokens[0], 'ALTER') && - keywordEqual(tokens[1], 'TABLE') && - keywordEqual(tokens[3], 'ADD') && - keywordEqual(tokens[4], 'FOREIGN') && - keywordEqual(tokens[5], 'KEY')) || - (tokens.length > 8 && - keywordEqual(tokens[0], 'ALTER') && - keywordEqual(tokens[1], 'TABLE') && - keywordEqual(tokens[3], 'ADD') && - keywordEqual(tokens[4], 'CONSTRAINT') && - keywordEqual(tokens[6], 'FOREIGN') && - keywordEqual(tokens[7], 'KEY')) - ); -} - -export function isAlterTableAddUnique(tokens: Token[]): boolean { - return ( - (tokens.length > 5 && - keywordEqual(tokens[0], 'ALTER') && - keywordEqual(tokens[1], 'TABLE') && - keywordEqual(tokens[3], 'ADD') && - keywordEqual(tokens[4], 'UNIQUE')) || - (tokens.length > 7 && - keywordEqual(tokens[0], 'ALTER') && - keywordEqual(tokens[1], 'TABLE') && - keywordEqual(tokens[3], 'ADD') && - keywordEqual(tokens[4], 'CONSTRAINT') && - keywordEqual(tokens[6], 'UNIQUE')) - ); -} - -export function isDataType(token?: Token): boolean { - if (!token) return false; - const value = token.value.toUpperCase(); - return token.type === 'keyword' && tokenMatch.dataTypes.includes(value); -} - -export function isNot(token?: Token): boolean { - if (!token) return false; - return keywordEqual(token, 'NOT'); -} - -export function isNull(token?: Token): boolean { - if (!token) return false; - return keywordEqual(token, 'NULL'); -} - -export function isDefault(token?: Token): boolean { - if (!token) return false; - return keywordEqual(token, 'DEFAULT'); -} - -export function isComment(token?: Token): boolean { - if (!token) return false; - return keywordEqual(token, 'COMMENT'); -} - -export function isAutoIncrement(token?: Token): boolean { - if (!token) return false; - return ( - keywordEqual(token, 'AUTO_INCREMENT') || - keywordEqual(token, 'AUTOINCREMENT') - ); -} - -export function isPrimary(token?: Token): boolean { - if (!token) return false; - return keywordEqual(token, 'PRIMARY'); -} - -export function isKey(token?: Token): boolean { - if (!token) return false; - return keywordEqual(token, 'KEY'); -} - -export function isUnique(token?: Token): boolean { - if (!token) return false; - return keywordEqual(token, 'UNIQUE'); -} - -export function isConstraint(token?: Token): boolean { - if (!token) return false; - return keywordEqual(token, 'CONSTRAINT'); -} - -export function isIndex(token?: Token): boolean { - if (!token) return false; - return keywordEqual(token, 'INDEX'); -} - -export function isForeign(token?: Token): boolean { - if (!token) return false; - return keywordEqual(token, 'FOREIGN'); -} - -export function isReferences(token?: Token): boolean { - if (!token) return false; - return keywordEqual(token, 'REFERENCES'); -} - -export function isASC(token?: Token): boolean { - if (!token) return false; - return keywordEqual(token, 'ASC'); -} - -export function isDESC(token?: Token): boolean { - if (!token) return false; - return keywordEqual(token, 'DESC'); -} - -export function isOn(token?: Token): boolean { - if (!token) return false; - return keywordEqual(token, 'ON'); -} - -export function isTable(token?: Token): boolean { - if (!token) return false; - return keywordEqual(token, 'TABLE'); -} diff --git a/packages-legacy/sql-ddl-parser/src/sqlParser/alter.table.add.foreignKey.ts b/packages-legacy/sql-ddl-parser/src/sqlParser/alter.table.add.foreignKey.ts deleted file mode 100644 index 8c11014d..00000000 --- a/packages-legacy/sql-ddl-parser/src/sqlParser/alter.table.add.foreignKey.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { AlterTableAddForeignKey, Token } from '@@types/index'; - -import { parserForeignKey } from './create.table'; -import { - Current, - isConstraint, - isCurrent, - isForeign, - isPeriod, - isString, - isTable, -} from './SQLParserHelper'; - -export function alterTableAddForeignKey( - tokens: Token[] -): AlterTableAddForeignKey { - const current: Current = { value: 0 }; - - const ast: AlterTableAddForeignKey = { - type: 'alter.table.add.foreignKey', - name: '', - columnNames: [], - refTableName: '', - refColumnNames: [], - }; - - while (isCurrent(tokens, current.value)) { - let token = tokens[current.value]; - - if (isTable(token)) { - token = tokens[++current.value]; - - if (isString(token)) { - ast.name = token.value; - - token = tokens[++current.value]; - - if (isPeriod(token)) { - token = tokens[++current.value]; - - if (isString(token)) { - ast.name = token.value; - current.value++; - } - } - } - - continue; - } - - if (isConstraint(token)) { - token = tokens[++current.value]; - - if (isString(token)) { - current.value++; - } - - continue; - } - - if (isForeign(token)) { - const foreignKey = parserForeignKey(tokens, current); - - if (foreignKey) { - ast.columnNames = foreignKey.columnNames; - ast.refTableName = foreignKey.refTableName; - ast.refColumnNames = foreignKey.refColumnNames; - } - - continue; - } - - current.value++; - } - - return ast; -} diff --git a/packages-legacy/sql-ddl-parser/src/sqlParser/alter.table.add.primaryKey.ts b/packages-legacy/sql-ddl-parser/src/sqlParser/alter.table.add.primaryKey.ts deleted file mode 100644 index 5fc8f571..00000000 --- a/packages-legacy/sql-ddl-parser/src/sqlParser/alter.table.add.primaryKey.ts +++ /dev/null @@ -1,87 +0,0 @@ -import { AlterTableAddPrimaryKey, Token } from '@@types/index'; - -import { - isConstraint, - isCurrent, - isKey, - isLeftParen, - isPeriod, - isPrimary, - isRightParen, - isString, - isTable, -} from './SQLParserHelper'; - -export function alterTableAddPrimaryKey( - tokens: Token[] -): AlterTableAddPrimaryKey { - let current = 0; - - const ast: AlterTableAddPrimaryKey = { - type: 'alter.table.add.primaryKey', - name: '', - columnNames: [], - }; - - while (isCurrent(tokens, current)) { - let token = tokens[current]; - - if (isTable(token)) { - token = tokens[++current]; - - if (isString(token)) { - ast.name = token.value; - - token = tokens[++current]; - - if (isPeriod(token)) { - token = tokens[++current]; - - if (isString(token)) { - ast.name = token.value; - current++; - } - } - } - - continue; - } - - if (isConstraint(token)) { - token = tokens[++current]; - - if (isString(token)) { - current++; - } - - continue; - } - - if (isPrimary(token)) { - token = tokens[++current]; - - if (isKey(token)) { - token = tokens[++current]; - - if (isLeftParen(token)) { - token = tokens[++current]; - - while (isCurrent(tokens, current) && !isRightParen(token)) { - if (isString(token)) { - ast.columnNames.push(token.value); - } - token = tokens[++current]; - } - - token = tokens[++current]; - } - } - - continue; - } - - current++; - } - - return ast; -} diff --git a/packages-legacy/sql-ddl-parser/src/sqlParser/alter.table.add.unique.ts b/packages-legacy/sql-ddl-parser/src/sqlParser/alter.table.add.unique.ts deleted file mode 100644 index 2278d46c..00000000 --- a/packages-legacy/sql-ddl-parser/src/sqlParser/alter.table.add.unique.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { AlterTableAddUnique, Token } from '@@types/index'; - -import { - isConstraint, - isCurrent, - isLeftParen, - isPeriod, - isRightParen, - isString, - isTable, - isUnique, -} from './SQLParserHelper'; - -export function alterTableAddUnique(tokens: Token[]): AlterTableAddUnique { - let current = 0; - - const ast: AlterTableAddUnique = { - type: 'alter.table.add.unique', - name: '', - columnNames: [], - }; - - while (isCurrent(tokens, current)) { - let token = tokens[current]; - - if (isTable(token)) { - token = tokens[++current]; - - if (isString(token)) { - ast.name = token.value; - - token = tokens[++current]; - - if (isPeriod(token)) { - token = tokens[++current]; - - if (isString(token)) { - ast.name = token.value; - current++; - } - } - } - - continue; - } - - if (isConstraint(token)) { - token = tokens[++current]; - - if (isString(token)) { - current++; - } - - continue; - } - - if (isUnique(token)) { - token = tokens[++current]; - - if (isLeftParen(token)) { - token = tokens[++current]; - - while (isCurrent(tokens, current) && !isRightParen(token)) { - if (isString(token)) { - ast.columnNames.push(token.value); - } - token = tokens[++current]; - } - - current++; - } - - continue; - } - - current++; - } - - return ast; -} diff --git a/packages-legacy/sql-ddl-parser/src/sqlParser/create.index.ts b/packages-legacy/sql-ddl-parser/src/sqlParser/create.index.ts deleted file mode 100644 index 418a04f3..00000000 --- a/packages-legacy/sql-ddl-parser/src/sqlParser/create.index.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { CreateIndex, IndexColumn, Token } from '@@types/index'; - -import { - isComma, - isCurrent, - isDESC, - isIndex, - isLeftParen, - isOn, - isRightParen, - isString, -} from './SQLParserHelper'; - -export function createIndex(tokens: Token[], unique = false): CreateIndex { - let current = 0; - - const ast: CreateIndex = { - type: 'create.index', - name: '', - unique, - tableName: '', - columns: [], - }; - - while (isCurrent(tokens, current)) { - let token = tokens[current]; - - if (isIndex(token)) { - token = tokens[++current]; - - if (isString(token)) { - ast.name = token.value; - } - - continue; - } - - if (isOn(token)) { - token = tokens[++current]; - - if (isString(token)) { - ast.tableName = token.value; - token = tokens[++current]; - - if (isLeftParen(token)) { - token = tokens[++current]; - let indexColumn: IndexColumn = { - name: '', - sort: 'ASC', - }; - - while (isCurrent(tokens, current) && !isRightParen(token)) { - if (isString(token)) { - indexColumn.name = token.value; - } - if (isDESC(token)) { - indexColumn.sort = 'DESC'; - } - if (isComma(token)) { - ast.columns.push(indexColumn); - indexColumn = { - name: '', - sort: 'ASC', - }; - } - token = tokens[++current]; - } - - if (!ast.columns.includes(indexColumn) && indexColumn.name !== '') { - ast.columns.push(indexColumn); - } - - current++; - } - } - - continue; - } - - current++; - } - - return ast; -} diff --git a/packages-legacy/sql-ddl-parser/src/sqlParser/create.table.ts b/packages-legacy/sql-ddl-parser/src/sqlParser/create.table.ts deleted file mode 100644 index d25930f5..00000000 --- a/packages-legacy/sql-ddl-parser/src/sqlParser/create.table.ts +++ /dev/null @@ -1,439 +0,0 @@ -import { - Column, - CreateTable, - CreateTableColumns, - ForeignKey, - Index, - IndexColumn, - Token, -} from '@@types/index'; - -import { - Current, - isAutoIncrement, - isComma, - isComment, - isConstraint, - isCurrent, - isDataType, - isDefault, - isDESC, - isForeign, - isIndex, - isKey, - isKeyword, - isLeftParen, - isNot, - isNull, - isPeriod, - isPrimary, - isReferences, - isRightParen, - isString, - isUnique, -} from './SQLParserHelper'; - -export function createTable(tokens: Token[]): CreateTable { - const current: Current = { value: 0 }; - - const ast: CreateTable = { - type: 'create.table', - name: '', - comment: '', - columns: [], - indexes: [], - foreignKeys: [], - }; - - while (isCurrent(tokens, current.value)) { - let token = tokens[current.value]; - - if (isLeftParen(token)) { - current.value++; - const { columns, indexes, foreignKeys } = createTableColumns( - tokens, - current - ); - ast.columns = columns; - ast.indexes = indexes; - ast.foreignKeys = foreignKeys; - continue; - } - - if (isString(token) && !ast.name) { - ast.name = token.value; - - token = tokens[++current.value]; - - if (isPeriod(token)) { - token = tokens[++current.value]; - - if (isString(token)) { - ast.name = token.value; - current.value++; - } - } - - continue; - } - - if (isComment(token)) { - token = tokens[++current.value]; - - if (isString(token)) { - ast.comment = token.value; - current.value++; - } - - continue; - } - - current.value++; - } - - return ast; -} - -function createTableColumns( - tokens: Token[], - current: Current -): CreateTableColumns { - const columns: Column[] = []; - const indexes: Index[] = []; - const foreignKeys: ForeignKey[] = []; - const primaryKeyColumnNames: string[] = []; - const uniqueColumnNames: string[] = []; - - let column = { - name: '', - dataType: '', - default: '', - comment: '', - primaryKey: false, - autoIncrement: false, - unique: false, - nullable: true, - }; - - while (isCurrent(tokens, current.value)) { - let token = tokens[current.value]; - - if (isString(token) && !column.name) { - column.name = token.value; - current.value++; - continue; - } - - if (isLeftParen(token)) { - token = tokens[++current.value]; - - while (isCurrent(tokens, current.value) && !isRightParen(token)) { - token = tokens[++current.value]; - } - - current.value++; - continue; - } - - if (isConstraint(token)) { - token = tokens[++current.value]; - - if (isString(token)) { - current.value++; - } - - continue; - } - - if (isPrimary(token)) { - token = tokens[++current.value]; - - if (isKey(token)) { - token = tokens[++current.value]; - - if (isLeftParen(token)) { - token = tokens[++current.value]; - - while (isCurrent(tokens, current.value) && !isRightParen(token)) { - if (isString(token)) { - primaryKeyColumnNames.push(token.value.toUpperCase()); - } - token = tokens[++current.value]; - } - - current.value++; - } else { - column.primaryKey = true; - } - } - - continue; - } - - if (isForeign(token)) { - const foreignKey = parserForeignKey(tokens, current); - - if (foreignKey) { - foreignKeys.push(foreignKey); - } - - continue; - } - - if (isIndex(token) || isKey(token)) { - token = tokens[++current.value]; - - if (isString(token)) { - const name = token.value; - const indexColumns: IndexColumn[] = []; - token = tokens[++current.value]; - - if (isLeftParen(token)) { - token = tokens[++current.value]; - let indexColumn: IndexColumn = { - name: '', - sort: 'ASC', - }; - - while (isCurrent(tokens, current.value) && !isRightParen(token)) { - if (isString(token)) { - indexColumn.name = token.value; - } - if (isDESC(token)) { - indexColumn.sort = 'DESC'; - } - if (isComma(token)) { - indexColumns.push(indexColumn); - indexColumn = { - name: '', - sort: 'ASC', - }; - } - token = tokens[++current.value]; - } - - if (!indexColumns.includes(indexColumn) && indexColumn.name !== '') { - indexColumns.push(indexColumn); - } - - if (indexColumns.length) { - indexes.push({ - name, - unique: false, - columns: indexColumns, - }); - } - - current.value++; - } - } - - continue; - } - - if (isUnique(token)) { - token = tokens[++current.value]; - - if (isKey(token)) { - token = tokens[++current.value]; - } - - if (isString(token)) { - token = tokens[++current.value]; - } - - if (isLeftParen(token)) { - token = tokens[++current.value]; - - while (isCurrent(tokens, current.value) && !isRightParen(token)) { - if (isString(token)) { - uniqueColumnNames.push(token.value.toUpperCase()); - } - token = tokens[++current.value]; - } - - current.value++; - } else { - column.unique = true; - } - - continue; - } - - if (isNot(token)) { - token = tokens[++current.value]; - - if (isNull(token)) { - column.nullable = false; - current.value++; - } - - continue; - } - - if (isDefault(token)) { - token = tokens[++current.value]; - - if (isString(token) || isKeyword(token)) { - column.default = token.value; - current.value++; - } - - continue; - } - - if (isComment(token)) { - token = tokens[++current.value]; - - if (isString(token)) { - column.comment = token.value; - current.value++; - } - - continue; - } - - if (isAutoIncrement(token)) { - column.autoIncrement = true; - current.value++; - continue; - } - - if (isDataType(token)) { - let value = token.value; - token = tokens[++current.value]; - - if (isLeftParen(token)) { - value += '('; - token = tokens[++current.value]; - - while (isCurrent(tokens, current.value) && !isRightParen(token)) { - value += token.value; - token = tokens[++current.value]; - } - - value += ')'; - current.value++; - } - - column.dataType = value; - continue; - } - - if (isComma(token)) { - if (column.name || column.dataType) { - columns.push(column); - } - column = { - name: '', - dataType: '', - default: '', - comment: '', - primaryKey: false, - autoIncrement: false, - unique: false, - nullable: true, - }; - current.value++; - continue; - } - - if (isRightParen(token)) { - current.value++; - break; - } - - current.value++; - } - - if (!columns.includes(column) && (column.name || column.dataType)) { - columns.push(column); - } - - columns.forEach(column => { - if (primaryKeyColumnNames.includes(column.name.toUpperCase())) { - column.primaryKey = true; - } - - if (uniqueColumnNames.includes(column.name.toUpperCase())) { - column.unique = true; - } - }); - - return { - columns, - indexes, - foreignKeys, - }; -} - -export function parserForeignKey( - tokens: Token[], - current: Current -): ForeignKey | null { - const foreignKey: ForeignKey = { - columnNames: [], - refTableName: '', - refColumnNames: [], - }; - - let token = tokens[++current.value]; - - if (isKey(token)) { - token = tokens[++current.value]; - - if (isLeftParen(token)) { - token = tokens[++current.value]; - - while (isCurrent(tokens, current.value) && !isRightParen(token)) { - if (isString(token)) { - foreignKey.columnNames.push(token.value); - } - token = tokens[++current.value]; - } - - token = tokens[++current.value]; - } - - if (isReferences(token)) { - token = tokens[++current.value]; - - if (isString(token)) { - foreignKey.refTableName = token.value; - - token = tokens[++current.value]; - - if (isPeriod(token)) { - token = tokens[++current.value]; - - if (isString(token)) { - foreignKey.refTableName = token.value; - token = tokens[++current.value]; - } - } - - if (isLeftParen(token)) { - token = tokens[++current.value]; - - while (isCurrent(tokens, current.value) && !isRightParen(token)) { - if (isString(token)) { - foreignKey.refColumnNames.push(token.value); - } - token = tokens[++current.value]; - } - - token = tokens[++current.value]; - } - } - } - - if ( - foreignKey.columnNames.length && - foreignKey.columnNames.length === foreignKey.refColumnNames.length - ) { - return foreignKey; - } - } - - return null; -} diff --git a/packages-legacy/sql-ddl-parser/src/sqlParser/create.unique.index.ts b/packages-legacy/sql-ddl-parser/src/sqlParser/create.unique.index.ts deleted file mode 100644 index e3a633f4..00000000 --- a/packages-legacy/sql-ddl-parser/src/sqlParser/create.unique.index.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { CreateIndex, Token } from '@@types/index'; - -import { createIndex } from './create.index'; - -export function createUniqueIndex(tokens: Token[]): CreateIndex { - return createIndex(tokens, true); -} diff --git a/packages-legacy/sql-ddl-parser/src/sqlParser/dataType/MSSQL.ts b/packages-legacy/sql-ddl-parser/src/sqlParser/dataType/MSSQL.ts deleted file mode 100644 index ae774347..00000000 --- a/packages-legacy/sql-ddl-parser/src/sqlParser/dataType/MSSQL.ts +++ /dev/null @@ -1,36 +0,0 @@ -/** - * https://docs.microsoft.com/ko-kr/sql/t-sql/data-types/data-types-transact-sql?view=sql-server-ver15 - */ -export const MSSQLTypes: string[] = [ - 'BIGINT', - 'BINARY', - 'BIT', - 'CHAR', - 'DATE', - 'DATETIME', - 'DATETIME2', - 'DATETIMEOFFSET', - 'DECIMAL', - 'FLOAT', - 'GEOGRAPHY', - 'GEOMETRY', - 'IMAGE', - 'INT', - 'MONEY', - 'NCHAR', - 'NTEXT', - 'NUMERIC', - 'NVARCHAR', - 'REAL', - 'SMALLDATETIME', - 'SMALLINT', - 'SMALLMONEY', - 'SQL_VARIANT', - 'TEXT', - 'TIME', - 'TINYINT', - 'UNIQUEIDENTIFIER', - 'VARBINARY', - 'VARCHAR', - 'XML', -]; diff --git a/packages-legacy/sql-ddl-parser/src/sqlParser/dataType/MariaDB.ts b/packages-legacy/sql-ddl-parser/src/sqlParser/dataType/MariaDB.ts deleted file mode 100644 index ed852012..00000000 --- a/packages-legacy/sql-ddl-parser/src/sqlParser/dataType/MariaDB.ts +++ /dev/null @@ -1,50 +0,0 @@ -/** - * https://mariadb.com/kb/en/data-types/ - */ -export const MariaDBTypes: string[] = [ - 'BIGINT', - 'BINARY', - 'BIT', - 'BLOB', - 'BOOL', - 'BOOLEAN', - 'CHAR', - 'DATE', - 'DATETIME', - 'DEC', - 'DECIMAL', - 'DOUBLE PRECISION', - 'DOUBLE', - 'ENUM', - 'FIXED', - 'FLOAT', - 'GEOMETRY', - 'GEOMETRYCOLLECTION', - 'INT', - 'INTEGER', - 'JSON', - 'LINESTRING', - 'LONGBLOB', - 'LONGTEXT', - 'MEDIUMBLOB', - 'MEDIUMINT', - 'MEDIUMTEXT', - 'MULTILINESTRING', - 'MULTIPOINT', - 'MULTIPOLYGON', - 'NUMERIC', - 'POINT', - 'POLYGON', - 'REAL', - 'SET', - 'SMALLINT', - 'TEXT', - 'TIME', - 'TIMESTAMP', - 'TINYBLOB', - 'TINYINT', - 'TINYTEXT', - 'VARBINARY', - 'VARCHAR', - 'YEAR', -]; diff --git a/packages-legacy/sql-ddl-parser/src/sqlParser/dataType/MySQL.ts b/packages-legacy/sql-ddl-parser/src/sqlParser/dataType/MySQL.ts deleted file mode 100644 index d5c045b0..00000000 --- a/packages-legacy/sql-ddl-parser/src/sqlParser/dataType/MySQL.ts +++ /dev/null @@ -1,48 +0,0 @@ -/** - * https://dev.mysql.com/doc/refman/8.0/en/data-types.html - */ -export const MySQLTypes: string[] = [ - 'BIGINT', - 'BINARY', - 'BIT', - 'BLOB', - 'BOOL', - 'BOOLEAN', - 'CHAR', - 'DATE', - 'DATETIME', - 'DEC', - 'DECIMAL', - 'DOUBLE PRECISION', - 'DOUBLE', - 'ENUM', - 'FLOAT', - 'GEOMETRY', - 'GEOMETRYCOLLECTION', - 'INT', - 'INTEGER', - 'JSON', - 'LINESTRING', - 'LONGBLOB', - 'LONGTEXT', - 'MEDIUMBLOB', - 'MEDIUMINT', - 'MEDIUMTEXT', - 'MULTILINESTRING', - 'MULTIPOINT', - 'MULTIPOLYGON', - 'NUMERIC', - 'POINT', - 'POLYGON', - 'SET', - 'SMALLINT', - 'TEXT', - 'TIME', - 'TIMESTAMP', - 'TINYBLOB', - 'TINYINT', - 'TINYTEXT', - 'VARBINARY', - 'VARCHAR', - 'YEAR', -]; diff --git a/packages-legacy/sql-ddl-parser/src/sqlParser/dataType/Oracle.ts b/packages-legacy/sql-ddl-parser/src/sqlParser/dataType/Oracle.ts deleted file mode 100644 index 7b04c010..00000000 --- a/packages-legacy/sql-ddl-parser/src/sqlParser/dataType/Oracle.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * https://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#CNCPT012 - */ -export const OracleTypes: string[] = [ - 'BFILE', - 'BINARY_DOUBLE', - 'BINARY_FLOAT', - 'BLOB', - 'CHAR', - 'CLOB', - 'DATE', - 'DATETIME', - 'LONG RAW', - 'LONG', - 'NCHAR', - 'NCLOB', - 'NUMBER', - 'NVARCHAR2', - 'RAW', - 'TIMESTAMP WITH LOCAL TIME ZONE', - 'TIMESTAMP WITH TIME ZONE', - 'TIMESTAMP', - 'UriType', - 'VARCHAR', - 'VARCHAR2', - 'XMLType', -]; diff --git a/packages-legacy/sql-ddl-parser/src/sqlParser/dataType/PostgreSQL.ts b/packages-legacy/sql-ddl-parser/src/sqlParser/dataType/PostgreSQL.ts deleted file mode 100644 index 526e9ed3..00000000 --- a/packages-legacy/sql-ddl-parser/src/sqlParser/dataType/PostgreSQL.ts +++ /dev/null @@ -1,63 +0,0 @@ -/** - * https://www.postgresql.org/docs/current/datatype.html - */ -export const PostgreSQLTypes: string[] = [ - 'BIGINT', - 'BIGSERIAL', - 'BIT VARYING', - 'BIT', - 'BOOL', - 'BOOLEAN', - 'BOX', - 'BYTEA', - 'CHAR', - 'CHARACTER VARYING', - 'CHARACTER', - 'CIDR', - 'CIRCLE', - 'DATE', - 'DECIMAL', - 'DOUBLE PRECISION', - 'FLOAT4', - 'FLOAT8', - 'INET', - 'INT', - 'INT2', - 'INT4', - 'INT8', - 'INTEGER', - 'INTERVAL', - 'JSON', - 'JSONB', - 'LINE', - 'LSEG', - 'MACADDR', - 'MACADDR8', - 'MONEY', - 'NUMERIC', - 'PATH', - 'PG_LSN', - 'POINT', - 'POLYGON', - 'REAL', - 'SERIAL', - 'SERIAL2', - 'SERIAL4', - 'SERIAL8', - 'SMALLINT', - 'SMALLSERIAL', - 'TEXT', - 'TIME WITH', - 'TIME', - 'TIMESTAMP WITH', - 'TIMESTAMP', - 'TIMESTAMPTZ', - 'TIMETZ', - 'TSQUERY', - 'TSVECTOR', - 'TXID_SNAPSHOT', - 'UUID', - 'VARBIT', - 'VARCHAR', - 'XML', -]; diff --git a/packages-legacy/sql-ddl-parser/src/sqlParser/dataType/SQLite.ts b/packages-legacy/sql-ddl-parser/src/sqlParser/dataType/SQLite.ts deleted file mode 100644 index 806ab98e..00000000 --- a/packages-legacy/sql-ddl-parser/src/sqlParser/dataType/SQLite.ts +++ /dev/null @@ -1,10 +0,0 @@ -/** - * https://www.sqlite.org/datatype3.html - */ -export const SQLiteTypes: string[] = [ - 'BLOB', - 'INTEGER', - 'NUMERIC', - 'REAL', - 'TEXT', -]; diff --git a/packages-legacy/sql-ddl-parser/src/sqlParser/keyword/MSSQL.ts b/packages-legacy/sql-ddl-parser/src/sqlParser/keyword/MSSQL.ts deleted file mode 100644 index 3f48c4f8..00000000 --- a/packages-legacy/sql-ddl-parser/src/sqlParser/keyword/MSSQL.ts +++ /dev/null @@ -1 +0,0 @@ -export const MSSQLKeywords: string[] = []; diff --git a/packages-legacy/sql-ddl-parser/src/sqlParser/keyword/MariaDB.ts b/packages-legacy/sql-ddl-parser/src/sqlParser/keyword/MariaDB.ts deleted file mode 100644 index 933b4167..00000000 --- a/packages-legacy/sql-ddl-parser/src/sqlParser/keyword/MariaDB.ts +++ /dev/null @@ -1 +0,0 @@ -export const MariaDBKeywords: string[] = []; diff --git a/packages-legacy/sql-ddl-parser/src/sqlParser/keyword/MySQL.ts b/packages-legacy/sql-ddl-parser/src/sqlParser/keyword/MySQL.ts deleted file mode 100644 index f6e4af4c..00000000 --- a/packages-legacy/sql-ddl-parser/src/sqlParser/keyword/MySQL.ts +++ /dev/null @@ -1,39 +0,0 @@ -export const MySQLKeywords: string[] = [ - 'ADD', - 'ALTER', - 'AND', - 'AS', - 'ASC', - 'AUTO_INCREMENT', - 'BY', - 'CASCADE', - 'COLUMN', - 'COMMENT', - 'CONSTRAINT', - 'CREATE', - 'DATABASE', - 'DEFAULT', - 'DELETE', - 'DESC', - 'DROP', - 'EXISTS', - 'FOREIGN', - 'IF', - 'INDEX', - 'KEY', - 'LIKE', - 'NOT', - 'NULL', - 'ON', - 'OR', - 'PRIMARY', - 'REFERENCES', - 'RENAME', - 'SCHEMA', - 'SELECT', - 'SET', - 'TABLE', - 'UNION', - 'UNIQUE', - 'USE', -]; diff --git a/packages-legacy/sql-ddl-parser/src/sqlParser/keyword/Oracle.ts b/packages-legacy/sql-ddl-parser/src/sqlParser/keyword/Oracle.ts deleted file mode 100644 index e7a289d7..00000000 --- a/packages-legacy/sql-ddl-parser/src/sqlParser/keyword/Oracle.ts +++ /dev/null @@ -1 +0,0 @@ -export const OracleKeywords: string[] = []; diff --git a/packages-legacy/sql-ddl-parser/src/sqlParser/keyword/PostgreSQL.ts b/packages-legacy/sql-ddl-parser/src/sqlParser/keyword/PostgreSQL.ts deleted file mode 100644 index 4ddf8688..00000000 --- a/packages-legacy/sql-ddl-parser/src/sqlParser/keyword/PostgreSQL.ts +++ /dev/null @@ -1 +0,0 @@ -export const PostgreSQLKeywords: string[] = []; diff --git a/packages-legacy/sql-ddl-parser/src/sqlParser/keyword/SQLite.ts b/packages-legacy/sql-ddl-parser/src/sqlParser/keyword/SQLite.ts deleted file mode 100644 index 204a5d7e..00000000 --- a/packages-legacy/sql-ddl-parser/src/sqlParser/keyword/SQLite.ts +++ /dev/null @@ -1 +0,0 @@ -export const SQLiteKeywords: string[] = ['AUTOINCREMENT']; diff --git a/packages-legacy/sql-ddl-parser/tsconfig.json b/packages-legacy/sql-ddl-parser/tsconfig.json deleted file mode 100644 index c0711e50..00000000 --- a/packages-legacy/sql-ddl-parser/tsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "baseUrl": ".", - "paths": { - "@/*": ["src/*"], - "@@types/*": ["types/*"] - } - }, - "include": ["src/**/*.ts", "types/**/*.ts"], - "exclude": ["node_modules"] -} diff --git a/packages-legacy/sql-ddl-parser/types/index.d.ts b/packages-legacy/sql-ddl-parser/types/index.d.ts deleted file mode 100644 index 821fc697..00000000 --- a/packages-legacy/sql-ddl-parser/types/index.d.ts +++ /dev/null @@ -1,101 +0,0 @@ -export type SortType = 'ASC' | 'DESC'; - -export type TokenType = - | 'leftParen' - | 'rightParen' - | 'comma' - | 'period' - | 'equal' - | 'semicolon' - | 'keyword' - | 'string' - | 'doubleQuoteString' - | 'singleQuoteString' - | 'backtickString' - | 'unknown'; - -export interface Token { - type: TokenType; - value: string; -} - -export type Statement = - | CreateTable - | CreateIndex - | AlterTableAddPrimaryKey - | AlterTableAddForeignKey - | AlterTableAddUnique; - -export interface CreateTable { - type: 'create.table'; - name: string; - comment: string; - columns: Column[]; - indexes: Index[]; - foreignKeys: ForeignKey[]; -} - -export interface Column { - name: string; - dataType: string; - default: string; - comment: string; - primaryKey: boolean; - autoIncrement: boolean; - unique: boolean; - nullable: boolean; -} - -export interface Index { - name: string; - unique: boolean; - columns: IndexColumn[]; -} - -export interface ForeignKey { - columnNames: string[]; - refTableName: string; - refColumnNames: string[]; -} - -export interface CreateTableColumns { - columns: Column[]; - indexes: Index[]; - foreignKeys: ForeignKey[]; -} - -export interface CreateIndex { - type: 'create.index'; - name: string; - unique: boolean; - tableName: string; - columns: IndexColumn[]; -} -export interface IndexColumn { - name: string; - sort: SortType; -} - -export interface AlterTableAddUnique { - type: 'alter.table.add.unique'; - name: string; - columnNames: string[]; -} - -export interface AlterTableAddPrimaryKey { - type: 'alter.table.add.primaryKey'; - name: string; - columnNames: string[]; -} - -export interface AlterTableAddForeignKey { - type: 'alter.table.add.foreignKey'; - name: string; - columnNames: string[]; - refTableName: string; - refColumnNames: string[]; -} - -export declare function tokenizer(input: string): Token[]; -export declare function parser(tokens: Token[]): Statement[]; -export declare function DDLParser(input: string): Statement[]; diff --git a/packages-legacy/sql-ddl-parser/vite.config.ts b/packages-legacy/sql-ddl-parser/vite.config.ts deleted file mode 100644 index fe835cd1..00000000 --- a/packages-legacy/sql-ddl-parser/vite.config.ts +++ /dev/null @@ -1,25 +0,0 @@ -/// -import { readFileSync } from 'node:fs'; -import { join } from 'node:path'; - -import { defineConfig } from 'vite'; - -const pkg = JSON.parse(readFileSync('package.json', { encoding: 'utf8' })); - -export default defineConfig({ - build: { - lib: { - entry: './src/index.ts', - fileName: 'sql-ddl-parser', - formats: ['es'], - }, - }, - resolve: { - alias: { - '@': join(__dirname, 'src'), - }, - }, - server: { - open: true, - }, -}); diff --git a/packages-legacy/vuerd/.gitignore b/packages-legacy/vuerd/.gitignore deleted file mode 100644 index 1509aadd..00000000 --- a/packages-legacy/vuerd/.gitignore +++ /dev/null @@ -1 +0,0 @@ -!types \ No newline at end of file diff --git a/packages-legacy/vuerd/LICENSE b/packages-legacy/vuerd/LICENSE deleted file mode 100644 index a7f5d799..00000000 --- a/packages-legacy/vuerd/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2020 dineug - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/packages-legacy/vuerd/README.md b/packages-legacy/vuerd/README.md deleted file mode 100644 index 0b0a3773..00000000 --- a/packages-legacy/vuerd/README.md +++ /dev/null @@ -1,343 +0,0 @@ -# vuerd - -> Entity-Relationship Diagram Editor - -## ERD - -![vuerd](https://github.com/dineug/erd-editor/blob/main/img/vuerd-erd.gif?raw=true) - -## Document - -- [Playground](https://vuerd.github.io) -- [Import SQL DDL support syntax](https://github.com/dineug/erd-editor/blob/main/packages-legacy/sql-ddl-parser/src/SQL_DDL_Test_Case.md) -- [vscode extension](https://marketplace.visualstudio.com/items?itemName=dineug.vuerd-vscode) - -## interface ERDEditorElement - -```typescript -interface ERDEditorElement extends HTMLElement { - width: number; - height: number; - value: string; - automaticLayout: boolean; - readonly: boolean; - focus(): void; - blur(): void; - initLoadJson(json: string): void; - loadSQLDDL(sql: string): void; - clear(): void; - setTheme(theme: Theme): void; - setKeymap(keymap: Keymap): void; - getSQLDDL(database?: Database): string; - extension(config: Partial): void; -} -``` - -| Name | Type | Describe | -| --------------- | -------- | ---------------------------------------------------------- | -| width | Number | width | -| height | Number | height | -| value | String | editor data | -| automaticLayout | Boolean | automatic layout | -| readonly | Boolean | readonly | -| change | Event | editor data | -| focus | Function | focus | -| blur | Function | blur | -| initLoadJson | Function | Do not record and save undo | -| loadSQLDDL | Function | import SQL DDL | -| clear | Function | editor data clear | -| setTheme | Function | custom theme | -| setKeymap | Function | custom keymap | -| getSQLDDL | Function | SQL DDL(MariaDB, MSSQL, MySQL, Oracle, PostgreSQL, SQLite) | -| extension | Function | plugin API(scope instance) | - -### EditorElement Example - -### javascript - -```javascript -const container = document.querySelector('#app'); -const editor = document.createElement('erd-editor'); -container.appendChild(editor); - -// editor data load -editor.initLoadJson('editor data...'); -// or -// editor.value = "editor data..."; - -editor.addEventListener('change', event => { - console.log(event.target.value); -}); - -// layout -window.addEventListener('resize', () => { - editor.width = window.innerWidth; - editor.height = window.innerHeight; -}); -window.dispatchEvent(new Event('resize')); -// or -// editor.automaticLayout = true; -``` - -### html - -```html - - - -``` - -## interface Custom Theme - -```typescript -interface Theme { - canvas?: string; - table?: string; - tableActive?: string; - focus?: string; - keyPK?: string; - keyFK?: string; - keyPFK?: string; - font?: string; - fontActive?: string; - fontPlaceholder?: string; - contextmenu?: string; - contextmenuActive?: string; - edit?: string; - columnSelect?: string; - columnActive?: string; - minimapShadow?: string; - scrollbarThumb?: string; - scrollbarThumbActive?: string; - menubar?: string; - visualization?: string; -} -``` - -### Custom Theme Example - -### css - -```css -:root { - --vuerd-theme-canvas: #282828; - --vuerd-theme-table: #191919; - --vuerd-theme-table-active: #14496d; - --vuerd-theme-focus: #00a9ff; - --vuerd-theme-key-pk: #b4b400; - --vuerd-theme-key-fk: #dda8b1; - --vuerd-theme-key-pfk: #60b9c4; - --vuerd-theme-font: #a2a2a2; - --vuerd-theme-font-active: white; - --vuerd-theme-font-placeholder: #6d6d6d; - --vuerd-theme-contextmenu: #191919; - --vuerd-theme-contextmenu-active: #383d41; - --vuerd-theme-edit: #ffc107; - --vuerd-theme-column-select: #232a2f; - --vuerd-theme-column-active: #372908; - --vuerd-theme-minimap-shadow: black; - --vuerd-theme-scrollbar-thumb: #6d6d6d; - --vuerd-theme-scrollbar-thumb-active: #a2a2a2; - --vuerd-theme-menubar: black; - --vuerd-theme-visualization: #191919; -} -``` - -### javascript - -```javascript -const editor = document.createElement('erd-editor'); -editor.setTheme({ - canvas: '#282828', - table: '#191919', - tableActive: '#14496d', - focus: '#00a9ff', - keyPK: '#B4B400', - keyFK: '#dda8b1', - keyPFK: '#60b9c4', - font: '#a2a2a2', - fontActive: 'white', - fontPlaceholder: '#6D6D6D', - contextmenu: '#191919', - contextmenuActive: '#383d41', - edit: '#ffc107', - columnSelect: '#232a2f', - columnActive: '#372908', - minimapShadow: 'black', - scrollbarThumb: '#6D6D6D', - scrollbarThumbActive: '#a2a2a2', - menubar: 'black', - visualization: '#191919', -}); -``` - -## interface Custom Keymap - -| Name | Type | Describe | -| ---- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | -| key | event.key or event.code | [Key](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key), [Code](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code) | - -```typescript -interface KeymapOption { - metaKey?: boolean; - ctrlKey?: boolean; - altKey?: boolean; - shiftKey?: boolean; - key?: string; - preventDefault?: boolean; - stopPropagation?: boolean; -} -interface Keymap { - edit?: KeymapOption[]; - stop?: KeymapOption[]; - find?: KeymapOption[]; - undo?: KeymapOption[]; - redo?: KeymapOption[]; - addTable?: KeymapOption[]; - addColumn?: KeymapOption[]; - addMemo?: KeymapOption[]; - removeTable?: KeymapOption[]; - removeColumn?: KeymapOption[]; - primaryKey?: KeymapOption[]; - selectAllTable?: KeymapOption[]; - selectAllColumn?: KeymapOption[]; - copyColumn?: KeymapOption[]; - pasteColumn?: KeymapOption[]; - relationshipZeroOne?: KeymapOption[]; - relationshipZeroN?: KeymapOption[]; - relationshipOneOnly?: KeymapOption[]; - relationshipOneN?: KeymapOption[]; - tableProperties?: KeymapOption[]; - zoomIn?: KeymapOption[]; - zoomOut?: KeymapOption[]; -} -``` - -### Custom Keymap Example - -```javascript -const editor = document.createElement('erd-editor'); -editor.setKeymap({ - addTable: [ - { - altKey: true, - key: 'N', - }, - ], - addColumn: [ - { - altKey: true, - key: 'Enter', - }, - ], - addMemo: [], // remove keymap -}); -``` - -## Global API - -```typescript -function addIcon(...newIcons: IconDefinition[]): void; -function extension(config: Partial): void; -``` - -## Install - -```bash -$ yarn add vuerd -or -$ npm install vuerd -``` - -## Usage - -```javascript -import 'vuerd'; -// import "vuerd/theme/abyss.css"; -// import "vuerd/theme/kimbie-dark.css"; -// import "vuerd/theme/monokai.css"; -// import "vuerd/theme/monokai-dimmed.css"; -// import "vuerd/theme/one-dark-pro.css"; -// import "vuerd/theme/red.css"; -// import "vuerd/theme/solarized-dark.css"; -// import "vuerd/theme/solarized-light.css"; -// import "vuerd/theme/tomorrow-night-blue.css"; -// import "vuerd/theme/vscode-dark.css"; - -const container = document.querySelector('#app'); -const editor = document.createElement('erd-editor'); -container.appendChild(editor); -``` - -## CDN Quick Start - -```html - - - - vuerd demo - - - - - - - - - - - - - - - - - - -``` - -## Editor Keymap(default) - -| Name | Keymap | -| ---------------------------------------------------------- | ---------------------------------------------------------------------------------------- | -| Editing - ERD | dblclick, Enter | -| Editing - Grid | dblclick, Enter | -| All Stop | Escape | -| Search - find, filter | Ctrl + F, Cmd + F | -| Undo - ERD | Ctrl + Z, Cmd + Z | -| Redo - ERD | Ctrl + Shift + Z, Cmd + Shift + Z | -| Selection - table, memo | Ctrl + Drag, Click, Ctrl + Click, Ctrl + Alt + A, Cmd + Drag, Cmd + Click, Cmd + Alt + A | -| Selection - column, filter | Click, Ctrl + Click, Cmd + Click, Shift + Click, Shift + Arrow key(up, down), Alt + A | -| Movement - table, memo, column, filter | Drag, Ctrl + Drag, Cmd + Drag | -| Copy - column | Ctrl + C, Cmd + C | -| Paste - column | Ctrl + V, Cmd + V | -| Contextmenu - ERD, Table, Relationship, SQL, GeneratorCode | Right-click | -| Table Properties | Ctrl + Space, Alt + Space | -| New Table | Alt + N | -| New Memo | Alt + M | -| New - column, filter | Alt + Enter | -| Delete - table, memo | Ctrl + Delete, Ctrl + Backspace, Cmd + Delete, Cmd + Backspace | -| Delete - column, filter | Alt + Delete, Alt + Backspace | -| Select Hint - dataType, find | Arrow key(right), Click | -| Move Hint - dataType, find | Arrow key(up, down) | -| Primary Key | Alt + K | -| checkbox - Grid, filter | Space, Click | -| Move checkbox - Grid, filter | Arrow key(up, down, left, right) | -| Relationship - Zero One | Ctrl + Alt + 1, Cmd + Alt + 1 | -| Relationship - Zero N | Ctrl + Alt + 2, Cmd + Alt + 2 | -| Relationship - One Only | Ctrl + Alt + 3, Cmd + Alt + 3 | -| Relationship - One N | Ctrl + Alt + 4, Cmd + Alt + 4 | -| Zoom In - ERD | Ctrl + Equal, Cmd + Equal | -| Zoom Out - ERD | Ctrl + Minus, Cmd + Minus | diff --git a/packages-legacy/vuerd/index.html b/packages-legacy/vuerd/index.html deleted file mode 100644 index 3d8e9156..00000000 --- a/packages-legacy/vuerd/index.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - vuerd - - - - - diff --git a/packages-legacy/vuerd/package.json b/packages-legacy/vuerd/package.json deleted file mode 100644 index b1cae797..00000000 --- a/packages-legacy/vuerd/package.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "vuerd", - "version": "2.2.13", - "private": true, - "description": "ERD editor", - "type": "module", - "main": "./dist/vuerd.js", - "module": "./dist/vuerd.js", - "typings": "./types/index.d.ts", - "exports": { - ".": { - "types": "./types/index.d.ts", - "default": "./dist/vuerd.js" - } - }, - "files": [ - "dist/*.js", - "types", - "theme/*.css" - ], - "author": "dineug ", - "license": "MIT", - "scripts": { - "dev": "vite serve", - "build": "vite build", - "tsc": "tsc --noEmit" - }, - "devDependencies": { - "@dineug/erd-editor-schema": "workspace:*", - "@easylogic/colorpicker": "^1.10.11", - "@fortawesome/free-solid-svg-icons": "^5.15.4", - "@mdi/js": "7.3.67", - "@popperjs/core": "2.9.3", - "@rollup/plugin-strip": "^3.0.4", - "@tweenjs/tween.js": "^18.6.4", - "@types/d3": "^7.4.3", - "@types/lodash-es": "^4.17.12", - "@types/ramda": "0.27.44", - "@types/uuid": "^9.0.8", - "@vuerd/lit-observable": "workspace:*", - "@vuerd/sql-ddl-parser": "workspace:*", - "d3": "^7.8.5", - "highlight.js": "^10.7.3", - "highlightjs-graphql": "^1.0.2", - "html-to-image": "^1.11.11", - "lit-html": "^1.4.1", - "lodash-es": "^4.17.21", - "ramda": "0.27.1", - "rxjs": "^7.8.1", - "tippy.js": "^6.3.7", - "typescript": "5.4.5", - "uuid": "^9.0.1", - "vite": "^5.2.8" - } -} diff --git a/packages-legacy/vuerd/src/components/Alert.ts b/packages-legacy/vuerd/src/components/Alert.ts deleted file mode 100644 index 213dd5cd..00000000 --- a/packages-legacy/vuerd/src/components/Alert.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { defineComponent, html } from '@vuerd/lit-observable'; - -import { css } from '@/core/tagged'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-alert': AlertElement; - } -} - -export interface AlertProps { - message: string; - onClose: () => void; -} - -export interface AlertElement extends AlertProps, HTMLElement {} - -const AlertStyle = css` - @keyframes alert { - 0% { - transform: translateY(-50px); - opacity: 0; - } - 100% { - transform: translateY(0); - opacity: 100; - } - } - - .vuerd-alert { - display: flex; - flex-direction: column; - align-items: center; - width: 100%; - } - - .vuerd-alert-header { - width: 100%; - } - - .vuerd-alert > .vuerd-alert-message { - margin-bottom: 10px; - } - - .vuerd-alert-message { - word-break: break-all; - margin: 10px 0; - } - - .vuerd-button { - fill: var(--vuerd-color-font); - float: right; - } - - .vuerd-button:hover { - fill: var(--vuerd-color-font-active); - cursor: pointer; - } -`; - -defineComponent('vuerd-alert', { - shadow: false, - observedProps: ['message', 'onClose', 'visible'], - styleMap: { - width: '200px', - position: 'absolute', - color: 'var(--vuerd-color-font-active)', - backgroundColor: 'var(--vuerd-color-contextmenu)', - margin: '10px', - padding: '8px', - display: 'flex', - flexDirection: 'column', - alignItems: 'center', - justifyContent: 'center', - boxShadow: '0 1px 6px var(--vuerd-color-minimap-shadow)', - left: '50%', - marginLeft: '-100px', - marginTop: '40px', - - animation: 'alert 1s ease forwards', - }, - style: AlertStyle, - render(props: AlertProps, ctx: AlertElement) { - const onClose = (e: Event) => { - e.preventDefault(); - - props.onClose(); - }; - - return () => html` -

    -
    - onClose(e)} - > -
    - ${props.message} -
    - `; - }, -}); diff --git a/packages-legacy/vuerd/src/components/Contextmenu.style.ts b/packages-legacy/vuerd/src/components/Contextmenu.style.ts deleted file mode 100644 index 77354afc..00000000 --- a/packages-legacy/vuerd/src/components/Contextmenu.style.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { SIZE_CONTEXTMENU_HEIGHT, SIZE_FONT } from '@/core/layout'; -import { css } from '@/core/tagged'; - -export const ContextmenuStyle = css` - .vuerd-contextmenu { - position: fixed; - z-index: 1; - opacity: 0.9; - color: var(--vuerd-color-font); - fill: var(--vuerd-color-font); - background-color: var(--vuerd-color-contextmenu); - list-style: none; - padding: 0; - margin: 0; - display: flex; - flex-direction: column; - font-family: var(--vuerd-font-family) !important; - } - .vuerd-contextmenu > li { - height: ${SIZE_CONTEXTMENU_HEIGHT}px; - padding: 10px 5px 10px 10px; - box-sizing: border-box; - cursor: pointer; - font-size: ${SIZE_FONT}px; - white-space: nowrap; - display: flex; - flex-direction: row; - align-items: center; - } - .vuerd-contextmenu > li:hover { - color: var(--vuerd-color-font-active); - fill: var(--vuerd-color-font-active); - background-color: var(--vuerd-color-contextmenu-active); - } - .vuerd-contextmenu > li > span { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - padding-right: 5px; - } - .vuerd-contextmenu > li > span.icon, - .vuerd-contextmenu > li > span.icon > img { - width: 18px; - display: flex; - align-items: center; - } - .vuerd-contextmenu > li > span.name { - width: 70px; - } - .vuerd-contextmenu > li > span.keymap { - width: 60px; - display: inline-block; - padding-right: 0; - } - .vuerd-contextmenu > li > span.arrow { - width: 13px; - padding-right: 0; - } -`; diff --git a/packages-legacy/vuerd/src/components/Contextmenu.template.ts b/packages-legacy/vuerd/src/components/Contextmenu.template.ts deleted file mode 100644 index e79deffd..00000000 --- a/packages-legacy/vuerd/src/components/Contextmenu.template.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { html } from '@vuerd/lit-observable'; - -import { Menu } from '@@types/core/contextmenu'; - -export const iconTpl = (menu: Menu) => - menu.icon - ? html` - - - - - ` - : menu.iconBase64 - ? html` - - - - ` - : html``; diff --git a/packages-legacy/vuerd/src/components/Contextmenu.ts b/packages-legacy/vuerd/src/components/Contextmenu.ts deleted file mode 100644 index 98f44b45..00000000 --- a/packages-legacy/vuerd/src/components/Contextmenu.ts +++ /dev/null @@ -1,168 +0,0 @@ -import { - defineComponent, - FunctionalComponent, - html, - observable, - query, - unmounted, - watch, -} from '@vuerd/lit-observable'; -import { styleMap } from 'lit-html/directives/style-map'; - -import { useTooltip } from '@/core/hooks/tooltip.hook'; -import { useUnmounted } from '@/core/hooks/unmounted.hook'; -import { SIZE_CONTEXTMENU_HEIGHT } from '@/core/layout'; -import { Menu } from '@@types/core/contextmenu'; - -import { ContextmenuStyle } from './Contextmenu.style'; -import { iconTpl } from './Contextmenu.template'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-contextmenu': ContextmenuElement; - } -} - -export interface ContextmenuProps { - x: number; - y: number; - menus: Menu[]; -} - -export interface ContextmenuElement extends ContextmenuProps, HTMLElement {} - -interface ContextmenuState { - menu: Menu | null; -} - -const Contextmenu: FunctionalComponent = ( - props, - ctx -) => { - const state = observable({ menu: null }); - const rootRef = query('.vuerd-contextmenu'); - const { unmountedGroup } = useUnmounted(); - const { resetTooltip } = useTooltip(['.keymap'], ctx); - - const childrenX = () => { - const ul = rootRef.value; - return ul ? props.x + ul.clientWidth : props.x; - }; - - const childrenY = () => - state.menu - ? props.y + props.menus.indexOf(state.menu) * SIZE_CONTEXTMENU_HEIGHT - : props.y; - - const onMouseover = (menu: Menu) => (state.menu = menu); - const onClose = () => ctx.dispatchEvent(new CustomEvent('close')); - const onExecute = (menu: Menu) => { - if (!menu.execute || menu.children?.length) return; - - menu.execute(); - - if (!menu.options || menu.options.close !== false) { - onClose(); - } - }; - - const createContextmenuEvent = (eventName: string) => (event: Event) => { - event.stopPropagation(); - ctx.dispatchEvent( - new CustomEvent(eventName, { - composed: true, - bubbles: true, - }) - ); - }; - - const onMousedown = createContextmenuEvent('vuerd-contextmenu-mousedown'); - const onTouchstart = createContextmenuEvent('vuerd-contextmenu-touchstart'); - - unmountedGroup.push( - watch(props, propName => { - if (propName !== 'menus') return; - - state.menu = null; - resetTooltip(); - }) - ); - - unmounted(() => (state.menu = null)); - - return () => html` -
      - ${props.menus.map( - menu => html` -
    • onMouseover(menu)} - @click=${() => onExecute(menu)} - > - ${iconTpl(menu)} - - ${menu.name} - - - ${menu.keymap} - - ${menu.children && menu.children.length - ? html` - - - - ` - : null} -
    • - ` - )} -
    - ${state.menu?.children?.length - ? html` - - ` - : null} - `; -}; - -defineComponent('vuerd-contextmenu', { - observedProps: [ - { - name: 'x', - type: Number, - default: 0, - }, - { - name: 'y', - type: Number, - default: 0, - }, - 'menus', - ], - style: ContextmenuStyle, - render: Contextmenu, -}); diff --git a/packages-legacy/vuerd/src/components/ERDEditor.style.ts b/packages-legacy/vuerd/src/components/ERDEditor.style.ts deleted file mode 100644 index d8b20cb2..00000000 --- a/packages-legacy/vuerd/src/components/ERDEditor.style.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { SIZE_FONT } from '@/core/layout'; -import { css } from '@/core/tagged'; - -export const ERDEditorStyle = css` - .vuerd-editor { - display: flex; - flex-direction: column; - overflow: hidden; - background-color: #f8f8f8; - box-sizing: border-box; - position: relative; - } - - .vuerd-ghost-text-helper { - visibility: hidden; - position: fixed; - top: -100px; - font-size: ${SIZE_FONT}px; - font-family: var(--vuerd-font-family); - white-space: nowrap; - } - - .vuerd-ghost-focus-helper { - position: fixed; - top: -100px; - } - - .easylogic-colorpicker { - display: none; - } - - .easylogic-colorpicker[data-show] { - display: block; - } -`; diff --git a/packages-legacy/vuerd/src/components/ERDEditor.template.ts b/packages-legacy/vuerd/src/components/ERDEditor.template.ts deleted file mode 100644 index 5c1784b2..00000000 --- a/packages-legacy/vuerd/src/components/ERDEditor.template.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { html, mounted, query } from '@vuerd/lit-observable'; - -import { IHelper } from '@/internal-types/helper'; - -export function ghostTpl(helper: IHelper) { - const ghostTextRef = query('.vuerd-ghost-text-helper'); - const ghostInputRef = query('.vuerd-ghost-focus-helper'); - - mounted(() => { - helper.setGhostText(ghostTextRef.value); - helper.setGhostInput(ghostInputRef.value); - helper.focus(); - }); - - return html` - - - `; -} diff --git a/packages-legacy/vuerd/src/components/ERDEditor.ts b/packages-legacy/vuerd/src/components/ERDEditor.ts deleted file mode 100644 index 39c45e76..00000000 --- a/packages-legacy/vuerd/src/components/ERDEditor.ts +++ /dev/null @@ -1,214 +0,0 @@ -import './ERDEditorProvider'; -import './Icon'; -import './Sash'; -import './Contextmenu'; -import './PanelView'; -import './menubar/Menubar'; -import './editor/ERD'; -import './drawer/Drawer'; -import './drawer/HelpDrawer'; -import './drawer/SettingDrawer'; -import './drawer/tablePropertiesDrawer/TablePropertiesDrawer'; -import './ToastBar'; - -import { - defineComponent, - FunctionalComponent, - html, - mounted, - query, - unmounted, - watch, -} from '@vuerd/lit-observable'; -import { cache } from 'lit-html/directives/cache'; -import { styleMap } from 'lit-html/directives/style-map'; -import { fromEvent } from 'rxjs'; - -import { createdERDEditorContext } from '@/core/ERDEditorContext'; -import { Bus } from '@/core/helper/eventBus.helper'; -import { useAlert } from '@/core/hooks/alert.hook'; -import { useERDEditorDrawer } from '@/core/hooks/ERDEditorDrawer.hook'; -import { useERDEditorElement } from '@/core/hooks/ERDEditorElement.hook'; -import { useERDEditorGhost } from '@/core/hooks/ERDEditorGhost.hook'; -import { usePanelView } from '@/core/hooks/panelView.hook'; -import { usePrompt } from '@/core/hooks/prompt.hook'; -import { useUnmounted } from '@/core/hooks/unmounted.hook'; -import { keymapMatchAndStop } from '@/core/keymap'; -import { - DEFAULT_HEIGHT, - DEFAULT_WIDTH, - SIZE_MENUBAR_HEIGHT, -} from '@/core/layout'; -import { Logger } from '@/core/logger'; -import { ignoreEnterProcess } from '@/core/operators/ignoreEnterProcess'; -import { - changeViewport, - editFilterEnd, - editTableEnd, - readonlyEditor$, -} from '@/engine/command/editor.cmd.helper'; -import { - ERDEditorElement, - ERDEditorProps, -} from '@@types/components/ERDEditorElement'; - -import { IndexStyle } from './index.style'; - -const ERDEditor: FunctionalComponent = ( - props, - ctx -) => { - const context = createdERDEditorContext(); - const { store, helper, keymap, eventBus } = context; - const editorRef = query('.vuerd-editor'); - const { ghostTpl, ghostState, setFocus, onFocus } = useERDEditorGhost( - context, - ctx - ); - const { drawerTpl, closeDrawer, openHelp, openSetting } = useERDEditorDrawer( - props, - context - ); - const { hasPanel, panelTpl } = usePanelView(props, context); - const { showPrompt, promptTpl } = usePrompt(); - const { showAlert, alertTpl } = useAlert(); - const { unmountedGroup } = useUnmounted(); - useERDEditorElement(context, ctx, { setFocus }); - context.showPrompt = showPrompt; - context.showAlert = showAlert; - - const resizeObserver = new ResizeObserver(entries => { - entries.forEach((entry: any) => { - const { width, height } = entry.contentRect; - ctx.setAttribute('width', width); - ctx.setAttribute('height', height); - }); - }); - - const onOutside = (event: MouseEvent | TouchEvent) => { - const el = event.target as HTMLElement; - - if (el.closest('vuerd-menubar') || el.closest('vuerd-drawer')) { - store.dispatch(editTableEnd(), editFilterEnd()); - } - - if (!el.closest('vuerd-menubar') && !el.closest('vuerd-drawer')) { - closeDrawer(); - } - }; - - mounted(() => { - props.automaticLayout && resizeObserver.observe(editorRef.value); - store.dispatch(readonlyEditor$(props.readonly)); - - unmountedGroup.push( - watch(props, propName => { - if (propName !== 'automaticLayout') return; - - if (props.automaticLayout) { - resizeObserver.observe(editorRef.value); - } else { - resizeObserver.disconnect(); - } - }), - watch(props, propName => { - if (propName !== 'width' && propName !== 'height') return; - - store.dispatch(changeViewport(props.width, props.height)); - }), - watch(props, propName => { - if (propName !== 'readonly') return; - - store.dispatch(readonlyEditor$(props.readonly)); - }), - fromEvent(editorRef.value, 'keydown') - .pipe(ignoreEnterProcess) - .subscribe(event => { - Logger.debug(` - metaKey: ${event.metaKey} - ctrlKey: ${event.ctrlKey} - altKey: ${event.altKey} - shiftKey: ${event.shiftKey} - code: ${event.code} - key: ${event.key} - `); - - helper.keydown$.next(event); - if (keymapMatchAndStop(event, keymap.stop)) { - eventBus.emit(Bus.Contextmenu.close); - closeDrawer(); - onFocus(); - } - }) - ); - }); - - unmounted(() => { - // globalEvent.destroy(); - // store.destroy(); - // helper.destroy(); - resizeObserver.disconnect(); - }); - - return () => { - const width = props.width; - const height = props.height - SIZE_MENUBAR_HEIGHT; - - return html` - -
    - - ${cache( - !hasPanel() - ? html`` - : null - )} - ${panelTpl()} ${drawerTpl()} ${ghostTpl} ${promptTpl()} ${alertTpl()} - -
    -
    - `; - }; -}; - -const componentOptions = { - observedProps: [ - { - name: 'width', - type: Number, - default: DEFAULT_WIDTH, - }, - { - name: 'height', - type: Number, - default: DEFAULT_HEIGHT, - }, - { - name: 'automaticLayout', - type: Boolean, - default: false, - }, - { - name: 'readonly', - type: Boolean, - default: false, - }, - ], - style: IndexStyle, - render: ERDEditor, -}; - -defineComponent('vuerd-editor', componentOptions); -// defineComponent('erd-editor', componentOptions); diff --git a/packages-legacy/vuerd/src/components/ERDEditorProvider.ts b/packages-legacy/vuerd/src/components/ERDEditorProvider.ts deleted file mode 100644 index ea1fc93a..00000000 --- a/packages-legacy/vuerd/src/components/ERDEditorProvider.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { - defineComponent, - getContext, - html, - ProviderElement, -} from '@vuerd/lit-observable'; - -import { SIZE_FONT } from '@/core/layout'; -import { themeToString } from '@/core/theme'; -import { IERDEditorContext } from '@/internal-types/ERDEditorContext'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-provider': ERDEditorProviderElement; - } -} - -export interface ERDEditorProviderElement - extends ProviderElement {} - -defineComponent('vuerd-provider', { - render: (_, ctx: ERDEditorProviderElement) => () => html` - - - `, -}); - -export const getVuerdContext = (ctx: Element) => - getContext('vuerd-provider', ctx); diff --git a/packages-legacy/vuerd/src/components/Icon.style.ts b/packages-legacy/vuerd/src/components/Icon.style.ts deleted file mode 100644 index 69b505d3..00000000 --- a/packages-legacy/vuerd/src/components/Icon.style.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { css } from '@/core/tagged'; - -export const IconStyle = css` - .vuerd-icon { - transition: fill 0.15s; - } -`; diff --git a/packages-legacy/vuerd/src/components/Icon.ts b/packages-legacy/vuerd/src/components/Icon.ts deleted file mode 100644 index d41cf651..00000000 --- a/packages-legacy/vuerd/src/components/Icon.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { defineComponent, svg } from '@vuerd/lit-observable'; -import { styleMap } from 'lit-html/directives/style-map'; - -import { getIcon } from '@/core/icon'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-icon': IconElement; - } -} - -export interface IconProps { - prefix: string; - name: string; - size: number; - color: string | null; -} - -export interface IconElement extends IconProps, HTMLElement { - prefix: string; -} - -const SIZE = 24; -const SIZE_REM = 1.5; - -defineComponent('vuerd-icon', { - observedProps: [ - { - name: 'prefix', - default: 'fas', - }, - { - name: 'name', - default: '', - }, - { - name: 'size', - type: Number, - default: SIZE, - }, - { - name: 'color', - default: null, - }, - ], - shadow: false, - styleMap: { - display: 'inline-flex', - height: '100%', - alignItems: 'center', - }, - render: (props: IconProps, ctx: IconElement) => () => { - const icon = getIcon(props.prefix, props.name); - if (!icon) return svg``; - - const [width, height, , , d] = icon.icon; - const rem = SIZE_REM * (props.size / SIZE); - - return svg` - - ${ - props.color - ? svg`` - : svg`` - } - - `; - }, -}); diff --git a/packages-legacy/vuerd/src/components/PanelView.ts b/packages-legacy/vuerd/src/components/PanelView.ts deleted file mode 100644 index 4b35a61a..00000000 --- a/packages-legacy/vuerd/src/components/PanelView.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* eslint-disable react-hooks/rules-of-hooks */ -import { - beforeFirstUpdate, - beforeMount, - beforeUpdate, - defineComponent, - firstUpdated, - html, - mounted, - unmounted, - updated, - watch, -} from '@vuerd/lit-observable'; - -import { omitERDEditorContext } from '@/core/ERDEditorContext'; -import { useContext } from '@/core/hooks/context.hook'; -import { useUnmounted } from '@/core/hooks/unmounted.hook'; -import { Panel, PanelConfig } from '@@types/core/panel'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-panel-view': PanelViewElement; - } -} - -export interface PanelViewProps { - panel: PanelConfig; - width: number; - height: number; -} - -export interface PanelViewElement extends PanelViewProps, HTMLElement {} - -defineComponent('vuerd-panel-view', { - observedProps: [ - 'panel', - { - name: 'width', - default: 0, - }, - { - name: 'height', - default: 0, - }, - ], - styleMap: { - height: '100%', - display: 'flex', - position: 'relative', - }, - render(props: PanelViewProps, ctx: PanelViewElement) { - const contextRef = useContext(ctx); - const { unmountedGroup } = useUnmounted(); - let panelInstance: Panel | null = null; - - const setHeight = () => { - ctx.style.height = `${props.height}px`; - }; - - beforeMount(() => { - setHeight(); - - const api = omitERDEditorContext(contextRef.value); - - panelInstance = new props.panel.type(props, api); - panelInstance.beforeMount && panelInstance.beforeMount(); - - unmountedGroup.push( - watch(props, propName => { - if (propName !== 'height') return; - - setHeight(); - }) - ); - }); - mounted(() => panelInstance?.mounted && panelInstance.mounted()); - unmounted(() => panelInstance?.unmounted && panelInstance.unmounted()); - beforeFirstUpdate( - () => - panelInstance?.beforeFirstUpdate && panelInstance.beforeFirstUpdate() - ); - firstUpdated( - () => panelInstance?.firstUpdated && panelInstance.firstUpdated() - ); - beforeUpdate( - () => panelInstance?.beforeUpdate && panelInstance.beforeUpdate() - ); - updated(() => panelInstance?.updated && panelInstance.updated()); - - return () => html`${panelInstance?.render()}`; - }, -}); diff --git a/packages-legacy/vuerd/src/components/Prompt.ts b/packages-legacy/vuerd/src/components/Prompt.ts deleted file mode 100644 index 867169e4..00000000 --- a/packages-legacy/vuerd/src/components/Prompt.ts +++ /dev/null @@ -1,123 +0,0 @@ -import { defineComponent, html, observable } from '@vuerd/lit-observable'; - -import { css } from '@/core/tagged'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-prompt': PromptElement; - } -} - -export interface PromptProps { - prompt: string; - onSubmit: (message: string) => void; -} - -export interface PromptElement extends PromptProps, HTMLElement {} - -const PromptStyle = css` - .vuerd-prompt { - display: flex; - flex-direction: column; - align-items: center; - width: 100%; - } - - .vuerd-prompt-header { - width: 100%; - } - - .vuerd-prompt > .vuerd-prompt-message, - .vuerd-prompt > .vuerd-prompt-input { - margin-bottom: 10px; - } - - .vuerd-prompt-message { - word-break: break-all; - margin: 10px 0; - } - - .vuerd-button { - fill: var(--vuerd-color-font); - float: right; - } - - .vuerd-button:hover { - fill: var(--vuerd-color-font-active); - cursor: pointer; - } - - .vuerd-prompt-button { - box-sizing: border-box; - padding: 5px; - display: inline-block; - cursor: pointer; - fill: var(--vuerd-color-font); - } - - .vuerd-prompt-button:hover { - color: var(--vuerd-color-font-active); - background-color: var(--vuerd-color-contextmenu-active); - fill: var(--vuerd-color-font-active); - } -`; - -defineComponent('vuerd-prompt', { - shadow: false, - observedProps: ['prompt', 'onSubmit', 'visible'], - styleMap: { - width: '200px', - position: 'absolute', - color: 'var(--vuerd-color-font-active)', - backgroundColor: 'var(--vuerd-color-contextmenu)', - margin: '10px', - padding: '8px', - display: 'flex', - flexDirection: 'column', - alignItems: 'center', - justifyContent: 'center', - boxShadow: '0 1px 6px var(--vuerd-color-minimap-shadow)', - left: '50%', - marginLeft: '-100px', - marginTop: '40px', - }, - style: PromptStyle, - render(props: PromptProps, ctx: PromptElement) { - const state = observable({ input: '' }); - - const onInput = (event: InputEvent) => { - const input = event.target as HTMLInputElement; - state.input = input.value; - }; - - const onSubmit = (e: Event, cancel: boolean) => { - e.preventDefault(); - props.onSubmit(cancel ? '' : state.input.trim()); - state.input = ''; - }; - - return () => html` -
    -
    - onSubmit(e, true)} - > -
    - ${props.prompt} - -
    Confirm
    -
    - `; - }, -}); diff --git a/packages-legacy/vuerd/src/components/Sash.style.ts b/packages-legacy/vuerd/src/components/Sash.style.ts deleted file mode 100644 index 99509e62..00000000 --- a/packages-legacy/vuerd/src/components/Sash.style.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { SIZE_SASH } from '@/core/layout'; -import { css } from '@/core/tagged'; - -export const SashStyle = css` - .vuerd-sash { - position: absolute; - } - .vuerd-sash.vertical { - width: ${SIZE_SASH}px; - height: 100%; - cursor: ew-resize; - } - .vuerd-sash.horizontal { - width: 100%; - height: ${SIZE_SASH}px; - cursor: ns-resize; - } - .vuerd-sash.edge { - width: ${SIZE_SASH}px; - height: ${SIZE_SASH}px; - } -`; diff --git a/packages-legacy/vuerd/src/components/Sash.ts b/packages-legacy/vuerd/src/components/Sash.ts deleted file mode 100644 index 035c6f46..00000000 --- a/packages-legacy/vuerd/src/components/Sash.ts +++ /dev/null @@ -1,130 +0,0 @@ -import { - defineComponent, - FunctionalComponent, - html, -} from '@vuerd/lit-observable'; -import { classMap } from 'lit-html/directives/class-map'; -import { styleMap } from 'lit-html/directives/style-map'; - -import { useContext } from '@/core/hooks/context.hook'; -import { SIZE_SASH } from '@/core/layout'; - -import { SashStyle } from './Sash.style'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-sash': SashElement; - } -} - -export type Cursor = - | 'default' - | 'nwse-resize' - | 'nesw-resize' - | 'ew-resize' - | 'ns-resize' - | 'col-resize' - | 'row-resize'; - -export interface SashProps { - vertical: boolean; - horizontal: boolean; - edge: boolean; - cursor: Cursor; - top: number; - left: number; -} - -export interface SashElement extends SashProps, HTMLElement {} - -const classKeys = ['vertical', 'horizontal', 'edge']; - -const Sash: FunctionalComponent = (props, ctx) => { - const contextRef = useContext(ctx); - - const centerTop = () => - props.top === 0 && !props.horizontal && !props.edge - ? props.top - : props.top - SIZE_SASH / 2; - - const centerLeft = () => - props.left === 0 && !props.vertical && !props.edge - ? props.left - : props.left - SIZE_SASH / 2; - - const getClassMap = () => - Object.assign( - { 'vuerd-sash': true }, - classKeys.reduce((map: any, key) => { - map[key] = (props as any)[key]; - return map; - }, {}) - ); - - const getStyleMap = () => ({ - top: `${centerTop()}px`, - left: `${centerLeft()}px`, - cursor: props.edge ? props.cursor : '', - }); - - const onMousedown = () => { - const { drag$ } = contextRef.value.globalEvent; - drag$.subscribe(move => { - move.event.type === 'mousemove' && move.event.preventDefault(); - ctx.dispatchEvent( - new CustomEvent('global-move', { - detail: { - movementX: move.movementX, - movementY: move.movementY, - x: move.x, - y: move.y, - }, - }) - ); - }); - }; - - return () => html` -
    - `; -}; - -defineComponent('vuerd-sash', { - observedProps: [ - { - name: 'vertical', - type: Boolean, - default: false, - }, - { - name: 'horizontal', - type: Boolean, - default: false, - }, - { - name: 'edge', - type: Boolean, - default: false, - }, - { - name: 'cursor', - default: 'default', - }, - { - name: 'top', - type: Number, - default: 0, - }, - { - name: 'left', - type: Number, - default: 0, - }, - ], - style: SashStyle, - render: Sash, -}); diff --git a/packages-legacy/vuerd/src/components/ToastBar.style.ts b/packages-legacy/vuerd/src/components/ToastBar.style.ts deleted file mode 100644 index ea610a40..00000000 --- a/packages-legacy/vuerd/src/components/ToastBar.style.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { css } from '@/core/tagged'; - -export const ToastBarStyle = css` - .vuerd-toast-bar { - position: absolute; - z-index: 9999999; - right: 50px; - bottom: 50px; - display: flex; - flex-direction: column; - } - - .vuerd-toast-bar-container { - padding: 8px 16px 16px 16px; - margin-top: 20px; - width: 200px; - box-shadow: 0 0 6px 0 black; - background-color: var(--vuerd-color-contextmenu); - color: var(--vuerd-color-font); - fill: var(--vuerd-color-font); - animation: showMove 0.3s ease; - } - - .vuerd-toast-bar-header { - display: flex; - margin-bottom: 10px; - } - - .vuerd-toast-bar-body { - } - - .vuerd-btn { - color: var(--vuerd-color-font-active); - background-color: var(--vuerd-color-contextmenu); - cursor: pointer; - padding: 5px; - display: inline-block; - } - - .vuerd-btn:hover { - background-color: var(--vuerd-color-contextmenu-active); - } - - .vuerd-button { - cursor: pointer; - margin-left: auto; - } - - .vuerd-button:hover { - fill: var(--vuerd-color-font-active); - } - - /* animation flip */ - .vuerd-toast-bar-container-move { - transition: transform 0.3s; - } - - @keyframes showMove { - 0% { - transform: translateY(30px); - opacity: 0; - } - 100% { - transform: translateY(0); - opacity: 1; - } - } -`; diff --git a/packages-legacy/vuerd/src/components/ToastBar.ts b/packages-legacy/vuerd/src/components/ToastBar.ts deleted file mode 100644 index 4ed6bade..00000000 --- a/packages-legacy/vuerd/src/components/ToastBar.ts +++ /dev/null @@ -1,102 +0,0 @@ -import { - beforeMount, - defineComponent, - FunctionalComponent, - html, - observable, - TemplateResult, -} from '@vuerd/lit-observable'; -import { repeat } from 'lit-html/directives/repeat'; - -import { ToastBarStyle } from '@/components/ToastBar.style'; -import { getIndex, uuid } from '@/core/helper'; -import { Bus } from '@/core/helper/eventBus.helper'; -import { useContext } from '@/core/hooks/context.hook'; -import { useFlipAnimation } from '@/core/hooks/flipAnimation.hook'; -import { useUnmounted } from '@/core/hooks/unmounted.hook'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-toast-bar': ToastBarElement; - } -} - -export interface ToastBarOptions { - id: string; - close: Promise; - headerTpl?: TemplateResult | null; - bodyTpl?: TemplateResult | null; -} - -export interface ToastBarProps {} - -export interface ToastBarElement extends ToastBarProps, HTMLElement {} - -const DEFAULT_TIME = 1000 * 5; - -const ToastBar: FunctionalComponent = ( - props, - ctx -) => { - const contextRef = useContext(ctx); - const { unmountedGroup } = useUnmounted(); - const state = observable({ - toastBars: [] as ToastBarOptions[], - }); - useFlipAnimation( - ctx, - '.vuerd-toast-bar-container', - 'vuerd-toast-bar-container-move' - ); - - const onClose = (toastBar: ToastBarOptions) => { - const index = getIndex(state.toastBars, toastBar.id); - index !== -1 && state.toastBars.splice(index, 1); - }; - - const addToastBar = (options: ToastBarOptions) => { - const toastBar = Object.assign( - { - close: new Promise(resolve => setTimeout(resolve, DEFAULT_TIME)), - }, - options, - { id: uuid() } - ); - state.toastBars.push(toastBar); - toastBar.close.finally(() => onClose(toastBar)); - }; - - beforeMount(() => { - const { eventBus } = contextRef.value; - - unmountedGroup.push(eventBus.on(Bus.ToastBar.add).subscribe(addToastBar)); - }); - - return () => html` -
    - ${repeat( - state.toastBars, - toastBar => toastBar.id, - toastBar => html` -
    -
    - ${toastBar.headerTpl} - onClose(toastBar)} - > -
    -
    ${toastBar.bodyTpl}
    -
    - ` - )} -
    - `; -}; - -defineComponent('vuerd-toast-bar', { - style: ToastBarStyle, - render: ToastBar, -}); diff --git a/packages-legacy/vuerd/src/components/css/colorPicker.style.ts b/packages-legacy/vuerd/src/components/css/colorPicker.style.ts deleted file mode 100644 index 285637da..00000000 --- a/packages-legacy/vuerd/src/components/css/colorPicker.style.ts +++ /dev/null @@ -1,2891 +0,0 @@ -import { css } from '@/core/tagged'; - -/** - * https://github.com/easylogic/colorpicker - */ -export const ColorPicker = css` - /* easylogic-colorpicker */ - .easylogic-colorpicker { - position: relative; - width: 224px; - z-index: 1000; - display: inline-block; - border: 1px solid rgba(0, 0, 0, 0.2); - background-color: #fff; - border-radius: 3px; - -webkit-box-shadow: 0 0px 10px 2px rgba(0, 0, 0, 0.12); - box-shadow: 0 0px 10px 2px rgba(0, 0, 0, 0.12); - outline: none; - /* theme */ - } - .easylogic-colorpicker > .arrow { - position: absolute; - top: -10px; - left: 7px; - width: 0; - height: 0; - border-left: 10px solid transparent; - border-right: 10px solid transparent; - display: none; - border-bottom: 10px solid rgba(0, 0, 0, 0.2); - pointer-events: none; - } - .easylogic-colorpicker > .arrow:after { - position: absolute; - content: ''; - top: 1px; - left: -9px; - width: 0; - height: 0; - border-left: 9px solid transparent; - border-right: 9px solid transparent; - border-bottom: 9px solid white; - } - .easylogic-colorpicker .colorpicker-body .arrow-button { - position: relative; - width: 10px; - height: 12px; - padding: 0px; - background-color: transparent; - } - .easylogic-colorpicker .colorpicker-body .arrow-button:before { - content: ''; - display: inline-block; - position: absolute; - left: 0px; - right: 0px; - top: 0px; - height: 50%; - width: 0; - height: 0; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-bottom: 3px solid black; - pointer-events: none; - margin: 2px; - -webkit-box-sizing: border-box; - box-sizing: border-box; - } - .easylogic-colorpicker .colorpicker-body .arrow-button:after { - content: ''; - display: inline-block; - position: absolute; - left: 0px; - right: 0px; - bottom: 0px; - top: 50%; - width: 0; - height: 0; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-top: 3px solid black; - pointer-events: none; - margin: 2px; - -webkit-box-sizing: border-box; - box-sizing: border-box; - } - .easylogic-colorpicker .colorpicker-body .color { - position: relative; - height: 120px; - overflow: hidden; - cursor: pointer; - } - .easylogic-colorpicker .colorpicker-body .color > .saturation { - position: relative; - width: 100%; - height: 100%; - } - .easylogic-colorpicker .colorpicker-body .color > .saturation > .value { - position: relative; - width: 100%; - height: 100%; - } - .easylogic-colorpicker - .colorpicker-body - .color - > .saturation - > .value - > .drag-pointer { - position: absolute; - width: 10px; - height: 10px; - border-radius: 50%; - -webkit-transform: translateX(-50%) translateY(-50%); - transform: translateX(-50%) translateY(-50%); - } - .easylogic-colorpicker - .colorpicker-body - .color - > .saturation - > .value - > .drag-pointer - > div { - border: 1px solid #ececec; - -webkit-box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.05); - box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.05); - -webkit-box-sizing: border-box; - box-sizing: border-box; - position: absolute; - width: 10px; - height: 4px; - background-color: white; - } - .easylogic-colorpicker - .colorpicker-body - .color - > .saturation - > .value - > .drag-pointer - .left-saturation { - left: 0%; - top: 50%; - -webkit-transform: translateX(calc(-100% - 4px)) translateY(-50%); - transform: translateX(calc(-100% - 4px)) translateY(-50%); - cursor: col-resize; - } - .easylogic-colorpicker - .colorpicker-body - .color - > .saturation - > .value - > .drag-pointer - .right-saturation { - left: 100%; - top: 50%; - -webkit-transform: translateX(4px) translateY(-50%); - transform: translateX(4px) translateY(-50%); - cursor: col-resize; - } - .easylogic-colorpicker - .colorpicker-body - .color - > .saturation - > .value - > .drag-pointer - .top-value { - width: 4px; - height: 10px; - left: 50%; - top: 0%; - -webkit-transform: translateX(-50%) translateY(calc(-100% - 4px)); - transform: translateX(-50%) translateY(calc(-100% - 4px)); - cursor: row-resize; - } - .easylogic-colorpicker - .colorpicker-body - .color - > .saturation - > .value - > .drag-pointer - .bottom-value { - width: 4px; - height: 10px; - left: 50%; - top: 100%; - -webkit-transform: translateX(-50%) translateY(4px); - transform: translateX(-50%) translateY(4px); - cursor: row-resize; - } - .easylogic-colorpicker .colorpicker-body .color > .saturation { - background-color: rgba(204, 154, 129, 0); - background-image: -webkit-gradient( - linear, - left top, - right top, - from(#fff), - to(rgba(204, 154, 129, 0)) - ); - background-image: linear-gradient(to right, #fff, rgba(204, 154, 129, 0)); - background-repeat: repeat-x; - } - .easylogic-colorpicker .colorpicker-body .color > .saturation > .value { - background-image: -webkit-gradient( - linear, - left bottom, - left top, - from(#000000), - to(rgba(204, 154, 129, 0)) - ); - background-image: linear-gradient(to top, #000000, rgba(204, 154, 129, 0)); - } - .easylogic-colorpicker - .colorpicker-body - .color - > .saturation - > .value - > .drag-pointer { - border: 1px solid #fff; - -webkit-box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.05); - box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.05); - } - .easylogic-colorpicker .colorpicker-body .control { - position: relative; - padding: 10px 0px 10px 0px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - } - .easylogic-colorpicker .colorpicker-body .control > .color, - .easylogic-colorpicker .colorpicker-body .control > .empty { - position: absolute; - left: 12px; - top: 14px; - width: 30px; - height: 30px; - border-radius: 50%; - -webkit-box-sizing: border-box; - box-sizing: border-box; - } - .easylogic-colorpicker .colorpicker-body .control > .color2, - .easylogic-colorpicker .colorpicker-body .control > .empty2 { - position: absolute; - left: 12px; - top: 50px; - width: 30px; - height: 20px; - border-radius: 4px; - -webkit-box-sizing: border-box; - box-sizing: border-box; - } - .easylogic-colorpicker .colorpicker-body .control > .color { - border: 1px solid rgba(0, 0, 0, 0.1); - } - .easylogic-colorpicker .colorpicker-body .control > .hue { - position: relative; - padding: 3px 16px; - margin: 0px 0px 0px 42px; - -webkit-box-sizing: border-box; - box-sizing: border-box; - cursor: pointer; - } - .easylogic-colorpicker .colorpicker-body .control > .hue > .hue-container { - position: relative; - width: 100%; - height: 14px; - border-radius: 3px; - } - .easylogic-colorpicker .colorpicker-body .control > .hue-scale { - position: relative; - padding: 3px 16px; - margin: 0px 0px 0px 42px; - -webkit-box-sizing: border-box; - box-sizing: border-box; - cursor: pointer; - } - .easylogic-colorpicker - .colorpicker-body - .control - > .hue-scale - > .hue-scale-container { - position: relative; - width: 100%; - height: 14px; - } - .easylogic-colorpicker .colorpicker-body .control > .opacity { - position: relative; - padding: 3px 16px; - margin: 0px 0px 0px 42px; - -webkit-box-sizing: border-box; - box-sizing: border-box; - cursor: pointer; - } - .easylogic-colorpicker - .colorpicker-body - .control - > .opacity - > .opacity-container { - position: relative; - width: 100%; - height: 14px; - border-radius: 3px; - } - .easylogic-colorpicker .colorpicker-body .control .drag-bar, - .easylogic-colorpicker .colorpicker-body .control .drag-bar2 { - position: absolute; - cursor: pointer; - top: 50%; - left: 0px; - -webkit-transform: translateX(-50%) translateY(-50%); - transform: translateX(-50%) translateY(-50%); - width: 12px; - height: 12px; - border-radius: 50%; - } - .easylogic-colorpicker .colorpicker-body .control > .hue > .hue-container { - background: -webkit-gradient( - linear, - left top, - right top, - from(#ff0000), - color-stop(17%, #ffff00), - color-stop(33%, #00ff00), - color-stop(50%, #00ffff), - color-stop(67%, #0000ff), - color-stop(83%, #ff00ff), - to(#ff0000) - ); - background: linear-gradient( - to right, - #ff0000 0%, - #ffff00 17%, - #00ff00 33%, - #00ffff 50%, - #0000ff 67%, - #ff00ff 83%, - #ff0000 100% - ); - } - .easylogic-colorpicker - .colorpicker-body - .control - > .opacity - > .opacity-container { - background-color: transparent; - background-image: linear-gradient(45deg, #ccc 25%, transparent 25%), - linear-gradient(-45deg, #ccc 25%, transparent 25%), - linear-gradient(45deg, transparent 75%, #ccc 75%), - linear-gradient(-45deg, transparent 75%, #ccc 75%); - background-size: 10px 10px; - background-position: - 0 0, - 0 5px, - 5px -5px, - -5px 0px; - } - .easylogic-colorpicker - .colorpicker-body - .control - > .opacity - > .opacity-container - > .color-bar { - position: absolute; - display: block; - content: ''; - left: 0px; - right: 0px; - bottom: 0px; - top: 0px; - } - .easylogic-colorpicker .colorpicker-body .control > .empty, - .easylogic-colorpicker .colorpicker-body .control > .empty2 { - background-color: transparent; - background-image: linear-gradient(45deg, #ccc 25%, transparent 25%), - linear-gradient(-45deg, #ccc 25%, transparent 25%), - linear-gradient(45deg, transparent 75%, #ccc 75%), - linear-gradient(-45deg, transparent 75%, #ccc 75%); - background-size: 10px 10px; - background-position: - 0 0, - 0 5px, - 5px -5px, - -5px 0px; - } - .easylogic-colorpicker .colorpicker-body .control .drag-bar, - .easylogic-colorpicker .colorpicker-body .control .drag-bar2 { - border: 1px solid rgba(0, 0, 0, 0.05); - -webkit-box-shadow: 2px 2px 2px 0px rgba(0, 0, 0, 0.2); - box-shadow: 2px 2px 2px 0px rgba(0, 0, 0, 0.2); - background-color: #fefefe; - } - .easylogic-colorpicker .colorpicker-body .information { - /*border-top: 1px solid #e8e8e8;*/ - position: relative; - -webkit-box-sizing: padding-box; - box-sizing: padding-box; - } - .easylogic-colorpicker .colorpicker-body .information > input { - position: absolute; - font-size: 10px; - height: 20px; - bottom: 20px; - padding: 0 0 0 2px; - -webkit-box-sizing: border-box; - box-sizing: border-box; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - } - .easylogic-colorpicker .colorpicker-body .information > input[type='number'] { - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - } - .easylogic-colorpicker - .colorpicker-body - .information - > input[type='number']::-webkit-inner-spin-button, - .easylogic-colorpicker - .colorpicker-body - .information - > input[type='number']::-webkit-outer-spin-button { - -webkit-appearance: none; - appearance: none; - margin: 0; - } - .easylogic-colorpicker - .colorpicker-body - .information.hex - > .information-item.hex { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - } - .easylogic-colorpicker - .colorpicker-body - .information.rgb - > .information-item.rgb { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - } - .easylogic-colorpicker - .colorpicker-body - .information.hsl - > .information-item.hsl { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - } - .easylogic-colorpicker .colorpicker-body .information > .information-item { - display: none; - position: relative; - padding: 0px 5px; - padding-left: 9px; - -webkit-box-sizing: border-box; - box-sizing: border-box; - margin-right: 40px; - } - .easylogic-colorpicker - .colorpicker-body - .information - > .information-item - > .input-field { - display: block; - -webkit-box-flex: 1; - -ms-flex: 1; - flex: 1; - padding: 3px; - -webkit-box-sizing: border-box; - box-sizing: border-box; - position: relative; - } - .easylogic-colorpicker - .colorpicker-body - .information - > .information-item - > .input-field - > .title { - text-align: center; - font-size: 12px; - color: #a9a9a9; - padding-top: 2px; - } - .easylogic-colorpicker - .colorpicker-body - .information - > .information-item - > .input-field - input { - text-align: center; - width: 100%; - padding: 3px; - height: 21px; - font-size: 11px; - color: #333; - -webkit-box-sizing: border-box; - box-sizing: border-box; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - border: 1px solid #cbcbcb; - border-radius: 2px; - } - .easylogic-colorpicker - .colorpicker-body - .information - > .information-item - > .input-field - input[type='number'] { - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - } - .easylogic-colorpicker - .colorpicker-body - .information - > .information-item - > .input-field - input[type='number']::-webkit-inner-spin-button, - .easylogic-colorpicker - .colorpicker-body - .information - > .information-item - > .input-field - input[type='number']::-webkit-outer-spin-button { - -webkit-appearance: none; - appearance: none; - margin: 0; - } - .easylogic-colorpicker - .colorpicker-body - .information - > .information-item - > .input-field.hsl-l - input[type='number'], - .easylogic-colorpicker - .colorpicker-body - .information - > .information-item - > .input-field.hsl-s - input[type='number'] { - padding-left: 1px; - padding-right: 10px; - } - .easylogic-colorpicker - .colorpicker-body - .information - > .information-item - > .input-field - .postfix { - display: inline-block; - position: absolute; - right: 3px; - top: 2px; - height: 21px; - line-height: 2; - padding: 2px; - -webkit-box-sizing: border-box; - box-sizing: border-box; - text-align: center; - font-size: 11px; - } - .easylogic-colorpicker .colorpicker-body .information > .information-change { - position: absolute; - display: block; - width: 40px; - top: 0px; - right: 0px; - bottom: 0px; - text-align: center; - -webkit-box-sizing: border-box; - box-sizing: border-box; - padding-top: 5px; - } - .easylogic-colorpicker - .colorpicker-body - .information - > .information-change - > .format-change-button { - -webkit-box-sizing: border-box; - box-sizing: border-box; - background: transparent; - border: 0px; - cursor: pointer; - outline: none; - } - .easylogic-colorpicker .colorpicker-body .information > .title { - color: #a3a3a3; - } - .easylogic-colorpicker .colorpicker-body .information > .input { - color: #333; - } - .easylogic-colorpicker .colorpicker-body .colorsets { - border-top: 1px solid #e2e2e2; - } - .easylogic-colorpicker .colorpicker-body .colorsets > .menu { - float: right; - padding: 10px 5px; - padding-right: 15px; - } - .easylogic-colorpicker .colorpicker-body .colorsets > .menu button { - border: 0px; - font-size: 14px; - font-weight: 300; - font-family: serif, sans-serif; - outline: none; - cursor: pointer; - } - .easylogic-colorpicker .colorpicker-body .colorsets > .color-list { - margin-right: 30px; - display: block; - padding: 12px 0px 0px 12px; - -webkit-box-sizing: border-box; - box-sizing: border-box; - line-height: 0; - } - .easylogic-colorpicker .colorpicker-body .colorsets > .color-list h6 { - margin-top: 0px; - margin-bottom: 8px; - } - .easylogic-colorpicker - .colorpicker-body - .colorsets - > .color-list - .color-item { - width: 13px; - height: 13px; - border-radius: 2px; - display: inline-block; - margin-right: 12px; - margin-bottom: 12px; - position: relative; - background-size: contain; - overflow: hidden; - -webkit-box-sizing: border-box; - box-sizing: border-box; - cursor: pointer; - vertical-align: middle; - } - .easylogic-colorpicker - .colorpicker-body - .colorsets - > .color-list - .color-item:hover { - -webkit-transform: scale(1.2); - transform: scale(1.2); - } - .easylogic-colorpicker - .colorpicker-body - .colorsets - > .color-list - .color-item - .empty { - position: absolute; - left: 0px; - top: 0px; - background-color: transparent; - background-image: linear-gradient(45deg, #ccc 25%, transparent 25%), - linear-gradient(-45deg, #ccc 25%, transparent 25%), - linear-gradient(45deg, transparent 75%, #ccc 75%), - linear-gradient(-45deg, transparent 75%, #ccc 75%); - background-size: 10px 10px; - background-position: - 0 0, - 0 5px, - 5px -5px, - -5px 0px; - width: 100%; - height: 100%; - padding: 0px; - margin: 0px; - pointer-events: none; - } - .easylogic-colorpicker - .colorpicker-body - .colorsets - > .color-list - .color-item - .color-view { - position: absolute; - left: 0px; - top: 0px; - width: 100%; - height: 100%; - padding: 0px; - margin: 0px; - pointer-events: none; - border: 1px solid rgba(0, 0, 0, 0.1); - -webkit-box-sizing: border-box; - box-sizing: border-box; - } - .easylogic-colorpicker - .colorpicker-body - .colorsets - > .color-list - .add-color-item { - width: 13px; - height: 13px; - display: inline-block; - margin-right: 12px; - margin-bottom: 12px; - cursor: pointer; - line-height: 1; - text-align: center; - font-size: 16px; - font-weight: 400; - font-family: serif, sans-serif; - color: #8e8e8e; - vertical-align: middle; - } - .easylogic-colorpicker .colorpicker-body .color-chooser { - position: absolute; - left: 0px; - right: 0px; - bottom: 0px; - top: 0px; - opacity: 0; - background-color: rgba(0, 0, 0, 0.5); - -webkit-transition: opacity 0.05s ease-out; - transition: opacity 0.05s ease-out; - pointer-events: none; - } - .easylogic-colorpicker .colorpicker-body .color-chooser.open { - opacity: 1; - pointer-events: all; - } - .easylogic-colorpicker - .colorpicker-body - .color-chooser - .color-chooser-container { - position: absolute; - top: 120px; - left: 0px; - right: 0px; - bottom: 0px; - background-color: white; - } - .easylogic-colorpicker - .colorpicker-body - .color-chooser - .color-chooser-container - .colorsets-item-header { - position: absolute; - top: 0px; - left: 0px; - right: 0px; - height: 34px; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - padding: 3px 0px; - -webkit-box-sizing: border-box; - box-sizing: border-box; - border-bottom: 1px solid rgba(0, 0, 0, 0.2); - } - .easylogic-colorpicker - .colorpicker-body - .color-chooser - .color-chooser-container - .colorsets-item-header - .title { - -webkit-box-flex: 2; - -ms-flex: 2; - flex: 2; - font-weight: bold; - font-size: 15px; - -webkit-box-sizing: border-box; - box-sizing: border-box; - margin-right: 30px; - vertical-align: middle; - margin: 0px; - padding: 5px; - padding-left: 14px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - color: #000; - text-align: left; - } - .easylogic-colorpicker - .colorpicker-body - .color-chooser - .color-chooser-container - .colorsets-item-header - .items { - -webkit-box-flex: 1; - -ms-flex: 1; - flex: 1; - text-align: right; - padding-right: 10px; - display: block; - height: 100%; - line-height: 2; - cursor: pointer; - } - .easylogic-colorpicker - .colorpicker-body - .color-chooser - .color-chooser-container - .colorsets-list { - position: absolute; - top: 34px; - left: 0px; - right: 0px; - bottom: 0px; - overflow: auto; - } - .easylogic-colorpicker - .colorpicker-body - .color-chooser - .color-chooser-container - .colorsets-list - .colorsets-item { - cursor: pointer; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - padding: 3px 0px; - border-bottom: 1px solid rgba(0, 0, 0, 0.1); - } - .easylogic-colorpicker - .colorpicker-body - .color-chooser - .color-chooser-container - .colorsets-list - .colorsets-item:hover { - background-color: rgba(0, 0, 0, 0.05); - } - .easylogic-colorpicker - .colorpicker-body - .color-chooser - .color-chooser-container - .colorsets-list - .colorsets-item - .title { - -webkit-box-flex: 2; - -ms-flex: 2; - flex: 2; - font-size: 14px; - -webkit-box-sizing: border-box; - box-sizing: border-box; - margin-right: 30px; - vertical-align: middle; - pointer-events: none; - margin: 0px; - padding: 5px; - padding-left: 14px; - font-weight: normal; - font-size: 13px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - color: #000; - text-align: left; - } - .easylogic-colorpicker - .colorpicker-body - .color-chooser - .color-chooser-container - .colorsets-list - .colorsets-item - .items { - -webkit-box-flex: 3; - -ms-flex: 3; - flex: 3; - display: block; - height: 100%; - line-height: 1.6; - cursor: pointer; - pointer-events: none; - } - .easylogic-colorpicker - .colorpicker-body - .color-chooser - .color-chooser-container - .colorsets-list - .colorsets-item - .items - .color-item { - width: 13px; - height: 13px; - border-radius: 3px; - display: inline-block; - margin-right: 10px; - background-color: transparent; - background-image: linear-gradient(45deg, #ccc 25%, transparent 25%), - linear-gradient(-45deg, #ccc 25%, transparent 25%), - linear-gradient(45deg, transparent 75%, #ccc 75%), - linear-gradient(-45deg, transparent 75%, #ccc 75%); - background-size: 10px 10px; - background-position: - 0 0, - 0 5px, - 5px -5px, - -5px 0px; - background-size: contain; - border: 1px solid #dddddd; - overflow: hidden; - -webkit-box-sizing: border-box; - box-sizing: border-box; - cursor: pointer; - vertical-align: middle; - } - .easylogic-colorpicker - .colorpicker-body - .color-chooser - .color-chooser-container - .colorsets-list - .colorsets-item - .items - .color-item - .color-view { - width: 100%; - height: 100%; - padding: 0px; - margin: 0px; - pointer-events: none; - } - .easylogic-colorpicker .gradient-editor { - position: relative; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - } - .easylogic-colorpicker .gradient-editor .tools { - padding: 4px 6px; - } - .easylogic-colorpicker .gradient-editor .unit { - display: grid; - grid-template-columns: 110px 35px 50px; - grid-column-gap: 5px; - font-size: 11px; - } - .easylogic-colorpicker .gradient-editor .unit input, - .easylogic-colorpicker .gradient-editor .unit select { - width: 100%; - -webkit-box-sizing: border-box; - box-sizing: border-box; - } - .easylogic-colorpicker .gradient-editor .unit input { - width: 35px; - } - .easylogic-colorpicker .gradient-editor [data-editor] { - display: none; - margin-top: 2px; - } - .easylogic-colorpicker .gradient-editor [data-editor] > label { - font-size: 11px; - } - .easylogic-colorpicker - .gradient-editor:not([data-selected-editor*='static-gradient']) - [data-editor='gradient'], - .easylogic-colorpicker - .gradient-editor:not([data-selected-editor*='static-gradient']) - [data-editor='tools'] { - display: block; - } - .easylogic-colorpicker - .gradient-editor[data-selected-editor='linear-gradient'] - [data-editor='angle'], - .easylogic-colorpicker - .gradient-editor[data-selected-editor='repeating-linear-gradient'] - [data-editor='angle'], - .easylogic-colorpicker - .gradient-editor[data-selected-editor='conic-gradient'] - [data-editor='angle'], - .easylogic-colorpicker - .gradient-editor[data-selected-editor='repeating-conic-gradient'] - [data-editor='angle'] { - display: block; - } - .easylogic-colorpicker - .gradient-editor[data-selected-editor='radial-gradient'] - [data-editor='centerX'], - .easylogic-colorpicker - .gradient-editor[data-selected-editor='radial-gradient'] - [data-editor='centerY'], - .easylogic-colorpicker - .gradient-editor[data-selected-editor='repeating-radial-gradient'] - [data-editor='centerX'], - .easylogic-colorpicker - .gradient-editor[data-selected-editor='repeating-radial-gradient'] - [data-editor='centerY'], - .easylogic-colorpicker - .gradient-editor[data-selected-editor='conic-gradient'] - [data-editor='centerX'], - .easylogic-colorpicker - .gradient-editor[data-selected-editor='conic-gradient'] - [data-editor='centerY'], - .easylogic-colorpicker - .gradient-editor[data-selected-editor='repeating-conic-gradient'] - [data-editor='centerX'], - .easylogic-colorpicker - .gradient-editor[data-selected-editor='repeating-conic-gradient'] - [data-editor='centerY'] { - display: block; - } - .easylogic-colorpicker - .gradient-editor[data-selected-editor='radial-gradient'] - [data-editor='radialType'], - .easylogic-colorpicker - .gradient-editor[data-selected-editor='repeating-radial-gradient'] - [data-editor='radialType'] { - margin-top: 5px; - display: grid; - grid-template-columns: 110px 90px; - grid-column-gap: 2px; - } - .easylogic-colorpicker - .gradient-editor[data-selected-editor='radial-gradient'] - [data-editor='radialType'] - select, - .easylogic-colorpicker - .gradient-editor[data-selected-editor='repeating-radial-gradient'] - [data-editor='radialType'] - select { - width: 100%; - } - .easylogic-colorpicker .gradient-editor .sub-editor { - padding: 0px 8px; - } - .easylogic-colorpicker .gradient-editor .gradient-steps { - position: relative; - height: 30px; - } - .easylogic-colorpicker .gradient-editor .hue-container, - .easylogic-colorpicker .gradient-editor .hue { - position: absolute; - left: 10px; - right: 10px; - top: 4px; - height: 14px; - border-radius: 10px; - border: 1px solid #cccccc; - -webkit-box-sizing: border-box; - box-sizing: border-box; - background-color: transparent; - background-image: linear-gradient(45deg, #ccc 25%, transparent 25%), - linear-gradient(-45deg, #ccc 25%, transparent 25%), - linear-gradient(45deg, transparent 75%, #ccc 75%), - linear-gradient(-45deg, transparent 75%, #ccc 75%); - background-size: 10px 10px; - background-position: - 0 0, - 0 5px, - 5px -5px, - -5px 0px; - pointer-events: all; - } - .easylogic-colorpicker .gradient-editor .hue { - pointer-events: none; - } - .easylogic-colorpicker .gradient-editor .hue .step-list { - position: absolute; - width: 100%; - height: 100%; - top: 0px; - left: 0px; - border-radius: 10px; - pointer-events: none; - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='0'] - [data-index='0'] { - border: 0px; - -webkit-transform: translateX(-50%) translateY(calc(100%)); - transform: translateX(-50%) translateY(calc(100%)); - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='0'] - [data-index='0'] - .arrow { - display: block; - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='1'] - [data-index='1'] { - border: 0px; - -webkit-transform: translateX(-50%) translateY(calc(100%)); - transform: translateX(-50%) translateY(calc(100%)); - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='1'] - [data-index='1'] - .arrow { - display: block; - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='2'] - [data-index='2'] { - border: 0px; - -webkit-transform: translateX(-50%) translateY(calc(100%)); - transform: translateX(-50%) translateY(calc(100%)); - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='2'] - [data-index='2'] - .arrow { - display: block; - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='3'] - [data-index='3'] { - border: 0px; - -webkit-transform: translateX(-50%) translateY(calc(100%)); - transform: translateX(-50%) translateY(calc(100%)); - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='3'] - [data-index='3'] - .arrow { - display: block; - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='4'] - [data-index='4'] { - border: 0px; - -webkit-transform: translateX(-50%) translateY(calc(100%)); - transform: translateX(-50%) translateY(calc(100%)); - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='4'] - [data-index='4'] - .arrow { - display: block; - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='5'] - [data-index='5'] { - border: 0px; - -webkit-transform: translateX(-50%) translateY(calc(100%)); - transform: translateX(-50%) translateY(calc(100%)); - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='5'] - [data-index='5'] - .arrow { - display: block; - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='6'] - [data-index='6'] { - border: 0px; - -webkit-transform: translateX(-50%) translateY(calc(100%)); - transform: translateX(-50%) translateY(calc(100%)); - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='6'] - [data-index='6'] - .arrow { - display: block; - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='7'] - [data-index='7'] { - border: 0px; - -webkit-transform: translateX(-50%) translateY(calc(100%)); - transform: translateX(-50%) translateY(calc(100%)); - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='7'] - [data-index='7'] - .arrow { - display: block; - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='8'] - [data-index='8'] { - border: 0px; - -webkit-transform: translateX(-50%) translateY(calc(100%)); - transform: translateX(-50%) translateY(calc(100%)); - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='8'] - [data-index='8'] - .arrow { - display: block; - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='9'] - [data-index='9'] { - border: 0px; - -webkit-transform: translateX(-50%) translateY(calc(100%)); - transform: translateX(-50%) translateY(calc(100%)); - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='9'] - [data-index='9'] - .arrow { - display: block; - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='10'] - [data-index='10'] { - border: 0px; - -webkit-transform: translateX(-50%) translateY(calc(100%)); - transform: translateX(-50%) translateY(calc(100%)); - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='10'] - [data-index='10'] - .arrow { - display: block; - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='11'] - [data-index='11'] { - border: 0px; - -webkit-transform: translateX(-50%) translateY(calc(100%)); - transform: translateX(-50%) translateY(calc(100%)); - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='11'] - [data-index='11'] - .arrow { - display: block; - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='12'] - [data-index='12'] { - border: 0px; - -webkit-transform: translateX(-50%) translateY(calc(100%)); - transform: translateX(-50%) translateY(calc(100%)); - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='12'] - [data-index='12'] - .arrow { - display: block; - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='13'] - [data-index='13'] { - border: 0px; - -webkit-transform: translateX(-50%) translateY(calc(100%)); - transform: translateX(-50%) translateY(calc(100%)); - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='13'] - [data-index='13'] - .arrow { - display: block; - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='14'] - [data-index='14'] { - border: 0px; - -webkit-transform: translateX(-50%) translateY(calc(100%)); - transform: translateX(-50%) translateY(calc(100%)); - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='14'] - [data-index='14'] - .arrow { - display: block; - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='15'] - [data-index='15'] { - border: 0px; - -webkit-transform: translateX(-50%) translateY(calc(100%)); - transform: translateX(-50%) translateY(calc(100%)); - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='15'] - [data-index='15'] - .arrow { - display: block; - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='16'] - [data-index='16'] { - border: 0px; - -webkit-transform: translateX(-50%) translateY(calc(100%)); - transform: translateX(-50%) translateY(calc(100%)); - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='16'] - [data-index='16'] - .arrow { - display: block; - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='17'] - [data-index='17'] { - border: 0px; - -webkit-transform: translateX(-50%) translateY(calc(100%)); - transform: translateX(-50%) translateY(calc(100%)); - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='17'] - [data-index='17'] - .arrow { - display: block; - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='18'] - [data-index='18'] { - border: 0px; - -webkit-transform: translateX(-50%) translateY(calc(100%)); - transform: translateX(-50%) translateY(calc(100%)); - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='18'] - [data-index='18'] - .arrow { - display: block; - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='19'] - [data-index='19'] { - border: 0px; - -webkit-transform: translateX(-50%) translateY(calc(100%)); - transform: translateX(-50%) translateY(calc(100%)); - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list[data-selected-index='19'] - [data-index='19'] - .arrow { - display: block; - } - .easylogic-colorpicker .gradient-editor .hue .step-list .step { - pointer-events: all; - width: 10px; - height: 10px; - border: 1px solid white; - -webkit-box-sizing: border-box; - box-sizing: border-box; - display: inline-block; - position: absolute; - top: 50%; - border-radius: 100%; - -webkit-box-shadow: 0 0 2px 0px rgba(0, 0, 0, 0.5); - box-shadow: 0 0 2px 0px rgba(0, 0, 0, 0.5); - -webkit-transform: translateX(-50%) translateY(-50%); - transform: translateX(-50%) translateY(-50%); - background-color: transparent; - background-image: linear-gradient(45deg, #ccc 25%, transparent 25%), - linear-gradient(-45deg, #ccc 25%, transparent 25%), - linear-gradient(45deg, transparent 75%, #ccc 75%), - linear-gradient(-45deg, transparent 75%, #ccc 75%); - background-size: 10px 10px; - background-position: - 0 0, - 0 5px, - 5px -5px, - -5px 0px; - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list - .step[data-cut='true'] { - border-radius: 0%; - } - .easylogic-colorpicker - .gradient-editor - .hue - .step-list - .step[data-cut='true'] - .color-view { - border-radius: 0%; - } - .easylogic-colorpicker .gradient-editor .hue .step-list .step .color-view { - position: absolute; - left: 0px; - top: 0px; - bottom: 0px; - right: 0px; - border-radius: 100%; - pointer-events: none; - } - .easylogic-colorpicker .gradient-editor .hue .step-list .step .arrow { - position: absolute; - left: 50%; - display: none; - top: 0%; - width: 5px; - height: 5px; - -webkit-transform: translateX(-50%) translateY(-120%); - transform: translateX(-50%) translateY(-120%); - pointer-events: none; - -webkit-clip-path: polygon(40% 0%, 60% 0%, 60% 100%, 40% 100%); - clip-path: polygon(40% 0%, 60% 0%, 60% 100%, 40% 100%); - } - .easylogic-colorpicker .gradient-editor input[type='range'] { - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - width: 100%; - margin: 6.2px 0; - background-color: transparent; - } - .easylogic-colorpicker .gradient-editor input[type='range']:focus { - outline: none; - } - .easylogic-colorpicker - .gradient-editor - input[type='range']::-webkit-slider-runnable-track { - width: 100%; - height: 1px; - cursor: pointer; - background: #556375; - border-radius: 0px; - border: 0px solid #010101; - } - .easylogic-colorpicker - .gradient-editor - input[type='range']::-webkit-slider-thumb { - height: 10px; - width: 10px; - border-radius: 10px; - background: #556375; - cursor: pointer; - -webkit-appearance: none; - appearance: none; - margin-top: -5px; - } - .easylogic-colorpicker - .gradient-editor - input[type='range']:focus::-webkit-slider-runnable-track { - background: #3174ad; - } - .easylogic-colorpicker - .gradient-editor - input[type='range']::-moz-range-track { - width: 100%; - height: 1px; - cursor: pointer; - background: #556375; - border-radius: 0px; - border: 0px solid #010101; - } - .easylogic-colorpicker - .gradient-editor - input[type='range']::-moz-range-thumb { - border: 1px solid #000000; - height: 10px; - width: 10px; - border-radius: 9px; - background: #556375; - cursor: pointer; - } - .easylogic-colorpicker .gradient-editor input[type='range']::-ms-track { - width: 100%; - height: 1px; - cursor: pointer; - background: transparent; - border-color: transparent; - color: transparent; - } - .easylogic-colorpicker .gradient-editor input[type='range']::-ms-fill-lower { - background: #556375; - border: 0px solid #010101; - border-radius: 0px; - box-shadow: - 0px 0px 0px #000000, - 0px 0px 0px #0d0d0d; - } - .easylogic-colorpicker .gradient-editor input[type='range']::-ms-fill-upper { - background: #556375; - border: 0px solid #010101; - border-radius: 0px; - } - .easylogic-colorpicker .gradient-editor input[type='range']::-ms-thumb { - height: 10px; - width: 10px; - border-radius: 9px; - background: #556375; - cursor: pointer; - } - .easylogic-colorpicker - .gradient-editor - input[type='range']:focus::-ms-fill-lower { - background: #556375; - } - .easylogic-colorpicker - .gradient-editor - input[type='range']:focus::-ms-fill-upper { - background: #556375; - } - .easylogic-colorpicker.gradient-picker { - width: 460px; - -webkit-box-sizing: border-box; - box-sizing: border-box; - } - .easylogic-colorpicker.gradient-picker .gradient-body { - display: grid; - grid-template-columns: 1fr 224px; - } - .easylogic-colorpicker.gradient-picker .gradient-body > div:first-child { - padding: 5px; - border-right: 1px solid #cccccc; - } - .easylogic-colorpicker.gradient-picker .popup-item { - margin-bottom: 5px; - } - .easylogic-colorpicker.gradient-picker .grid-2 { - display: grid; - grid-template-columns: 60px 1fr; - } - .easylogic-colorpicker.gradient-picker .grid-2 label { - font-size: 11px; - padding-right: 2px; - text-align: left; - } - .easylogic-colorpicker.gradient-picker label { - font-size: 11px; - } - .easylogic-colorpicker.gradient-picker .gradient-preview { - width: 100%; - height: 100px; - position: relative; - margin-bottom: 5px; - border: 1px solid #cccccc; - border-radius: 3px; - overflow: hidden; - background-color: transparent; - background-image: linear-gradient(45deg, #ccc 25%, transparent 25%), - linear-gradient(-45deg, #ccc 25%, transparent 25%), - linear-gradient(45deg, transparent 75%, #ccc 75%), - linear-gradient(-45deg, transparent 75%, #ccc 75%); - background-size: 10px 10px; - background-position: - 0 0, - 0 5px, - 5px -5px, - -5px 0px; - } - .easylogic-colorpicker.gradient-picker .gradient-preview .gradient-view { - position: absolute; - left: 0px; - top: 0px; - right: 0px; - bottom: 0px; - } - .easylogic-colorpicker.gradient-picker .picker-tab { - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - } - .easylogic-colorpicker.gradient-picker .picker-tab .picker-tab-list { - text-align: center; - padding: 2px 5px; - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-tab-list[data-value='linear-gradient'] - .picker-tab-item[data-selected-value='linear-gradient'] { - -webkit-box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.5); - box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.5); - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-tab-list[data-value='linear-gradient'] - .picker-tab-item[data-selected-value='linear-gradient'] - .icon - svg - path { - fill: rgba(0, 0, 255, 0.5); - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-tab-list[data-value='repeating-linear-gradient'] - .picker-tab-item[data-selected-value='repeating-linear-gradient'] { - -webkit-box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.5); - box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.5); - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-tab-list[data-value='repeating-linear-gradient'] - .picker-tab-item[data-selected-value='repeating-linear-gradient'] - .icon - svg - path { - fill: rgba(0, 0, 255, 0.5); - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-tab-list[data-value='radial-gradient'] - .picker-tab-item[data-selected-value='radial-gradient'] { - -webkit-box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.5); - box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.5); - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-tab-list[data-value='radial-gradient'] - .picker-tab-item[data-selected-value='radial-gradient'] - .icon - svg - path { - fill: rgba(0, 0, 255, 0.5); - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-tab-list[data-value='repeating-radial-gradient'] - .picker-tab-item[data-selected-value='repeating-radial-gradient'] { - -webkit-box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.5); - box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.5); - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-tab-list[data-value='repeating-radial-gradient'] - .picker-tab-item[data-selected-value='repeating-radial-gradient'] - .icon - svg - path { - fill: rgba(0, 0, 255, 0.5); - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-tab-list[data-value='conic-gradient'] - .picker-tab-item[data-selected-value='conic-gradient'] { - -webkit-box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.5); - box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.5); - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-tab-list[data-value='conic-gradient'] - .picker-tab-item[data-selected-value='conic-gradient'] - .icon - svg - path { - fill: rgba(0, 0, 255, 0.5); - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-tab-list[data-value='repeating-conic-gradient'] - .picker-tab-item[data-selected-value='repeating-conic-gradient'] { - -webkit-box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.5); - box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.5); - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-tab-list[data-value='repeating-conic-gradient'] - .picker-tab-item[data-selected-value='repeating-conic-gradient'] - .icon - svg - path { - fill: rgba(0, 0, 255, 0.5); - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-tab-list - .picker-tab-item { - display: inline-block; - vertical-align: middle; - height: 20px; - width: 20px; - -webkit-box-sizing: border-box; - box-sizing: border-box; - cursor: pointer; - position: relative; - border-radius: 20%; - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-tab-list - .picker-tab-item - .icon { - pointer-events: none; - border-radius: 100%; - display: inline-block; - width: 90%; - height: 90%; - position: absolute; - left: 50%; - top: 50%; - -webkit-transform: translateX(-50%) translateY(-50%); - transform: translateX(-50%) translateY(-50%); - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-tab-list - .picker-tab-item - .icon - svg { - width: 100%; - height: 100%; - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-tab-list - .picker-tab-item[data-selected-value='static-gradient'] - .icon { - background-image: -webkit-gradient( - linear, - left top, - right top, - from(red), - to(red) - ); - background-image: linear-gradient(to right, red, red); - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-tab-list - .picker-tab-item[data-selected-value='linear-gradient'] - .icon { - background-image: -webkit-gradient( - linear, - left top, - right top, - from(black), - to(gray) - ); - background-image: linear-gradient(to right, black, gray); - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-tab-list - .picker-tab-item[data-selected-value='radial-gradient'] - .icon { - background-image: radial-gradient(closest-side, black, #ebf8e1, gray); - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-tab-list - .picker-tab-item[data-selected-value='conic-gradient'] - .icon { - background-image: conic-gradient(black, #ebf8e1); - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-tab-list - .picker-tab-item[data-selected-value='repeating-linear-gradient'] - .icon { - background-image: repeating-linear-gradient( - 45deg, - #3f87a6, - #ebf8e1 15%, - #f69d3c 20% - ); - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-tab-list - .picker-tab-item[data-selected-value='repeating-radial-gradient'] - .icon { - background-image: repeating-radial-gradient( - circle, - #3f87a6, - #ebf8e1 15%, - #f69d3c 20% - ); - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-tab-list - .picker-tab-item[data-selected-value='repeating-conic-gradient'] - .icon { - background-image: repeating-conic-gradient( - #3f87a6, - #ebf8e1 5%, - #f69d3c 10% - ); - } - .easylogic-colorpicker.gradient-picker .picker-tab .picker-gradient-selector { - padding: 2px 10px; - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-gradient-selector - .gradient-steps { - position: relative; - display: block; - height: 30px; - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-gradient-selector - .gradient-steps - .hue-container { - width: 100%; - height: 14px; - position: absolute; - z-index: 0; - background-color: transparent; - background-image: linear-gradient(45deg, #ccc 25%, transparent 25%), - linear-gradient(-45deg, #ccc 25%, transparent 25%), - linear-gradient(45deg, transparent 75%, #ccc 75%), - linear-gradient(-45deg, transparent 75%, #ccc 75%); - background-size: 10px 10px; - background-position: - 0 0, - 0 5px, - 5px -5px, - -5px 0px; - -webkit-box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.1); - box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.1); - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-gradient-selector - .gradient-steps - .hue { - position: relative; - padding: 0px; - margin: 0px; - cursor: pointer; - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-gradient-selector - .gradient-steps - .hue - > .step-list { - position: relative; - width: 100%; - cursor: copy; - height: 14px; - z-index: 1; - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-gradient-selector - .gradient-steps - .hue - > .step-list.mode-drag { - cursor: pointer; - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-gradient-selector - .gradient-steps - .hue - .drag-bar { - border: 0px; - background-color: transparent; - border: 2px solid white; - -webkit-box-shadow: 0 0 2px 0px rgba(0, 0, 0, 0.6); - box-shadow: 0 0 2px 0px rgba(0, 0, 0, 0.6); - width: 10px; - height: 10px; - -webkit-transform: none; - transform: none; - border-radius: 50%; - display: inline-block; - left: 0px; - top: 17px; - -webkit-transform: translateX(-50%); - transform: translateX(-50%); - position: absolute; - background-color: rgba(255, 255, 255, 0.8); - cursor: pointer; - -webkit-transition: top 0.3s ease-out; - transition: top 0.3s ease-out; - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-gradient-selector - .gradient-steps - .hue - .drag-bar - .guide-line { - pointer-events: none; - position: absolute; - width: 1px; - height: 0px; - bottom: 8px; - left: 3px; - -webkit-transform: translateX(-1px); - transform: translateX(-1px); - -webkit-transition: all 0.3s ease-out; - transition: all 0.3s ease-out; - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-gradient-selector - .gradient-steps - .hue - .drag-bar.selected { - z-index: 1; - top: 30px; - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-gradient-selector - .gradient-steps - .hue - .drag-bar.selected - .guide-line { - height: 17px; - } - .easylogic-colorpicker.gradient-picker - .picker-tab - .picker-gradient-selector - .gradient-steps - .hue - .drag-bar.selected - .guide-change { - opacity: 1; - } - .easylogic-colorpicker.gradient-picker .easylogic-colorpicker { - width: 223px; - border-radius: 0px; - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - border: 0px; - -webkit-box-shadow: none; - box-shadow: none; - } - .easylogic-colorpicker.sketch { - border-radius: 5px; - } - .easylogic-colorpicker.sketch > .colorpicker-body > .color { - margin: 10px 10px 2px 10px; - -webkit-box-sizing: border-box; - box-sizing: border-box; - height: 150px; - } - .easylogic-colorpicker.sketch > .colorpicker-body > .control { - padding: 0px; - } - .easylogic-colorpicker.sketch > .colorpicker-body > .control > .color, - .easylogic-colorpicker.sketch > .colorpicker-body > .control > .empty { - position: absolute; - right: 10px; - left: auto; - top: 2px; - width: 40px; - height: 44px; - border-radius: 2px; - -webkit-box-sizing: border-box; - box-sizing: border-box; - } - .easylogic-colorpicker.sketch > .colorpicker-body > .control > .color2, - .easylogic-colorpicker.sketch > .colorpicker-body > .control > .empty2 { - position: absolute; - right: 10px; - left: auto; - top: 50px; - width: 40px; - height: 20px; - border-radius: 2px; - -webkit-box-sizing: border-box; - box-sizing: border-box; - } - .easylogic-colorpicker.sketch > .colorpicker-body > .control > .color { - -webkit-box-shadow: inset 0px 0px 1px 0px rgba(0, 0, 0, 0.5); - box-shadow: inset 0px 0px 1px 0px rgba(0, 0, 0, 0.5); - } - .easylogic-colorpicker.sketch > .colorpicker-body > .control > .hue { - position: relative; - padding: 2px 2px 2px 10px; - margin: 0px 50px 0px 0px; - } - .easylogic-colorpicker.sketch - > .colorpicker-body - > .control - > .hue - > .hue-container { - border-radius: 0px; - height: 20px; - } - .easylogic-colorpicker.sketch > .colorpicker-body > .control > .hue-scale { - position: relative; - padding: 2px 2px 2px 10px; - margin: 0px 50px 0px 0px; - } - .easylogic-colorpicker.sketch - > .colorpicker-body - > .control - > .hue-scale - > .hue-scale-container { - border-radius: 0px; - height: 20px; - } - .easylogic-colorpicker.sketch > .colorpicker-body > .control > .opacity { - position: relative; - padding: 2px 2px 2px 10px; - margin: 0px 50px 0px 0px; - } - .easylogic-colorpicker.sketch - > .colorpicker-body - > .control - > .opacity - > .opacity-container { - border-radius: 0px; - height: 20px; - } - .easylogic-colorpicker.sketch > .colorpicker-body > .control .drag-bar, - .easylogic-colorpicker.sketch > .colorpicker-body > .control .drag-bar2 { - border-radius: 0px; - top: 50%; - left: 0px; - width: 5px; - height: 80%; - -webkit-transform: translateX(-50%) translateY(-50%); - transform: translateX(-50%) translateY(-50%); - border-radius: 1px; - bottom: 1px !important; - } - .easylogic-colorpicker.sketch > .colorpicker-body > .control .drag-bar.first, - .easylogic-colorpicker.sketch - > .colorpicker-body - > .control - .drag-bar2.first { - left: 0px; - -webkit-transform: translateX(50%) translateY(-50%) !important; - transform: translateX(50%) translateY(-50%) !important; - } - .easylogic-colorpicker.sketch > .colorpicker-body > .control .drag-bar.last, - .easylogic-colorpicker.sketch > .colorpicker-body > .control .drag-bar2.last { - -webkit-transform: translateX(-110%) translateY(-50%) !important; - transform: translateX(-110%) translateY(-50%) !important; - } - .easylogic-colorpicker.sketch - > .colorpicker-body - > .information - .information-change { - display: none; - } - .easylogic-colorpicker.sketch - > .colorpicker-body - > .information.rgb - .information-item.rgb { - display: inherit; - } - .easylogic-colorpicker.sketch - > .colorpicker-body - > .information.rgb - .information-item.hsl { - display: none !important; - } - .easylogic-colorpicker.sketch - > .colorpicker-body - > .information.hex - .information-item.hex { - display: inherit; - } - .easylogic-colorpicker.sketch - > .colorpicker-body - > .information.hex - .information-item.hsl { - display: none !important; - } - .easylogic-colorpicker.sketch - > .colorpicker-body - > .information.hsl - .information-item.rgb { - display: none !important; - } - .easylogic-colorpicker.sketch - > .colorpicker-body - > .information.hsl - .information-item.hsl { - display: inherit; - } - .easylogic-colorpicker.sketch - > .colorpicker-body - > .information - .information-item { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; - margin-right: 0px; - } - .easylogic-colorpicker.sketch - > .colorpicker-body - > .information - .information-item - > .input-field { - padding-left: 0px; - } - .easylogic-colorpicker.sketch - > .colorpicker-body - > .information - .information-item - > .input-field:last-child { - padding-right: 0px; - } - .easylogic-colorpicker.sketch - > .colorpicker-body - > .information - .information-item - > .input-field - > .title { - color: black; - font-size: 11px; - cursor: pointer; - } - .easylogic-colorpicker.sketch - > .colorpicker-body - > .information - .information-item - > .input-field:last-child:not(:first-child) { - padding-right: 0px; - } - .easylogic-colorpicker.sketch - > .colorpicker-body - > .information - .information-item.hex { - width: 74px; - padding-right: 0px; - padding-left: 5px; - } - .easylogic-colorpicker.sketch - > .colorpicker-body - > .information - .information-item.rgb { - width: 140px; - padding-left: 0px; - padding-right: 0px; - } - .easylogic-colorpicker.sketch - > .colorpicker-body - > .information - .information-item.hsl { - display: none; - width: 140px; - padding-left: 0px; - padding-right: 0px; - } - .easylogic-colorpicker.sketch > .colorpicker-body > .colorsets > .color-list { - margin-right: 0px; - padding-right: 12px; - } - .easylogic-colorpicker.sketch - > .colorpicker-body - > .colorsets - > .color-list - h6 { - margin-top: 0px; - margin-bottom: 8px; - } - .easylogic-colorpicker.sketch - > .colorpicker-body - > .colorsets - > .color-list - .color-item { - width: 16px; - height: 16px; - border-radius: 3px; - margin-right: 9px; - margin-bottom: 10px; - } - .easylogic-colorpicker.palette { - border-radius: 3px; - -webkit-box-shadow: none; - box-shadow: none; - } - .easylogic-colorpicker.palette > .colorpicker-body > .color { - display: none; - } - .easylogic-colorpicker.palette > .colorpicker-body > .control { - display: none; - } - .easylogic-colorpicker.palette > .colorpicker-body > .information { - display: none; - } - .easylogic-colorpicker.palette > .colorpicker-body > .colorsets { - -webkit-box-sizing: border-box; - box-sizing: border-box; - border-top: 0px; - } - .easylogic-colorpicker.palette - > .colorpicker-body - > .colorsets - > .color-list - h6 { - margin-top: 0px; - margin-bottom: 8px; - } - .easylogic-colorpicker.palette - > .colorpicker-body - > .colorsets - > .color-list - .color-item { - width: 15px; - height: 15px; - margin-right: 10px; - margin-bottom: 10px; - } - .easylogic-colorpicker.palette > .colorpicker-body > .color-chooser { - display: none; - -webkit-box-sizing: border-box; - box-sizing: border-box; - } - .easylogic-colorpicker.palette > .colorpicker-body > .color-chooser.open { - display: block; - top: -1px; - left: -1px; - right: -1px; - bottom: auto; - border-radius: 3px; - border: 1px solid #d8d8d8; - -webkit-box-shadow: 0 0px 10px 2px rgba(0, 0, 0, 0.12); - box-shadow: 0 0px 10px 2px rgba(0, 0, 0, 0.12); - } - .easylogic-colorpicker.palette - > .colorpicker-body - > .color-chooser.open - .color-chooser-container { - position: relative; - top: auto; - left: auto; - right: auto; - bottom: auto; - background-color: white; - -webkit-box-sizing: border-box; - box-sizing: border-box; - border-radius: 2px; - } - .easylogic-colorpicker.palette - > .colorpicker-body - > .color-chooser.open - .color-chooser-container - .colorsets-item-header { - position: relative; - left: auto; - top: auto; - right: auto; - bottom: auto; - border-top-left-radius: 3px; - border-top-right-radius: 3px; - } - .easylogic-colorpicker.palette - > .colorpicker-body - > .color-chooser.open - .color-chooser-container - .colorsets-list { - position: relative; - top: auto; - left: auto; - right: auto; - bottom: auto; - overflow: auto; - } - .easylogic-colorpicker.palette - > .colorpicker-body - > .color-chooser.open - .color-chooser-container - .colorsets-list - .colorsets-item:last-child { - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; - } - .easylogic-colorpicker.macos .colorpicker-body .wheel { - width: 224px; - height: 224px; - position: relative; - -webkit-box-sizing: border-box; - box-sizing: border-box; - } - .easylogic-colorpicker.macos .colorpicker-body .wheel .wheel-canvas { - width: 214px; - height: 214px; - border-radius: 50%; - position: absolute; - left: 5px; - top: 5px; - } - .easylogic-colorpicker.macos .colorpicker-body .wheel .drag-pointer { - display: inline-block; - position: absolute; - width: 10px; - height: 10px; - left: 50%; - top: 50%; - border: 1px solid white; - border-radius: 50%; - -webkit-transform: translateX(-50%) translateY(-50%); - transform: translateX(-50%) translateY(-50%); - z-index: 2; - } - .easylogic-colorpicker.macos .control { - padding-top: 0px; - } - .easylogic-colorpicker.macos .control > .color, - .easylogic-colorpicker.macos .control > .empty { - top: 4px; - } - .easylogic-colorpicker.macos .value { - position: relative; - padding: 6px 16px; - margin: 0px 0px 0px 42px; - -webkit-box-sizing: border-box; - box-sizing: border-box; - cursor: pointer; - } - .easylogic-colorpicker.macos .value > .value-container { - position: relative; - width: 100%; - height: 10px; - border-radius: 3px; - background-image: -webkit-gradient( - linear, - left top, - right top, - from(#000000), - to(rgba(255, 255, 255, 0)) - ); - background-image: linear-gradient( - to right, - #000000 0%, - rgba(255, 255, 255, 0) 100% - ); - -webkit-box-sizing: border-box; - box-sizing: border-box; - } - .easylogic-colorpicker.macos .value > .value-container .drag-bar { - position: absolute; - cursor: pointer; - top: 50%; - left: 0px; - -webkit-transform: translateX(-50%) translateY(-50%); - transform: translateX(-50%) translateY(-50%); - width: 12px; - height: 12px; - border-radius: 50%; - } - .easylogic-colorpicker.mini { - width: 180px; - display: inline-block; - } - .easylogic-colorpicker.mini .control { - padding: 0px; - } - .easylogic-colorpicker.mini .control .hue, - .easylogic-colorpicker.mini .control .opacity { - margin: 0px; - padding: 0px; - } - .easylogic-colorpicker.mini .control .hue > .hue-container { - border-radius: 0px; - overflow: hidden; - height: 20px; - } - .easylogic-colorpicker.mini .control .opacity > .opacity-container { - border-radius: 0px; - overflow: hidden; - height: 20px; - } - .easylogic-colorpicker.mini .control .drag-bar, - .easylogic-colorpicker.mini .control .drag-bar2 { - border: 0px; - background-color: transparent; - height: 100%; - width: 5px; - -webkit-box-sizing: border-box; - box-sizing: border-box; - -webkit-box-shadow: none; - box-shadow: none; - } - .easylogic-colorpicker.mini .control .drag-bar.last:before, - .easylogic-colorpicker.mini .control .drag-bar.lastafter, - .easylogic-colorpicker.mini .control .drag-bar2.last:before, - .easylogic-colorpicker.mini .control .drag-bar2.lastafter { - left: 1px; - } - .easylogic-colorpicker.mini .control .drag-bar.first:before, - .easylogic-colorpicker.mini .control .drag-bar.first:after, - .easylogic-colorpicker.mini .control .drag-bar2.first:before, - .easylogic-colorpicker.mini .control .drag-bar2.first:after { - left: 3px; - } - .easylogic-colorpicker.mini .control .drag-bar:before, - .easylogic-colorpicker.mini .control .drag-bar2:before { - content: ''; - position: absolute; - left: 2px; - top: 0px; - width: 0; - height: 0; - -webkit-transform: translateX(-50%); - transform: translateX(-50%); - border-left: 4px solid transparent; - border-right: 4px solid transparent; - border-top: 4px solid black; - } - .easylogic-colorpicker.mini .control .drag-bar:after, - .easylogic-colorpicker.mini .control .drag-bar2:after { - content: ''; - position: absolute; - left: 2px; - bottom: 0px; - width: 0; - height: 0; - -webkit-transform: translateX(-50%); - transform: translateX(-50%); - border-left: 4px solid transparent; - border-right: 4px solid transparent; - border-bottom: 4px solid black; - } - .easylogic-colorpicker.mini-vertical { - width: 180px; - display: inline-block; - } - .easylogic-colorpicker.mini-vertical .color { - display: inline-block; - width: 140px; - height: 160px; - vertical-align: middle; - } - .easylogic-colorpicker.mini-vertical .control { - height: 160px; - padding: 0px; - vertical-align: middle; - display: inline-block; - } - .easylogic-colorpicker.mini-vertical .control .hue, - .easylogic-colorpicker.mini-vertical .control .opacity { - margin: 0px; - padding: 0px; - width: 20px; - display: inline-block; - vertical-align: middle; - height: 100%; - position: relative; - } - .easylogic-colorpicker.mini-vertical .control .hue > .hue-container { - border-radius: 0px; - overflow: hidden; - height: 100%; - background: -webkit-gradient( - linear, - left bottom, - left top, - from(#ff0000), - color-stop(17%, #ffff00), - color-stop(33%, #00ff00), - color-stop(50%, #00ffff), - color-stop(67%, #0000ff), - color-stop(83%, #ff00ff), - to(#ff0000) - ); - background: linear-gradient( - to top, - #ff0000 0%, - #ffff00 17%, - #00ff00 33%, - #00ffff 50%, - #0000ff 67%, - #ff00ff 83%, - #ff0000 100% - ); - } - .easylogic-colorpicker.mini-vertical .control .opacity > .opacity-container { - border-radius: 0px; - overflow: hidden; - height: 100%; - width: 20px; - } - .easylogic-colorpicker.mini-vertical .control .drag-bar, - .easylogic-colorpicker.mini-vertical .control .drag-bar2 { - border: 0px; - background-color: transparent; - height: 2px; - width: 100%; - -webkit-box-sizing: border-box; - box-sizing: border-box; - -webkit-box-shadow: none; - box-shadow: none; - -webkit-transform: none; - transform: none; - } - .easylogic-colorpicker.mini-vertical .control .drag-bar.last:before, - .easylogic-colorpicker.mini-vertical .control .drag-bar.last:after, - .easylogic-colorpicker.mini-vertical .control .drag-bar2.last:before, - .easylogic-colorpicker.mini-vertical .control .drag-bar2.last:after { - top: 2px; - } - .easylogic-colorpicker.mini-vertical .control .drag-bar.first:before, - .easylogic-colorpicker.mini-vertical .control .drag-bar.first:after, - .easylogic-colorpicker.mini-vertical .control .drag-bar2.first:before, - .easylogic-colorpicker.mini-vertical .control .drag-bar2.first:after { - top: -1px; - } - .easylogic-colorpicker.mini-vertical .control .drag-bar:before, - .easylogic-colorpicker.mini-vertical .control .drag-bar2:before { - content: ''; - position: absolute; - left: 0px; - top: 2px; - width: 0; - height: 0; - -webkit-transform: translateY(-50%); - transform: translateY(-50%); - border-top: 4px solid transparent; - border-bottom: 4px solid transparent; - border-left: 4px solid black; - } - .easylogic-colorpicker.mini-vertical .control .drag-bar:after, - .easylogic-colorpicker.mini-vertical .control .drag-bar2:after { - content: ''; - position: absolute; - top: 2px; - right: 0px; - width: 0; - height: 0; - -webkit-transform: translateY(-50%); - transform: translateY(-50%); - border-top: 4px solid transparent; - border-bottom: 4px solid transparent; - border-right: 4px solid black; - } - .easylogic-colorpicker.ring .colorpicker-body > .color { - position: absolute; - width: 120px; - height: 120px; - left: 52px; - top: 52px; - } - .easylogic-colorpicker.ring .colorpicker-body .wheel { - width: 224px; - height: 224px; - position: relative; - -webkit-box-sizing: border-box; - box-sizing: border-box; - } - .easylogic-colorpicker.ring .colorpicker-body .wheel .wheel-canvas { - width: 214px; - height: 214px; - border-radius: 50%; - position: absolute; - left: 5px; - top: 5px; - } - .easylogic-colorpicker.ring .colorpicker-body .wheel .drag-pointer { - display: inline-block; - position: absolute; - width: 10px; - height: 10px; - left: 50%; - top: 50%; - border: 1px solid white; - border-radius: 50%; - -webkit-transform: translateX(-50%) translateY(-50%); - transform: translateX(-50%) translateY(-50%); - z-index: 2; - } - .easylogic-colorpicker.ring .control { - padding-top: 0px; - } - .easylogic-colorpicker.ring .control .value { - display: none; - } - .easylogic-colorpicker.ring .control > .color, - .easylogic-colorpicker.ring .control > .empty { - top: -17px; - width: 30px; - height: 30px; - border-radius: 2px; - } - .easylogic-colorpicker.xd { - display: inline-block; - padding-top: 12px; - width: 245px; - } - .easylogic-colorpicker.xd .color { - display: inline-block; - margin-left: 12px; - margin-bottom: 12px; - width: 170px; - height: 170px; - vertical-align: middle; - border-radius: 3px; - overflow: hidden; - -webkit-box-sizing: border-box; - box-sizing: border-box; - border: 1px solid #cecece; - } - .easylogic-colorpicker.xd .color > .saturation > .value > .drag-pointer { - border: 2px solid white; - width: 7px; - height: 7px; - -webkit-box-shadow: - 0 0 1px 0px black, - inset 0 0 1px 0px black; - box-shadow: - 0 0 1px 0px black, - inset 0 0 1px 0px black; - } - .easylogic-colorpicker.xd .control { - height: 170px; - padding: 0px; - vertical-align: middle; - display: inline-block; - margin-right: 12px; - margin-bottom: 12px; - } - .easylogic-colorpicker.xd .control .hue, - .easylogic-colorpicker.xd .control .opacity { - margin: 0px; - padding: 0px; - width: 13px; - display: inline-block; - vertical-align: middle; - height: 100%; - position: relative; - overflow: hidden; - border-radius: 3px; - margin-left: 8px; - } - .easylogic-colorpicker.xd .control .hue > .hue-container { - border-radius: 0px; - overflow: hidden; - height: 100%; - background: -webkit-gradient( - linear, - left bottom, - left top, - from(#ff0000), - color-stop(17%, #ffff00), - color-stop(33%, #00ff00), - color-stop(50%, #00ffff), - color-stop(67%, #0000ff), - color-stop(83%, #ff00ff), - to(#ff0000) - ); - background: linear-gradient( - to top, - #ff0000 0%, - #ffff00 17%, - #00ff00 33%, - #00ffff 50%, - #0000ff 67%, - #ff00ff 83%, - #ff0000 100% - ); - } - .easylogic-colorpicker.xd .control .opacity > .opacity-container { - border-radius: 0px; - overflow: hidden; - height: 100%; - } - .easylogic-colorpicker.xd .control .drag-bar, - .easylogic-colorpicker.xd .control .drag-bar2 { - border: 0px; - background-color: transparent; - border: 2px solid white; - -webkit-box-shadow: - 0 0 1px 0px black, - inset 0 0 1px 0px black; - box-shadow: - 0 0 1px 0px black, - inset 0 0 1px 0px black; - width: 10px; - height: 10px; - -webkit-box-sizing: border-box; - box-sizing: border-box; - -webkit-transform: none; - transform: none; - overflow: hidden; - left: 50%; - -webkit-transform: translateX(-50%) translateY(-50%); - transform: translateX(-50%) translateY(-50%); - } - .easylogic-colorpicker.xd .information { - margin-top: 5px; - } - .easylogic-colorpicker.vscode { - width: 336px; - display: inline-block; - background-color: #333; - border: 1px solid #ececec; - -webkit-box-sizing: border-box; - box-sizing: border-box; - border-radius: 0px; - } - .easylogic-colorpicker.vscode .colorpicker-body { - border-radius: 0px; - display: inline-block; - } - .easylogic-colorpicker.vscode .colorpicker-body .color-view { - height: 34px; - background-color: transparent; - background-image: linear-gradient(45deg, #ccc 25%, transparent 25%), - linear-gradient(-45deg, #ccc 25%, transparent 25%), - linear-gradient(45deg, transparent 75%, #ccc 75%), - linear-gradient(-45deg, transparent 75%, #ccc 75%); - background-size: 10px 10px; - background-position: - 0 0, - 0 5px, - 5px -5px, - -5px 0px; - } - .easylogic-colorpicker.vscode - .colorpicker-body - .color-view - .color-view-container { - line-height: 34px; - font-size: 14px; - text-align: center; - width: 100%; - height: 100%; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - text-shadow: 0 0 3px #535353; - } - .easylogic-colorpicker.vscode .colorpicker-body .color-tool { - padding: 8px; - } - .easylogic-colorpicker.vscode .color { - display: inline-block; - width: 240px; - height: 160px; - vertical-align: middle; - } - .easylogic-colorpicker.vscode .control { - height: 160px; - vertical-align: middle; - display: inline-block; - padding: 0px 0px 0px 4px; - } - .easylogic-colorpicker.vscode .control .hue, - .easylogic-colorpicker.vscode .control .opacity { - margin: 0px; - padding: 0px; - width: 30px; - display: inline-block; - vertical-align: middle; - height: 100%; - position: relative; - } - .easylogic-colorpicker.vscode .control .hue { - padding-left: 5px; - width: 35px; - } - .easylogic-colorpicker.vscode .control .hue > .hue-container { - border-radius: 0px; - height: 100%; - background: -webkit-gradient( - linear, - left bottom, - left top, - from(#ff0000), - color-stop(17%, #ffff00), - color-stop(33%, #00ff00), - color-stop(50%, #00ffff), - color-stop(67%, #0000ff), - color-stop(83%, #ff00ff), - to(#ff0000) - ); - background: linear-gradient( - to top, - #ff0000 0%, - #ffff00 17%, - #00ff00 33%, - #00ffff 50%, - #0000ff 67%, - #ff00ff 83%, - #ff0000 100% - ); - } - .easylogic-colorpicker.vscode .control .opacity > .opacity-container { - border-radius: 0px; - height: 100%; - width: 30px; - } - .easylogic-colorpicker.vscode .control .drag-bar, - .easylogic-colorpicker.vscode .control .drag-bar2 { - background-color: transparent; - height: 5px; - width: 33px; - -webkit-box-sizing: border-box; - box-sizing: border-box; - -webkit-box-shadow: none; - box-shadow: none; - -webkit-transform: translateY(-50%) translateX(-2px); - transform: translateY(-50%) translateX(-2px); - border: 1px solid rgba(255, 255, 255, 0); - border-radius: 0px; - -webkit-box-shadow: - 0 0 2px 0 black, - inset 0 0 0 0 black; - box-shadow: - 0 0 2px 0 black, - inset 0 0 0 0 black; - } - .easylogic-colorpicker.hide-colorsets .colorsets { - display: none !important; - } - - .colorsets-contextmenu { - position: fixed; - padding-top: 4px; - padding-bottom: 4px; - border-radius: 6px; - background-color: #ececec; - border: 1px solid #cccccc; - display: none; - list-style: none; - font-size: 13px; - padding-left: 0px; - padding-right: 0px; - } - .colorsets-contextmenu.show { - display: inline-block; - } - .colorsets-contextmenu .menu-item { - padding: 2px 20px; - cursor: default; - } - .colorsets-contextmenu .menu-item:hover { - background-color: #5ea3fb; - color: white; - } - .colorsets-contextmenu.small .menu-item.small-hide { - display: none; - } -`; diff --git a/packages-legacy/vuerd/src/components/css/highlight/atom-one-dark.style.ts b/packages-legacy/vuerd/src/components/css/highlight/atom-one-dark.style.ts deleted file mode 100644 index 1a0a219b..00000000 --- a/packages-legacy/vuerd/src/components/css/highlight/atom-one-dark.style.ts +++ /dev/null @@ -1,98 +0,0 @@ -import { css } from '@/core/tagged'; - -export const AtomOneDarkStyle = css` - /* - Atom One Dark by Daniel Gamage - Original One Dark Syntax theme from https://github.com/atom/one-dark-syntax - - base: #282c34 - mono-1: #abb2bf - mono-2: #818896 - mono-3: #5c6370 - hue-1: #56b6c2 - hue-2: #61aeee - hue-3: #c678dd - hue-4: #98c379 - hue-5: #e06c75 - hue-5-2: #be5046 - hue-6: #d19a66 - hue-6-2: #e6c07b - */ - - .hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - color: #abb2bf; - background: #282c34; - } - - .hljs-comment, - .hljs-quote { - color: #5c6370; - font-style: italic; - } - - .hljs-doctag, - .hljs-keyword, - .hljs-formula { - color: #c678dd; - } - - .hljs-section, - .hljs-name, - .hljs-selector-tag, - .hljs-deletion, - .hljs-subst { - color: #e06c75; - } - - .hljs-literal { - color: #56b6c2; - } - - .hljs-string, - .hljs-regexp, - .hljs-addition, - .hljs-attribute, - .hljs-meta-string { - color: #98c379; - } - - .hljs-built_in, - .hljs-class .hljs-title { - color: #e6c07b; - } - - .hljs-attr, - .hljs-variable, - .hljs-template-variable, - .hljs-type, - .hljs-selector-class, - .hljs-selector-attr, - .hljs-selector-pseudo, - .hljs-number { - color: #d19a66; - } - - .hljs-symbol, - .hljs-bullet, - .hljs-link, - .hljs-meta, - .hljs-selector-id, - .hljs-title { - color: #61aeee; - } - - .hljs-emphasis { - font-style: italic; - } - - .hljs-strong { - font-weight: bold; - } - - .hljs-link { - text-decoration: underline; - } -`; diff --git a/packages-legacy/vuerd/src/components/css/highlight/atom-one-light.style.ts b/packages-legacy/vuerd/src/components/css/highlight/atom-one-light.style.ts deleted file mode 100644 index f38c158f..00000000 --- a/packages-legacy/vuerd/src/components/css/highlight/atom-one-light.style.ts +++ /dev/null @@ -1,98 +0,0 @@ -import { css } from '@/core/tagged'; - -export const AtomOneLightStyle = css` - /* - Atom One Light by Daniel Gamage - Original One Light Syntax theme from https://github.com/atom/one-light-syntax - - base: #fafafa - mono-1: #383a42 - mono-2: #686b77 - mono-3: #a0a1a7 - hue-1: #0184bb - hue-2: #4078f2 - hue-3: #a626a4 - hue-4: #50a14f - hue-5: #e45649 - hue-5-2: #c91243 - hue-6: #986801 - hue-6-2: #c18401 - */ - - .hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - color: #383a42; - background: #fafafa; - } - - .hljs-comment, - .hljs-quote { - color: #a0a1a7; - font-style: italic; - } - - .hljs-doctag, - .hljs-keyword, - .hljs-formula { - color: #a626a4; - } - - .hljs-section, - .hljs-name, - .hljs-selector-tag, - .hljs-deletion, - .hljs-subst { - color: #e45649; - } - - .hljs-literal { - color: #0184bb; - } - - .hljs-string, - .hljs-regexp, - .hljs-addition, - .hljs-attribute, - .hljs-meta-string { - color: #50a14f; - } - - .hljs-built_in, - .hljs-class .hljs-title { - color: #c18401; - } - - .hljs-attr, - .hljs-variable, - .hljs-template-variable, - .hljs-type, - .hljs-selector-class, - .hljs-selector-attr, - .hljs-selector-pseudo, - .hljs-number { - color: #986801; - } - - .hljs-symbol, - .hljs-bullet, - .hljs-link, - .hljs-meta, - .hljs-selector-id, - .hljs-title { - color: #4078f2; - } - - .hljs-emphasis { - font-style: italic; - } - - .hljs-strong { - font-weight: bold; - } - - .hljs-link { - text-decoration: underline; - } -`; diff --git a/packages-legacy/vuerd/src/components/css/highlight/github-gist.style.ts b/packages-legacy/vuerd/src/components/css/highlight/github-gist.style.ts deleted file mode 100644 index 85daf410..00000000 --- a/packages-legacy/vuerd/src/components/css/highlight/github-gist.style.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { css } from '@/core/tagged'; - -export const GithubGistStyle = css` - /** - * GitHub Gist Theme - * Author : Anthony Attard - https://github.com/AnthonyAttard - * Author : Louis Barranqueiro - https://github.com/LouisBarranqueiro - */ - - .hljs { - display: block; - background: white; - padding: 0.5em; - color: #333333; - overflow-x: auto; - } - - .hljs-comment, - .hljs-meta { - color: #969896; - } - - .hljs-variable, - .hljs-template-variable, - .hljs-strong, - .hljs-emphasis, - .hljs-quote { - color: #df5000; - } - - .hljs-keyword, - .hljs-selector-tag, - .hljs-type { - color: #d73a49; - } - - .hljs-literal, - .hljs-symbol, - .hljs-bullet, - .hljs-attribute { - color: #0086b3; - } - - .hljs-section, - .hljs-name { - color: #63a35c; - } - - .hljs-tag { - color: #333333; - } - - .hljs-title, - .hljs-attr, - .hljs-selector-id, - .hljs-selector-class, - .hljs-selector-attr, - .hljs-selector-pseudo { - color: #6f42c1; - } - - .hljs-addition { - color: #55a532; - background-color: #eaffea; - } - - .hljs-deletion { - color: #bd2c00; - background-color: #ffecec; - } - - .hljs-link { - text-decoration: underline; - } - - .hljs-number { - color: #005cc5; - } - - .hljs-string { - color: #032f62; - } -`; diff --git a/packages-legacy/vuerd/src/components/css/highlight/monokai-sublime.style.ts b/packages-legacy/vuerd/src/components/css/highlight/monokai-sublime.style.ts deleted file mode 100644 index 656aa1c8..00000000 --- a/packages-legacy/vuerd/src/components/css/highlight/monokai-sublime.style.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { css } from '@/core/tagged'; - -export const MonokaiSublimeStyle = css` - /* - Monokai Sublime style. Derived from Monokai by noformnocontent http://nn.mit-license.org/ - */ - .hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #23241f; - } - - .hljs, - .hljs-tag, - .hljs-subst { - color: #f8f8f2; - } - - .hljs-strong, - .hljs-emphasis { - color: #a8a8a2; - } - - .hljs-bullet, - .hljs-quote, - .hljs-number, - .hljs-regexp, - .hljs-literal, - .hljs-link { - color: #ae81ff; - } - - .hljs-code, - .hljs-title, - .hljs-section, - .hljs-selector-class { - color: #a6e22e; - } - - .hljs-strong { - font-weight: bold; - } - - .hljs-emphasis { - font-style: italic; - } - - .hljs-keyword, - .hljs-selector-tag, - .hljs-name, - .hljs-attr { - color: #f92672; - } - - .hljs-symbol, - .hljs-attribute { - color: #66d9ef; - } - - .hljs-params, - .hljs-class .hljs-title { - color: #f8f8f2; - } - - .hljs-string, - .hljs-type, - .hljs-built_in, - .hljs-builtin-name, - .hljs-selector-id, - .hljs-selector-attr, - .hljs-selector-pseudo, - .hljs-addition, - .hljs-variable, - .hljs-template-variable { - color: #e6db74; - } - - .hljs-comment, - .hljs-deletion, - .hljs-meta { - color: #75715e; - } -`; diff --git a/packages-legacy/vuerd/src/components/css/highlight/vs2015.style.ts b/packages-legacy/vuerd/src/components/css/highlight/vs2015.style.ts deleted file mode 100644 index 7350532f..00000000 --- a/packages-legacy/vuerd/src/components/css/highlight/vs2015.style.ts +++ /dev/null @@ -1,119 +0,0 @@ -import { css } from '@/core/tagged'; - -export const VS2015Style = css` - /* - * Visual Studio 2015 dark style - * Author: Nicolas LLOBERA - */ - - .hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #1e1e1e; - color: #dcdcdc; - } - - .hljs-keyword, - .hljs-literal, - .hljs-symbol, - .hljs-name { - color: #569cd6; - } - .hljs-link { - color: #569cd6; - text-decoration: underline; - } - - .hljs-built_in, - .hljs-type { - color: #4ec9b0; - } - - .hljs-number, - .hljs-class { - color: #b8d7a3; - } - - .hljs-string, - .hljs-meta-string { - color: #d69d85; - } - - .hljs-regexp, - .hljs-template-tag { - color: #9a5334; - } - - .hljs-subst, - .hljs-function, - .hljs-title, - .hljs-params, - .hljs-formula { - color: #dcdcdc; - } - - .hljs-comment, - .hljs-quote { - color: #57a64a; - font-style: italic; - } - - .hljs-doctag { - color: #608b4e; - } - - .hljs-meta, - .hljs-meta-keyword, - .hljs-tag { - color: #9b9b9b; - } - - .hljs-variable, - .hljs-template-variable { - color: #bd63c5; - } - - .hljs-attr, - .hljs-attribute, - .hljs-builtin-name { - color: #9cdcfe; - } - - .hljs-section { - color: gold; - } - - .hljs-emphasis { - font-style: italic; - } - - .hljs-strong { - font-weight: bold; - } - - /*.hljs-code { - font-family:'Monospace'; -}*/ - - .hljs-bullet, - .hljs-selector-tag, - .hljs-selector-id, - .hljs-selector-class, - .hljs-selector-attr, - .hljs-selector-pseudo { - color: #d7ba7d; - } - - .hljs-addition { - background-color: #144212; - display: inline-block; - width: 100%; - } - - .hljs-deletion { - background-color: #600; - display: inline-block; - width: 100%; - } -`; diff --git a/packages-legacy/vuerd/src/components/css/index.ts b/packages-legacy/vuerd/src/components/css/index.ts deleted file mode 100644 index a1dc5af3..00000000 --- a/packages-legacy/vuerd/src/components/css/index.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { css } from '@/core/tagged'; - -import { ScrollbarStyle } from './scrollbar.style'; - -export const DefaultStyle = css` - .vuerd-button { - cursor: pointer; - } - .vuerd-button:hover { - fill: var(--vuerd-color-font-active); - } - - ${ScrollbarStyle} -`; diff --git a/packages-legacy/vuerd/src/components/css/scrollbar.style.ts b/packages-legacy/vuerd/src/components/css/scrollbar.style.ts deleted file mode 100644 index 81e88953..00000000 --- a/packages-legacy/vuerd/src/components/css/scrollbar.style.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { css } from '@/core/tagged'; - -export const ScrollbarStyle = css` - ::-webkit-scrollbar { - width: 12px; - height: 12px; - } - ::-webkit-scrollbar-track { - background: #fff0; - } - ::-webkit-scrollbar-corner { - background: #fff0; - } - ::-webkit-scrollbar-thumb { - background: var(--vuerd-color-scrollbar-thumb); - } - ::-webkit-scrollbar-thumb:hover { - background: var(--vuerd-color-scrollbar-thumb-active); - } - - /* firefox */ - .vuerd-scrollbar { - scrollbar-color: var(--vuerd-color-scrollbar-thumb) #fff0; - scrollbar-width: auto; - } -`; diff --git a/packages-legacy/vuerd/src/components/css/tippy.style.ts b/packages-legacy/vuerd/src/components/css/tippy.style.ts deleted file mode 100644 index ca2878da..00000000 --- a/packages-legacy/vuerd/src/components/css/tippy.style.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { css } from '@/core/tagged'; - -/** - * https://github.com/atomiks/tippyjs - */ -export const TippyStyle = css` - .tippy-box[data-animation='fade'][data-state='hidden'] { - opacity: 0; - } - [data-tippy-root] { - max-width: calc(100vw - 10px); - } - .tippy-box { - position: relative; - background-color: black; - color: #fff; - border-radius: 4px; - font-size: 14px; - line-height: 1.4; - outline: 0; - transition-property: transform, visibility, opacity; - } - .tippy-box[data-placement^='top'] > .tippy-arrow { - bottom: 0; - } - .tippy-box[data-placement^='top'] > .tippy-arrow:before { - bottom: -7px; - left: 0; - border-width: 8px 8px 0; - border-top-color: initial; - transform-origin: center top; - } - .tippy-box[data-placement^='bottom'] > .tippy-arrow { - top: 0; - } - .tippy-box[data-placement^='bottom'] > .tippy-arrow:before { - top: -7px; - left: 0; - border-width: 0 8px 8px; - border-bottom-color: initial; - transform-origin: center bottom; - } - .tippy-box[data-placement^='left'] > .tippy-arrow { - right: 0; - } - .tippy-box[data-placement^='left'] > .tippy-arrow:before { - border-width: 8px 0 8px 8px; - border-left-color: initial; - right: -7px; - transform-origin: center left; - } - .tippy-box[data-placement^='right'] > .tippy-arrow { - left: 0; - } - .tippy-box[data-placement^='right'] > .tippy-arrow:before { - left: -7px; - border-width: 8px 8px 8px 0; - border-right-color: initial; - transform-origin: center right; - } - .tippy-box[data-inertia][data-state='visible'] { - transition-timing-function: cubic-bezier(0.54, 1.5, 0.38, 1.11); - } - .tippy-arrow { - width: 16px; - height: 16px; - color: black; - } - .tippy-arrow:before { - content: ''; - position: absolute; - border-color: transparent; - border-style: solid; - } - .tippy-content { - position: relative; - padding: 5px 9px; - z-index: 1; - word-break: break-all; - } -`; diff --git a/packages-legacy/vuerd/src/components/drawer/Drawer.style.ts b/packages-legacy/vuerd/src/components/drawer/Drawer.style.ts deleted file mode 100644 index bbe6a931..00000000 --- a/packages-legacy/vuerd/src/components/drawer/Drawer.style.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { DefaultStyle } from '@/components/css'; -import { SIZE_MENUBAR_HEIGHT } from '@/core/layout'; -import { css } from '@/core/tagged'; - -export const DrawerStyle = css` - .vuerd-drawer { - position: absolute; - top: ${SIZE_MENUBAR_HEIGHT}px; - height: calc(100% - ${SIZE_MENUBAR_HEIGHT}px); - color: var(--vuerd-color-font); - opacity: 0.9; - background-color: var(--vuerd-color-contextmenu); - fill: #fff0; - padding: 20px; - box-sizing: border-box; - z-index: 100; - } - - .vuerd-drawer:hover { - fill: var(--vuerd-color-font); - } - - .vuerd-drawer-header { - height: 30px; - margin-bottom: 10px; - overflow: hidden; - } - - .vuerd-drawer-header > h3 { - display: inline-block; - margin: 0; - } - - .vuerd-drawer-header > .vuerd-button { - float: right; - } - - .vuerd-drawer-body { - height: calc(100% - 40px); - overflow: auto; - box-sizing: border-box; - } - - ${DefaultStyle} -`; diff --git a/packages-legacy/vuerd/src/components/drawer/Drawer.ts b/packages-legacy/vuerd/src/components/drawer/Drawer.ts deleted file mode 100644 index 16f7255b..00000000 --- a/packages-legacy/vuerd/src/components/drawer/Drawer.ts +++ /dev/null @@ -1,108 +0,0 @@ -import { - beforeMount, - defineComponent, - FunctionalComponent, - html, - watch, -} from '@vuerd/lit-observable'; -import { styleMap } from 'lit-html/directives/style-map'; - -import { IconStyle } from '@/components/Icon.style'; -import { useContext } from '@/core/hooks/context.hook'; -import { useDrawerAnimation } from '@/core/hooks/drawerAnimation.hook'; -import { useTooltip } from '@/core/hooks/tooltip.hook'; -import { useUnmounted } from '@/core/hooks/unmounted.hook'; -import { keymapOptionsToString } from '@/core/keymap'; -import { DEFAULT_WIDTH } from '@/core/layout'; - -import { DrawerStyle } from './Drawer.style'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-drawer': DrawerElement; - } -} - -export interface DrawerProps { - name: string; - width: number; - visible: boolean; -} - -export interface DrawerElement extends DrawerProps, HTMLElement {} - -const Drawer: FunctionalComponent = ( - props, - ctx -) => { - const contextRef = useContext(ctx); - const { drawerState, getWidth, onOpen, onClose } = useDrawerAnimation( - props, - ctx - ); - const { unmountedGroup } = useUnmounted(); - const { resetTooltip } = useTooltip(['.vuerd-button'], ctx); - - beforeMount(() => - unmountedGroup.push( - watch(props, propName => { - if (propName !== 'visible') return; - - props.visible ? onOpen() : onClose(); - props.visible && setTimeout(resetTooltip, 0); - }) - ) - ); - - return () => { - const { keymap } = contextRef.value; - const keymapStop = keymapOptionsToString(keymap.stop); - - return drawerState.visible - ? html` -
    -
    -

    ${props.name}

    - -
    -
    - -
    -
    - ` - : null; - }; -}; - -defineComponent('vuerd-drawer', { - observedProps: [ - { - name: 'name', - default: '', - }, - { - name: 'width', - type: Number, - default: DEFAULT_WIDTH, - }, - { - name: 'visible', - type: Boolean, - default: false, - }, - ], - style: [DrawerStyle, IconStyle].join(''), - render: Drawer, -}); diff --git a/packages-legacy/vuerd/src/components/drawer/HelpDrawer.ts b/packages-legacy/vuerd/src/components/drawer/HelpDrawer.ts deleted file mode 100644 index e9b8c802..00000000 --- a/packages-legacy/vuerd/src/components/drawer/HelpDrawer.ts +++ /dev/null @@ -1,185 +0,0 @@ -import { - defineComponent, - FunctionalComponent, - html, -} from '@vuerd/lit-observable'; - -import { useContext } from '@/core/hooks/context.hook'; -import { keymapOptionsToString } from '@/core/keymap'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-help-drawer': HelpDrawerElement; - } -} - -export interface HelpDrawerProps { - width: number; - visible: boolean; -} - -export interface HelpDrawerElement extends HelpDrawerProps, HTMLElement {} - -interface HelpDescribe { - name: string; - keymap: string; -} - -const HelpDrawer: FunctionalComponent = ( - props, - ctx -) => { - const contextRef = useContext(ctx); - - const getHelpDescribe = (): HelpDescribe[] => { - const { keymap } = contextRef.value; - return [ - { - name: 'Editing', - keymap: `dblclick, ${keymapOptionsToString(keymap.edit)}`, - }, - { - name: 'Editing', - keymap: 'dblclick, Enter', - }, - { - name: 'All Stop', - keymap: keymapOptionsToString(keymap.stop), - }, - { - name: 'Search', - keymap: keymapOptionsToString(keymap.find), - }, - { - name: 'Undo', - keymap: keymapOptionsToString(keymap.undo), - }, - { - name: 'Redo', - keymap: keymapOptionsToString(keymap.redo), - }, - { - name: 'Selection - table, memo', - keymap: `Ctrl + Drag, Click, Ctrl + Click, Cmd + Drag, Cmd + Click, ${keymapOptionsToString( - keymap.selectAllTable - )}`, - }, - { - name: 'Selection - column', - keymap: `Click, Ctrl + Click, Cmd + Click, Shift + Click, Shift + Arrow key(up, down), ${keymapOptionsToString( - keymap.selectAllColumn - )}`, - }, - { - name: 'Movement - table, memo, column', - keymap: 'Drag, Ctrl + Drag, Cmd + Drag', - }, - { - name: 'Copy - column', - keymap: keymapOptionsToString(keymap.copyColumn), - }, - { - name: 'Paste - column', - keymap: keymapOptionsToString(keymap.pasteColumn), - }, - { - name: 'Contextmenu - ERD, Table, Relationship, SQL DDL, Generator Code', - keymap: 'Right-click', - }, - { - name: 'Table Properties', - keymap: keymapOptionsToString(keymap.tableProperties), - }, - { - name: 'New Table', - keymap: keymapOptionsToString(keymap.addTable), - }, - { - name: 'New Memo', - keymap: keymapOptionsToString(keymap.addMemo), - }, - { - name: 'New - column, filter', - keymap: keymapOptionsToString(keymap.addColumn), - }, - { - name: 'Delete - table, memo', - keymap: keymapOptionsToString(keymap.removeTable), - }, - { - name: 'Delete - column, filter', - keymap: keymapOptionsToString(keymap.removeColumn), - }, - { - name: 'Select Hint - dataType, find', - keymap: 'Arrow key(right), Click', - }, - { - name: 'Move Hint - dataType, find', - keymap: 'Arrow key(up, down)', - }, - { - name: 'Primary Key', - keymap: keymapOptionsToString(keymap.primaryKey), - }, - { - name: 'Relationship - Zero One', - keymap: keymapOptionsToString(keymap.relationshipZeroOne), - }, - { - name: 'Relationship - Zero N', - keymap: keymapOptionsToString(keymap.relationshipZeroN), - }, - { - name: 'Relationship - One Only', - keymap: keymapOptionsToString(keymap.relationshipOneOnly), - }, - { - name: 'Relationship - One N', - keymap: keymapOptionsToString(keymap.relationshipOneN), - }, - { - name: 'Zoom In - ERD', - keymap: keymapOptionsToString(keymap.zoomIn), - }, - { - name: 'Zoom Out - ERD', - keymap: keymapOptionsToString(keymap.zoomOut), - }, - ]; - }; - - const onClose = () => ctx.dispatchEvent(new CustomEvent('close')); - - return () => html` - - - - - - - - ${getHelpDescribe().map( - describe => html` - - - - - ` - )} - -
    NameKeymap
    ${describe.name}${describe.keymap}
    -
    - `; -}; - -defineComponent('vuerd-help-drawer', { - observedProps: ['width', 'visible'], - shadow: false, - render: HelpDrawer, -}); diff --git a/packages-legacy/vuerd/src/components/drawer/SettingDrawer.style.ts b/packages-legacy/vuerd/src/components/drawer/SettingDrawer.style.ts deleted file mode 100644 index dda6a9f4..00000000 --- a/packages-legacy/vuerd/src/components/drawer/SettingDrawer.style.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { css } from '@/core/tagged'; - -export const SettingDrawerStyle = css` - .vuerd-setting-drawer tbody tr td { - padding-right: 20px; - padding-bottom: 10px; - } - - .vuerd-setting-drawer .vuerd-column-order { - cursor: move; - box-sizing: border-box; - padding: 5px; - display: inline-block; - } - .vuerd-setting-drawer .vuerd-column-order:hover { - color: var(--vuerd-color-font-active); - background-color: var(--vuerd-color-contextmenu-active); - } - .vuerd-setting-drawer .vuerd-column-order.draggable { - opacity: 0.5; - } - .vuerd-setting-drawer .vuerd-column-order.none-hover:hover { - color: var(--vuerd-color-font); - background-color: var(--vuerd-color-contextmenu); - } - - /* animation flip */ - .vuerd-setting-drawer .vuerd-column-order-move { - transition: transform 0.3s; - } - - .vuerd-setting-drawer .vuerd-recalculating-table-width-button { - box-sizing: border-box; - padding: 5px; - display: inline-block; - cursor: pointer; - fill: var(--vuerd-color-font); - font-size: 15px; - } - .vuerd-setting-drawer .vuerd-recalculating-table-width-button:hover { - color: var(--vuerd-color-font-active); - background-color: var(--vuerd-color-contextmenu-active); - fill: var(--vuerd-color-font-active); - } -`; diff --git a/packages-legacy/vuerd/src/components/drawer/SettingDrawer.ts b/packages-legacy/vuerd/src/components/drawer/SettingDrawer.ts deleted file mode 100644 index e5c310ef..00000000 --- a/packages-legacy/vuerd/src/components/drawer/SettingDrawer.ts +++ /dev/null @@ -1,186 +0,0 @@ -import { - defineComponent, - FunctionalComponent, - html, - observable, - queryAll, - updated, -} from '@vuerd/lit-observable'; -import { classMap } from 'lit-html/directives/class-map'; -import { repeat } from 'lit-html/directives/repeat'; - -import { FlipAnimation } from '@/core/flipAnimation'; -import { onPreventDefault } from '@/core/helper/dom.helper'; -import { useContext } from '@/core/hooks/context.hook'; -import { fromShadowDraggable } from '@/core/observable/fromShadowDraggable'; -import { - changeRelationshipDataTypeSync, - changeRelationshipOptimization, - moveColumnOrder, -} from '@/engine/command/canvas.cmd.helper'; -import { relationshipSort } from '@/engine/store/helper/relationship.helper'; -import { recalculatingTableWidth } from '@/engine/store/helper/table.helper'; -import { ColumnType } from '@@types/engine/store/canvas.state'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-setting-drawer': SettingDrawerElement; - } -} - -export interface SettingDrawerProps { - width: number; - visible: boolean; -} - -export interface SettingDrawerElement extends SettingDrawerProps, HTMLElement {} - -interface SettingDrawerState { - currentColumnType: ColumnType | null; -} - -const SettingDrawer: FunctionalComponent< - SettingDrawerProps, - SettingDrawerElement -> = (props, ctx) => { - const contextRef = useContext(ctx); - const state = observable({ - currentColumnType: null, - }); - const columnsOrderRef = queryAll>('.vuerd-column-order'); - const flipAnimation = new FlipAnimation( - ctx.shadowRoot ? ctx.shadowRoot : ctx, - '.vuerd-column-order', - 'vuerd-column-order-move' - ); - - const onClose = () => ctx.dispatchEvent(new CustomEvent('close')); - - const onChangeRelationshipDataTypeSync = (event: Event) => { - const checkbox = event.target as HTMLInputElement; - const { store } = contextRef.value; - store.dispatch(changeRelationshipDataTypeSync(checkbox.checked)); - }; - - const onChangeRelationshipOptimization = (event: Event) => { - const checkbox = event.target as HTMLInputElement; - const { store } = contextRef.value; - store.dispatch(changeRelationshipOptimization(checkbox.checked)); - }; - - const onMoveColumnOrder = ( - currentColumnType: ColumnType, - targetColumnType: ColumnType - ) => { - const { store } = contextRef.value; - - if (currentColumnType && currentColumnType !== targetColumnType) { - flipAnimation.snapshot(); - store.dispatch(moveColumnOrder(currentColumnType, targetColumnType)); - } - }; - - const onDragstartColumnOrder = (currentColumnType: ColumnType) => { - state.currentColumnType = currentColumnType; - - columnsOrderRef.value.forEach(el => el.classList.add('none-hover')); - - fromShadowDraggable(columnsOrderRef.value).subscribe({ - next: id => onMoveColumnOrder(currentColumnType, id as ColumnType), - complete: () => { - state.currentColumnType = null; - columnsOrderRef.value.forEach(el => el.classList.remove('none-hover')); - }, - }); - }; - - const onSyncTableWidth = () => { - const { - store: { - tableState: { tables }, - relationshipState: { relationships }, - }, - helper, - } = contextRef.value; - - recalculatingTableWidth(tables, helper); - relationshipSort(tables, relationships); - }; - - updated(() => flipAnimation.play()); - - return () => { - const { - canvasState: { setting }, - editorState: { readonly }, - } = contextRef.value.store; - - return html` - - - - - - - - - - - - - - - - - - - -
    Relationship DataType Sync - -
    ColumnType Order - ${repeat( - setting.columnOrder, - columnType => columnType, - columnType => html` -
    onDragstartColumnOrder(columnType)} - > - ${columnType} -
    - ` - )} -
    Recalculating table width -
    - Sync - -
    -
    -
    - `; - }; -}; - -defineComponent('vuerd-setting-drawer', { - observedProps: ['width', 'visible'], - shadow: false, - render: SettingDrawer, -}); diff --git a/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/GeneratorCode.style.ts b/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/GeneratorCode.style.ts deleted file mode 100644 index 967420d1..00000000 --- a/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/GeneratorCode.style.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { css } from '@/core/tagged'; - -export const GeneratorCodeStyle = css` - .vuerd-generator-code { - height: 100%; - white-space: pre; - box-sizing: border-box; - overflow: auto; - font-family: monospace !important; - outline: none; - } -`; diff --git a/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/GeneratorCode.ts b/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/GeneratorCode.ts deleted file mode 100644 index 3d2cd7d5..00000000 --- a/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/GeneratorCode.ts +++ /dev/null @@ -1,176 +0,0 @@ -import { - beforeMount, - defineComponent, - FunctionalComponent, - html, - observable, - watch, -} from '@vuerd/lit-observable'; -import { unsafeHTML } from 'lit-html/directives/unsafe-html'; - -import { ScrollbarStyle } from '@/components/css/scrollbar.style'; -import { createColumnNameCaseMenus } from '@/core/contextmenu/columnNameCase.menu'; -import { createGeneratorCodeMenus } from '@/core/contextmenu/generatorCode.menu'; -import { createHighlightThemeMenus } from '@/core/contextmenu/highlightTheme.menu'; -import { createLanguageMenus } from '@/core/contextmenu/language.menu'; -import { createTableNameCaseMenus } from '@/core/contextmenu/tableNameCase.menu'; -import { - createGeneratorCode, - createGeneratorCodeTable, -} from '@/core/generator/code'; -import { Bus } from '@/core/helper/eventBus.helper'; -import { highlightThemeMap, hljs, languageMap } from '@/core/highlight'; -import { useContext } from '@/core/hooks/context.hook'; -import { useUnmounted } from '@/core/hooks/unmounted.hook'; -import { Menu } from '@@types/core/contextmenu'; -import { Table } from '@@types/engine/store/table.state'; - -import { GeneratorCodeStyle } from './GeneratorCode.style'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-generator-code': GeneratorCodeElement; - } -} - -export interface GeneratorCodeProps { - table: Table | null; - mode: 'all' | 'table'; -} - -export interface GeneratorCodeElement extends GeneratorCodeProps, HTMLElement {} - -interface GeneratorCodeState { - contextmenuX: number; - contextmenuY: number; - menus: Menu[] | null; -} - -const GeneratorCode: FunctionalComponent< - GeneratorCodeProps, - GeneratorCodeElement -> = (props, ctx) => { - const contextRef = useContext(ctx); - const state = observable({ - menus: null, - contextmenuX: 0, - contextmenuY: 0, - }); - const { unmountedGroup } = useUnmounted(); - - const onContextmenu = (event: MouseEvent) => { - event.preventDefault(); - state.contextmenuX = event.clientX; - state.contextmenuY = event.clientY; - state.menus = createGeneratorCodeMenus(contextRef.value); - }; - - const onCloseContextmenu = () => (state.menus = null); - - const onMousedown = () => onCloseContextmenu(); - - beforeMount(() => { - const context = contextRef.value; - const { - store: { canvasState }, - eventBus, - } = context; - - unmountedGroup.push( - watch(canvasState, propName => { - if (propName !== 'language') return; - const menue = state.menus?.find(menu => menu.name === 'Language'); - if (!menue) return; - - menue.children = createLanguageMenus(context); - }), - watch(canvasState, propName => { - if (propName !== 'highlightTheme') return; - const menue = state.menus?.find( - menu => menu.name === 'Highlight Theme' - ); - if (!menue) return; - - menue.children = createHighlightThemeMenus(context); - }), - watch(canvasState, propName => { - if (propName !== 'tableCase') return; - const menue = state.menus?.find( - menu => menu.name === 'Table Name Case' - ); - if (!menue) return; - - menue.children = createTableNameCaseMenus(context); - }), - watch(canvasState, propName => { - if (propName !== 'columnCase') return; - const menue = state.menus?.find( - menu => menu.name === 'Column Name Case' - ); - if (!menue) return; - - menue.children = createColumnNameCaseMenus(context); - }), - eventBus.on(Bus.Contextmenu.close).subscribe(onCloseContextmenu) - ); - }); - - return () => { - const { store } = contextRef.value; - const { - canvasState: { highlightTheme, language }, - } = store; - const code = - props.mode === 'all' || !props.table - ? createGeneratorCode(store) - : createGeneratorCodeTable(store, props.table); - const codeHTML = hljs.highlight(code, { - language: languageMap[language], - }).value; - - return html` - -
    - ${unsafeHTML(codeHTML)} - ${state.menus - ? html` - - - ` - : null} -
    - `; - }; -}; - -defineComponent('vuerd-generator-code', { - observedProps: [ - { - name: 'table', - default: null, - }, - { - name: 'mode', - default: 'all', - }, - ], - styleMap: { - width: '100%', - height: '100%', - }, - style: [GeneratorCodeStyle, ScrollbarStyle].join(''), - render: GeneratorCode, -}); diff --git a/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/SQLDDL.style.ts b/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/SQLDDL.style.ts deleted file mode 100644 index 4a294575..00000000 --- a/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/SQLDDL.style.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { css } from '@/core/tagged'; - -export const SQLDDLStyle = css` - .vuerd-sql-ddl { - height: 100%; - white-space: pre; - box-sizing: border-box; - overflow: auto; - font-family: monospace !important; - outline: none; - } -`; diff --git a/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/SQLDDL.ts b/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/SQLDDL.ts deleted file mode 100644 index e52bfd4e..00000000 --- a/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/SQLDDL.ts +++ /dev/null @@ -1,161 +0,0 @@ -import { - beforeMount, - defineComponent, - FunctionalComponent, - html, - observable, - watch, -} from '@vuerd/lit-observable'; -import { unsafeHTML } from 'lit-html/directives/unsafe-html'; - -import { ScrollbarStyle } from '@/components/css/scrollbar.style'; -import { createBracketTypeMenus } from '@/core/contextmenu/bracketType.menu'; -import { createDatabaseMenus } from '@/core/contextmenu/database.menu'; -import { createHighlightThemeMenus } from '@/core/contextmenu/highlightTheme.menu'; -import { createSQLDDLMenus } from '@/core/contextmenu/sql-ddl.menu'; -import { Bus } from '@/core/helper/eventBus.helper'; -import { highlightThemeMap, hljs } from '@/core/highlight'; -import { useContext } from '@/core/hooks/context.hook'; -import { useUnmounted } from '@/core/hooks/unmounted.hook'; -import { createDDL, createDDLTable } from '@/core/sql/ddl'; -import { Menu } from '@@types/core/contextmenu'; -import { Table } from '@@types/engine/store/table.state'; - -import { SQLDDLStyle } from './SQLDDL.style'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-sql-ddl': SQLDDLElement; - } -} - -export interface SQLDDLProps { - table: Table | null; - mode: 'all' | 'table'; -} - -export interface SQLDDLElement extends SQLDDLProps, HTMLElement {} - -interface SQLDDLState { - contextmenuX: number; - contextmenuY: number; - menus: Menu[] | null; -} - -const SQLDDL: FunctionalComponent = ( - props, - ctx -) => { - const contextRef = useContext(ctx); - const state = observable({ - menus: null, - contextmenuX: 0, - contextmenuY: 0, - }); - const { unmountedGroup } = useUnmounted(); - - const onContextmenu = (event: MouseEvent) => { - event.preventDefault(); - state.contextmenuX = event.clientX; - state.contextmenuY = event.clientY; - state.menus = createSQLDDLMenus(contextRef.value); - }; - - const onCloseContextmenu = () => (state.menus = null); - - const onMousedown = () => onCloseContextmenu(); - - beforeMount(() => { - const context = contextRef.value; - const { - store: { canvasState }, - eventBus, - } = context; - - unmountedGroup.push( - watch(canvasState, propName => { - if (propName !== 'database') return; - const menue = state.menus?.find(menu => menu.name === 'Database'); - if (!menue) return; - - menue.children = createDatabaseMenus(context); - }), - watch(canvasState, propName => { - if (propName !== 'highlightTheme') return; - const menue = state.menus?.find( - menu => menu.name === 'Highlight Theme' - ); - if (!menue) return; - - menue.children = createHighlightThemeMenus(context); - }), - watch(canvasState, propName => { - if (propName !== 'bracketType') return; - const menue = state.menus?.find(menu => menu.name === 'Bracket'); - if (!menue) return; - - menue.children = createBracketTypeMenus(context); - }), - eventBus.on(Bus.Contextmenu.close).subscribe(onCloseContextmenu) - ); - }); - - return () => { - const { store } = contextRef.value; - const { - canvasState: { highlightTheme }, - } = store; - const sql = - props.mode === 'all' || !props.table - ? createDDL(store) - : createDDLTable(store, props.table); - const sqlHTML = hljs.highlight(sql, { - language: 'sql', - }).value; - - return html` - -
    - ${unsafeHTML(sqlHTML)} - ${state.menus - ? html` - - - ` - : null} -
    - `; - }; -}; - -defineComponent('vuerd-sql-ddl', { - observedProps: [ - { - name: 'table', - default: null, - }, - { - name: 'mode', - default: 'all', - }, - ], - styleMap: { - width: '100%', - height: '100%', - }, - style: [SQLDDLStyle, ScrollbarStyle].join(''), - render: SQLDDL, -}); diff --git a/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/TablePropertiesDrawer.style.ts b/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/TablePropertiesDrawer.style.ts deleted file mode 100644 index 23cb489f..00000000 --- a/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/TablePropertiesDrawer.style.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { SIZE_FONT } from '@/core/layout'; -import { css } from '@/core/tagged'; - -export const TablePropertiesDrawerStyle = css` - .vuerd-table-properties { - display: flex; - flex-direction: column; - height: 100%; - } - - .vuerd-table-properties-tab { - list-style: none; - padding: 0; - margin: 0; - display: flex; - margin-bottom: 10px; - } - .vuerd-table-properties-tab > li { - padding: 10px; - box-sizing: border-box; - cursor: pointer; - font-size: ${SIZE_FONT}px; - white-space: nowrap; - display: inline-block; - } - .vuerd-table-properties-tab > li:hover { - color: var(--vuerd-color-font-active); - background-color: var(--vuerd-color-contextmenu-active); - } - .vuerd-table-properties-tab > li.active { - color: var(--vuerd-color-font-active); - background-color: var(--vuerd-color-contextmenu-active); - } - - .vuerd-table-properties-body { - width: 100%; - height: 100%; - overflow: hidden; - } -`; diff --git a/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/TablePropertiesDrawer.ts b/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/TablePropertiesDrawer.ts deleted file mode 100644 index ed3371f9..00000000 --- a/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/TablePropertiesDrawer.ts +++ /dev/null @@ -1,126 +0,0 @@ -import './SQLDDL'; -import './GeneratorCode'; -import './indexes/Indexes'; - -import { - defineComponent, - FunctionalComponent, - html, - observable, -} from '@vuerd/lit-observable'; -import { classMap } from 'lit-html/directives/class-map'; - -import { getData } from '@/core/helper'; -import { useContext } from '@/core/hooks/context.hook'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-table-properties-drawer': TablePropertiesDrawerElement; - } -} - -export interface TablePropertiesDrawerProps { - width: number; - visible: boolean; - tableId: string; -} - -export interface TablePropertiesDrawerElement - extends TablePropertiesDrawerProps, - HTMLElement {} - -interface TablePropertiesDrawerState { - tabType: TabType; -} - -type TabType = 'indexes' | 'SQL' | 'GeneratorCode'; - -interface Tab { - name: string; - type: TabType; -} - -const tabs: Tab[] = [ - { - name: 'Indexes', - type: 'indexes', - }, - { - name: 'SQL DDL', - type: 'SQL', - }, - { - name: 'Generator Code', - type: 'GeneratorCode', - }, -]; - -const TablePropertiesDrawer: FunctionalComponent< - TablePropertiesDrawerProps, - TablePropertiesDrawerElement -> = (props, ctx) => { - const state = observable({ - tabType: 'indexes', - }); - const contextRef = useContext(ctx); - - const onClose = () => ctx.dispatchEvent(new CustomEvent('close')); - - const onChangeTab = (tabType: TabType) => (state.tabType = tabType); - - return () => { - const { tables } = contextRef.value.store.tableState; - const table = getData(tables, props.tableId); - - return html` - -
    -
      - ${tabs.map( - tab => html` -
    • onChangeTab(tab.type)} - > - ${tab.name} -
    • - ` - )} -
    -
    - ${table - ? state.tabType === 'indexes' - ? html`` - : state.tabType === 'SQL' - ? html`` - : state.tabType === 'GeneratorCode' - ? html` - - ` - : null - : null} -
    -
    -
    - `; - }; -}; - -defineComponent('vuerd-table-properties-drawer', { - observedProps: ['width', 'visible', 'tableId'], - shadow: false, - render: TablePropertiesDrawer, -}); diff --git a/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/indexes/IndexAddColumn.template.ts b/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/indexes/IndexAddColumn.template.ts deleted file mode 100644 index cfe4f5a8..00000000 --- a/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/indexes/IndexAddColumn.template.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { html } from '@vuerd/lit-observable'; -import { classMap } from 'lit-html/directives/class-map'; -import { repeat } from 'lit-html/directives/repeat'; -import { unsafeHTML } from 'lit-html/directives/unsafe-html'; - -import { Hint, HintState } from '@/core/hooks/columnHint.hook'; - -export interface HintProps { - onSelectHint(hint: Hint): void; -} - -export const hintTpl = (props: HintProps, state: HintState) => html` -
      - ${repeat( - state.hints, - hint => hint.id, - hint => { - return html` -
    • props.onSelectHint(hint)} - > - ${unsafeHTML(hint.html)} -
    • - `; - } - )} -
    -`; diff --git a/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/indexes/IndexAddColumn.ts b/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/indexes/IndexAddColumn.ts deleted file mode 100644 index 1240827c..00000000 --- a/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/indexes/IndexAddColumn.ts +++ /dev/null @@ -1,88 +0,0 @@ -import { - defineComponent, - FunctionalComponent, - html, -} from '@vuerd/lit-observable'; - -import { useColumnHint } from '@/core/hooks/columnHint.hook'; -import { useContext } from '@/core/hooks/context.hook'; -import { useFlipAnimation } from '@/core/hooks/flipAnimation.hook'; -import { Table } from '@@types/engine/store/table.state'; - -import { hintTpl } from './IndexAddColumn.template'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-index-add-column': IndexAddColumnElement; - } -} - -export interface IndexAddColumnProps { - table: Table; - indexId: string; -} - -export interface IndexAddColumnElement - extends IndexAddColumnProps, - HTMLElement {} - -const IndexAddColumn: FunctionalComponent< - IndexAddColumnProps, - IndexAddColumnElement -> = (props, ctx) => { - const contextRef = useContext(ctx); - const { hintState, onSelectHint, onKeydown, onInput } = useColumnHint( - props, - ctx - ); - useFlipAnimation( - ctx, - '.vuerd-index-add-column-hint', - 'vuerd-index-add-column-hint-move' - ); - - const onFocus = () => { - hintState.focus = true; - }; - - const onBlur = () => { - hintState.focus = false; - - setTimeout(() => { - if (hintState.focus) return; - hintState.hints = []; - }, 200); - }; - - return () => { - const { - store: { - editorState: { readonly }, - }, - } = contextRef.value; - - return html` -
    - - ${hintTpl({ onSelectHint }, hintState)} -
    - `; - }; -}; - -defineComponent('vuerd-index-add-column', { - observedProps: ['table', 'indexId'], - shadow: false, - render: IndexAddColumn, -}); diff --git a/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/indexes/IndexColumn.ts b/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/indexes/IndexColumn.ts deleted file mode 100644 index ff16a136..00000000 --- a/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/indexes/IndexColumn.ts +++ /dev/null @@ -1,184 +0,0 @@ -import { - beforeMount, - defineComponent, - FunctionalComponent, - html, - observable, - queryAll, - updated, - watch, -} from '@vuerd/lit-observable'; -import { classMap } from 'lit-html/directives/class-map'; -import { repeat } from 'lit-html/directives/repeat'; - -import { FlipAnimation } from '@/core/flipAnimation'; -import { cloneDeep, getData } from '@/core/helper'; -import { useContext } from '@/core/hooks/context.hook'; -import { useTooltip } from '@/core/hooks/tooltip.hook'; -import { useUnmounted } from '@/core/hooks/unmounted.hook'; -import { fromShadowDraggable } from '@/core/observable/fromShadowDraggable'; -import { - changeIndexColumnOrderType, - moveIndexColumn, - removeIndexColumn, -} from '@/engine/command/index.cmd.helper'; -import { - Column, - Index, - OrderType, - Table, -} from '@@types/engine/store/table.state'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-index-column': IndexColumnElement; - } -} - -export interface IndexColumnProps { - table: Table; - indexId: string; -} - -export interface IndexColumnElement extends IndexColumnProps, HTMLElement {} - -interface IndexColumn extends Column { - orderType: OrderType; -} - -interface IndexModel { - id: string; - columns: IndexColumn[]; -} - -const IndexColumn: FunctionalComponent = ( - props, - ctx -) => { - const contextRef = useContext(ctx); - const state = observable({ currentColumnId: '' }); - const columnsRef = queryAll>('.vuerd-index-column'); - const columnNamesRef = queryAll>( - '.vuerd-index-column-name' - ); - const flipAnimation = new FlipAnimation( - ctx.shadowRoot ? ctx.shadowRoot : ctx, - '.vuerd-index-column', - 'vuerd-index-column-move' - ); - const { unmountedGroup } = useUnmounted(); - const { resetTooltip } = useTooltip(['.vuerd-index-column-button'], ctx); - - const getIndex = (): IndexModel | null => { - const { indexes } = contextRef.value.store.tableState; - const index = getData(indexes, props.indexId); - - if (!index) return null; - - return { - id: index.id, - columns: index.columns - .map(column => { - const data = getData(props.table.columns, column.id); - if (!data) return null; - - const newData = cloneDeep(data) as IndexColumn; - newData.orderType = column.orderType; - return newData; - }) - .filter(column => !!column) as IndexColumn[], - }; - }; - - const onChangeColumnOrderType = (column: IndexColumn) => { - const { store } = contextRef.value; - let value: OrderType = 'ASC'; - if (column.orderType === 'ASC') { - value = 'DESC'; - } - store.dispatch(changeIndexColumnOrderType(props.indexId, column.id, value)); - }; - - const onRemoveColumn = (column: IndexColumn) => { - const { store } = contextRef.value; - store.dispatch(removeIndexColumn(props.indexId, column.id)); - }; - - const onMoveIndexColumn = (currentId: string, targetId: string) => { - const { store } = contextRef.value; - if (currentId === targetId) return; - - flipAnimation.snapshot(); - store.dispatch(moveIndexColumn(props.indexId, currentId, targetId)); - }; - - const onDragstart = (currentId: string) => { - state.currentColumnId = currentId; - - columnNamesRef.value.forEach(el => el.classList.add('none-hover')); - - fromShadowDraggable(columnsRef.value).subscribe({ - next: id => onMoveIndexColumn(currentId, id), - complete: () => { - state.currentColumnId = ''; - columnNamesRef.value.forEach(el => el.classList.remove('none-hover')); - }, - }); - }; - - beforeMount(() => { - const { indexes } = contextRef.value.store.tableState; - const index = getData(indexes, props.indexId) as Index; - - unmountedGroup.push(watch(index.columns, () => resetTooltip())); - }); - - updated(() => flipAnimation.play()); - - return () => { - const index = getIndex(); - - return index - ? html` - ${repeat( - index.columns, - column => column.id, - column => html` -
    onDragstart(column.id)} - > -
    ${column.name}
    -
    onChangeColumnOrderType(column)} - > - ${column.orderType} -
    -
    - onRemoveColumn(column)} - > -
    -
    - ` - )} - ` - : null; - }; -}; - -defineComponent('vuerd-index-column', { - observedProps: ['table', 'indexId'], - shadow: false, - render: IndexColumn, -}); diff --git a/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/indexes/Indexes.style.ts b/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/indexes/Indexes.style.ts deleted file mode 100644 index af8963a8..00000000 --- a/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/indexes/Indexes.style.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { SIZE_COLUMN_MARGIN_RIGHT, SIZE_FONT } from '@/core/layout'; -import { css } from '@/core/tagged'; - -export const IndexesStyle = css` - .vuerd-indexes { - display: flex; - flex-direction: column; - height: 100%; - } - - .vuerd-indexes input { - display: inline-flex; - vertical-align: middle; - align-items: center; - margin-right: ${SIZE_COLUMN_MARGIN_RIGHT}px; - color: var(--vuerd-color-font-active); - background-color: var(--vuerd-color-contextmenu); - outline: none; - border: none; - opacity: 0.9; - padding: 1px 0 1px 0; - height: 23.5px; - font-size: ${SIZE_FONT}px; - font-family: var(--vuerd-font-family); - border-bottom: solid #fff0 1.5px; - } - .vuerd-indexes input:focus { - border-bottom: solid var(--vuerd-color-edit) 1.5px; - } - .vuerd-index { - fill: #fff0; - color: var(--vuerd-color-font-active); - } - .vuerd-index:hover, - .vuerd-index-column:hover { - fill: var(--vuerd-color-font); - } - .vuerd-index-column { - fill: #fff0; - display: inline-block; - } - .vuerd-index-column.draggable { - opacity: 0.5; - } - .vuerd-index-unique { - display: inline-block; - cursor: pointer; - color: var(--vuerd-color-font-placeholder); - } - .vuerd-index-unique.checked { - color: var(--vuerd-color-font-active); - } - .vuerd-index-column-name { - display: inline-block; - cursor: move; - padding: 5px; - } - .vuerd-index-column-name:hover { - background-color: var(--vuerd-color-contextmenu-active); - } - .vuerd-index-column-name.none-hover:hover { - background-color: var(--vuerd-color-contextmenu); - } - .vuerd-index-column-order { - display: inline-block; - cursor: pointer; - } - .vuerd-index-add-column { - display: inline-block; - position: relative; - } - .vuerd-index-add-column-list { - position: absolute; - top: 27px; - left: 0; - z-index: 100; - color: var(--vuerd-color-font); - background-color: var(--vuerd-color-contextmenu); - opacity: 0.9; - list-style: none; - padding: 0; - margin: 0; - } - .vuerd-index-add-column-list > li { - padding: 5px; - cursor: pointer; - font-size: ${SIZE_FONT}px; - } - .vuerd-index-add-column-list > li:hover, - .vuerd-index-add-column-hint.active { - color: var(--vuerd-color-font-active); - background-color: var(--vuerd-color-contextmenu-active); - } - .vuerd-index-add-column-list > li:hover .vuerd-index-add-column-hint-mark, - .vuerd-index-add-column-hint.active .vuerd-index-add-column-hint-mark { - color: var(--vuerd-color-font-active); - } - /* animation flip */ - .vuerd-index-add-column-hint-move { - transition: transform 0.2s; - } - .vuerd-index-column-move { - transition: transform 0.3s; - } - - .vuerd-index-add-column-hint-mark { - color: var(--vuerd-color-edit); - } -`; diff --git a/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/indexes/Indexes.ts b/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/indexes/Indexes.ts deleted file mode 100644 index b549c46c..00000000 --- a/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/indexes/Indexes.ts +++ /dev/null @@ -1,171 +0,0 @@ -import './IndexAddColumn'; -import './IndexColumn'; - -import { - beforeMount, - defineComponent, - FunctionalComponent, - html, - watch, -} from '@vuerd/lit-observable'; -import { classMap } from 'lit-html/directives/class-map'; -import { repeat } from 'lit-html/directives/repeat'; - -import { onPreventDefault } from '@/core/helper/dom.helper'; -import { useContext } from '@/core/hooks/context.hook'; -import { useTooltip } from '@/core/hooks/tooltip.hook'; -import { useUnmounted } from '@/core/hooks/unmounted.hook'; -import { - addIndex, - changeIndexName, - changeIndexUnique, - removeIndex, -} from '@/engine/command/index.cmd.helper'; -import { Index, Table } from '@@types/engine/store/table.state'; - -import { IndexStyle } from './index.style'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-indexes': IndexesElement; - } -} - -export interface IndexesProps { - table: Table | null; -} - -export interface IndexesElement extends IndexesProps, HTMLElement {} - -const Indexes: FunctionalComponent = ( - props, - ctx -) => { - const contextRef = useContext(ctx); - const { resetTooltip } = useTooltip( - ['.vuerd-indexes-button', '.vuerd-index-unique'], - ctx - ); - const { unmountedGroup } = useUnmounted(); - - const getIndexes = () => { - const { indexes } = contextRef.value.store.tableState; - return indexes.filter(index => index.tableId === props.table?.id); - }; - - const onAddIndex = () => { - if (!props.table) return; - const { store } = contextRef.value; - store.dispatch(addIndex(props.table.id)); - }; - - const onRemoveIndex = (index: Index) => { - const { store } = contextRef.value; - store.dispatch(removeIndex([index.id])); - }; - - const onChangeIndexUnique = (index: Index) => { - const { store } = contextRef.value; - store.dispatch(changeIndexUnique(index.id, !index.unique)); - }; - - const onInput = (event: Event, index: Index) => { - const { store } = contextRef.value; - const input = event.target as HTMLInputElement; - store.dispatch(changeIndexName(index.id, input.value)); - }; - - beforeMount(() => { - const { indexes } = contextRef.value.store.tableState; - unmountedGroup.push(watch(indexes, () => resetTooltip())); - }); - - return () => { - const { - store: { - editorState: { readonly }, - }, - } = contextRef.value; - const { table } = props; - const indexes = getIndexes(); - - return table - ? html` -
    -
    - -
    -
    - ${repeat( - indexes, - index => index.id, - index => html` -
    -
    - onRemoveIndex(index)} - > -
    -
    onChangeIndexUnique(index)} - > - UQ -
    - onInput(event, index)} - /> - - -
    - ` - )} -
    -
    - ` - : null; - }; -}; - -defineComponent('vuerd-indexes', { - observedProps: [ - { - name: 'table', - default: null, - }, - ], - styleMap: { - width: '100%', - height: '100%', - }, - style: IndexStyle, - render: Indexes, -}); diff --git a/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/indexes/index.style.ts b/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/indexes/index.style.ts deleted file mode 100644 index 9d3051b3..00000000 --- a/packages-legacy/vuerd/src/components/drawer/tablePropertiesDrawer/indexes/index.style.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { DefaultStyle } from '@/components/css/index'; - -import { IndexesStyle } from './Indexes.style'; - -export const IndexStyle = [DefaultStyle, IndexesStyle].join(''); diff --git a/packages-legacy/vuerd/src/components/editor/Canvas.style.ts b/packages-legacy/vuerd/src/components/editor/Canvas.style.ts deleted file mode 100644 index 23855056..00000000 --- a/packages-legacy/vuerd/src/components/editor/Canvas.style.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { css } from '@/core/tagged'; - -export const CanvasStyle = css` - .vuerd-canvas-controller { - position: relative; - background-color: var(--vuerd-color-canvas); - will-change: transform; - } - - .vuerd-canvas { - position: relative; - background-color: var(--vuerd-color-canvas); - } -`; diff --git a/packages-legacy/vuerd/src/components/editor/Canvas.ts b/packages-legacy/vuerd/src/components/editor/Canvas.ts deleted file mode 100644 index d6040da8..00000000 --- a/packages-legacy/vuerd/src/components/editor/Canvas.ts +++ /dev/null @@ -1,121 +0,0 @@ -import './memo/Memo'; -import './table/Table'; -import './table/HighLevelTable'; -import './DrawRelationship'; -import './CanvasSVG'; - -import { - beforeMount, - defineComponent, - FunctionalComponent, - html, - watch, -} from '@vuerd/lit-observable'; -import { cache } from 'lit-html/directives/cache'; -import { repeat } from 'lit-html/directives/repeat'; -import { styleMap } from 'lit-html/directives/style-map'; - -import { useContext } from '@/core/hooks/context.hook'; -import { useRenderTrigger } from '@/core/hooks/renderTrigger.hook'; -import { useUnmounted } from '@/core/hooks/unmounted.hook'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-canvas': CanvasElement; - } -} - -export interface CanvasProps {} - -export interface CanvasElement extends CanvasProps, HTMLElement {} - -const Canvas: FunctionalComponent = ( - props, - ctx -) => { - const contextRef = useContext(ctx); - const { unmountedGroup } = useUnmounted(); - const { renderTrigger } = useRenderTrigger(); - - beforeMount(() => { - const { - memoState: { memos }, - tableState: { tables }, - } = contextRef.value.store; - - unmountedGroup.push( - watch(tables, renderTrigger), - watch(memos, renderTrigger) - ); - }); - - return () => { - const { - canvasState: { width, height, scrollTop, scrollLeft, zoomLevel, show }, - memoState: { memos }, - tableState: { tables }, - editorState: { drawRelationship }, - } = contextRef.value.store; - - return html` -
    -
    - ${cache( - zoomLevel > 0.7 - ? repeat( - tables, - table => table.id, - table => html`` - ) - : repeat( - tables, - table => table.id, - table => html` - - ` - ) - )} - ${repeat( - memos, - memo => memo.id, - memo => html`` - )} - ${show.relationship - ? html`` - : null} - ${drawRelationship?.start - ? html` - - ` - : null} -
    -
    - `; - }; -}; - -defineComponent('vuerd-canvas', { - shadow: false, - render: Canvas, -}); diff --git a/packages-legacy/vuerd/src/components/editor/CanvasSVG.style.ts b/packages-legacy/vuerd/src/components/editor/CanvasSVG.style.ts deleted file mode 100644 index 07f82042..00000000 --- a/packages-legacy/vuerd/src/components/editor/CanvasSVG.style.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { css } from '@/core/tagged'; - -export const CanvasSVGStyle = css` - .vuerd-canvas-svg { - position: absolute; - top: 0; - left: 0; - overflow: visible; - } - - .vuerd-relationship { - stroke: var(--vuerd-color-key-fk); - } - - .vuerd-relationship.identification { - stroke: var(--vuerd-color-key-pfk); - } - - .vuerd-relationship.active { - stroke: var(--vuerd-color-edit); - } -`; diff --git a/packages-legacy/vuerd/src/components/editor/CanvasSVG.ts b/packages-legacy/vuerd/src/components/editor/CanvasSVG.ts deleted file mode 100644 index 0334ca7d..00000000 --- a/packages-legacy/vuerd/src/components/editor/CanvasSVG.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { - defineComponent, - FunctionalComponent, - observable, - svg, -} from '@vuerd/lit-observable'; -import { classMap } from 'lit-html/directives/class-map'; -import { repeat } from 'lit-html/directives/repeat'; -import { styleMap } from 'lit-html/directives/style-map'; - -import { useContext } from '@/core/hooks/context.hook'; -import { SIZE_TABLE_BORDER, SIZE_TABLE_PADDING } from '@/core/layout'; -import { - activeColumn, - activeEndColumn, -} from '@/engine/command/column.cmd.helper'; -import { Relationship } from '@@types/engine/store/relationship.state'; - -import { relationshipTpl } from './Relationship.template'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-canvas-svg': CanvasSVGElement; - } -} - -export interface CanvasSVGProps {} - -export interface CanvasSVGElement extends CanvasSVGProps, HTMLElement {} - -const SIZE_GRID = 100; -const MARGIN = 5; -const TABLE_PADDING = (SIZE_TABLE_PADDING + SIZE_TABLE_BORDER) * 2; -const TABLE_MARGIN = MARGIN * 2 + TABLE_PADDING; - -const CanvasSVG: FunctionalComponent = ( - props, - ctx -) => { - const contextRef = useContext(ctx); - const state = observable({ activeId: '' }); - - const onMouseover = (relationship: Relationship) => { - const { store } = contextRef.value; - store.dispatch(activeColumn(relationship)); - state.activeId = relationship.id; - }; - - const onMouseleave = (relationship: Relationship) => { - const { store } = contextRef.value; - store.dispatch(activeEndColumn(relationship)); - state.activeId = ''; - }; - - const getRatio = () => { - const { - store: { - canvasState: { width }, - }, - } = contextRef.value; - return SIZE_GRID / width; - }; - - return () => { - const { - store: { - canvasState: { width, height }, - relationshipState: { relationships }, - }, - } = contextRef.value; - const ratio = getRatio(); - - return svg` - - ${repeat( - relationships, - relationship => relationship.id, - relationship => - svg` - onMouseover(relationship)} - @mouseleave=${() => onMouseleave(relationship)} - > - ${relationshipTpl(relationship, 3)} - - ` - )} - -`; - }; -}; - -defineComponent('vuerd-canvas-svg', { - shadow: false, - render: CanvasSVG, -}); diff --git a/packages-legacy/vuerd/src/components/editor/DragSelect.style.ts b/packages-legacy/vuerd/src/components/editor/DragSelect.style.ts deleted file mode 100644 index e4ee7371..00000000 --- a/packages-legacy/vuerd/src/components/editor/DragSelect.style.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { css } from '@/core/tagged'; - -export const DragSelectStyle = css` - .vuerd-drag-select { - position: absolute; - stroke: var(--vuerd-color-focus); - pointer-events: none; - } -`; diff --git a/packages-legacy/vuerd/src/components/editor/DragSelect.ts b/packages-legacy/vuerd/src/components/editor/DragSelect.ts deleted file mode 100644 index e9221e98..00000000 --- a/packages-legacy/vuerd/src/components/editor/DragSelect.ts +++ /dev/null @@ -1,157 +0,0 @@ -import { - beforeMount, - closestElement, - defineComponent, - FunctionalComponent, - observable, - svg, -} from '@vuerd/lit-observable'; -import { styleMap } from 'lit-html/directives/style-map'; -import { fromEvent } from 'rxjs'; - -import { - getAbsolutePosition, - getOverlapPosition, - getZoomViewport, -} from '@/core/helper/dragSelect.helper'; -import { useContext } from '@/core/hooks/context.hook'; -import { useUnmounted } from '@/core/hooks/unmounted.hook'; -import { dragSelectMemo } from '@/engine/command/memo.cmd.helper'; -import { dragSelectTable } from '@/engine/command/table.cmd.helper'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-drag-select': DragSelectElement; - } -} - -export interface DragSelectProps { - x: number; - y: number; -} - -export interface DragSelectElement extends DragSelectProps, HTMLElement {} - -const DragSelect: FunctionalComponent = ( - props, - ctx -) => { - const contextRef = useContext(ctx); - const state = observable({ width: 0, height: 0, top: 0, left: 0 }); - const { unmountedGroup } = useUnmounted(); - - const onGlobalMouseup = () => { - ctx.dispatchEvent(new CustomEvent('drag-select-end')); - }; - - beforeMount(() => { - const { - store, - globalEvent: { mouseup$ }, - } = contextRef.value; - const { canvasState } = store; - const erd = closestElement('.vuerd-erd', ctx); - if (!erd) return; - - unmountedGroup.push( - mouseup$.subscribe(onGlobalMouseup), - fromEvent(erd, 'mousemove').subscribe(event => { - event.preventDefault(); - const rect = erd.getBoundingClientRect(); - const currentX = event.clientX - rect.x; - const currentY = event.clientY - rect.y; - const min = { - x: props.x < currentX ? props.x : currentX, - y: props.y < currentY ? props.y : currentY, - }; - const max = { - x: props.x > currentX ? props.x : currentX, - y: props.y > currentY ? props.y : currentY, - }; - - state.left = min.x; - state.width = max.x - min.x; - if (state.width < 0) { - state.width = 0; - } - - state.top = min.y; - state.height = max.y - min.y; - if (state.height < 0) { - state.height = 0; - } - - const ghostMin = Object.assign({}, min); - const ghostMax = Object.assign({}, max); - - ghostMin.x -= canvasState.scrollLeft; - ghostMin.y -= canvasState.scrollTop; - ghostMax.x -= canvasState.scrollLeft; - ghostMax.y -= canvasState.scrollTop; - - const zoomViewportRect = getZoomViewport( - canvasState.width, - canvasState.height, - canvasState.zoomLevel - ); - - const overlapPosition = getOverlapPosition( - { - ...ghostMin, - w: ghostMax.x - ghostMin.x, - h: ghostMax.y - ghostMin.y, - }, - zoomViewportRect - ); - - if (!overlapPosition) return; - - const absolutePosition = getAbsolutePosition( - overlapPosition, - zoomViewportRect, - canvasState.zoomLevel - ); - - ghostMin.x = absolutePosition.x1; - ghostMin.y = absolutePosition.y1; - ghostMax.x = absolutePosition.x2; - ghostMax.y = absolutePosition.y2; - - store.dispatch( - dragSelectTable(ghostMin, ghostMax), - dragSelectMemo(ghostMin, ghostMax) - ); - }) - ); - }); - - return () => { - return svg` - - - - - `; - }; -}; - -defineComponent('vuerd-drag-select', { - observedProps: ['x', 'y'], - shadow: false, - render: DragSelect, -}); diff --git a/packages-legacy/vuerd/src/components/editor/DrawRelationship.style.ts b/packages-legacy/vuerd/src/components/editor/DrawRelationship.style.ts deleted file mode 100644 index 22963ea1..00000000 --- a/packages-legacy/vuerd/src/components/editor/DrawRelationship.style.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { css } from '@/core/tagged'; - -export const DrawRelationshipStyle = css` - .vuerd-draw-relationship { - position: absolute; - top: 0; - left: 0; - stroke: var(--vuerd-color-key-fk); - pointer-events: none; - overflow: visible; - } -`; diff --git a/packages-legacy/vuerd/src/components/editor/DrawRelationship.ts b/packages-legacy/vuerd/src/components/editor/DrawRelationship.ts deleted file mode 100644 index 7dc032d2..00000000 --- a/packages-legacy/vuerd/src/components/editor/DrawRelationship.ts +++ /dev/null @@ -1,100 +0,0 @@ -import { - beforeMount, - closestElement, - defineComponent, - FunctionalComponent, - svg, -} from '@vuerd/lit-observable'; -import { styleMap } from 'lit-html/directives/style-map'; -import { fromEvent } from 'rxjs'; - -import { useContext } from '@/core/hooks/context.hook'; -import { useUnmounted } from '@/core/hooks/unmounted.hook'; -import { drawRelationship } from '@/engine/command/editor.cmd.helper'; -import { getDraw } from '@/engine/store/helper/relationship.helper'; -import { DrawRelationship as IDrawRelationship } from '@@types/engine/store/editor.state'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-draw-relationship': Element; - } -} - -export interface Props { - draw: IDrawRelationship; -} - -export interface Element extends Props, HTMLElement {} - -const DrawRelationship: FunctionalComponent = (props, ctx) => { - const contextRef = useContext(ctx); - const { unmountedGroup } = useUnmounted(); - - beforeMount(() => { - const { store } = contextRef.value; - const erd = closestElement('.vuerd-erd', ctx); - if (!erd) return; - - unmountedGroup.push( - fromEvent(erd, 'mousemove').subscribe(event => { - event.preventDefault(); - const { x, y } = erd.getBoundingClientRect(); - - store.dispatch(drawRelationship(event.clientX - x, event.clientY - y)); - }) - ); - }); - - return () => { - const { - store: { canvasState }, - } = contextRef.value; - - const { path, line } = getDraw(props.draw); - - return svg` - - - - - - - - - - `; - }; -}; - -defineComponent('vuerd-draw-relationship', { - observedProps: ['draw'], - shadow: false, - render: DrawRelationship, -}); diff --git a/packages-legacy/vuerd/src/components/editor/ERD.style.ts b/packages-legacy/vuerd/src/components/editor/ERD.style.ts deleted file mode 100644 index b3026e14..00000000 --- a/packages-legacy/vuerd/src/components/editor/ERD.style.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { css } from '@/core/tagged'; - -export const ERDStyle = css` - .vuerd-erd { - overflow: hidden; - position: relative; - } - - .vuerd-erd-background { - width: 100%; - height: 100%; - pointer-events: none; - float: left; - background-color: var(--vuerd-color-contextmenu); - } -`; diff --git a/packages-legacy/vuerd/src/components/editor/ERD.ts b/packages-legacy/vuerd/src/components/editor/ERD.ts deleted file mode 100644 index 6d8ac218..00000000 --- a/packages-legacy/vuerd/src/components/editor/ERD.ts +++ /dev/null @@ -1,294 +0,0 @@ -import './Canvas'; -import './DragSelect'; -import './minimap/Minimap'; -import './find/Find'; -import './virtual-scroll/VirtualScroll'; - -import { - beforeMount, - defineComponent, - FunctionalComponent, - html, - observable, - query, - unmounted, - watch, -} from '@vuerd/lit-observable'; -import { styleMap } from 'lit-html/directives/style-map'; - -import { createDatabaseMenus } from '@/core/contextmenu/database.menu'; -import { createERDMenus } from '@/core/contextmenu/erd.menu'; -import { createRelationshipMenus } from '@/core/contextmenu/relationship.menu'; -import { createShowMenus } from '@/core/contextmenu/show.menu'; -import { createSingleRelationship } from '@/core/contextmenu/singleRelationship.menu'; -import { createTableMenus } from '@/core/contextmenu/table.menu'; -import { getData } from '@/core/helper'; -import { Bus } from '@/core/helper/eventBus.helper'; -import { useContext } from '@/core/hooks/context.hook'; -import { useERDKeymap } from '@/core/hooks/ERDKeymap.hook'; -import { useMousePosition } from '@/core/hooks/mousePosition.hook'; -import { useUnmounted } from '@/core/hooks/unmounted.hook'; -import { getBase64Icon } from '@/core/icon'; -import { movementCanvas } from '@/engine/command/canvas.cmd.helper'; -import { movementZoomCanvas$ } from '@/engine/command/canvas.cmd.helper.gen'; -import { findActiveEnd } from '@/engine/command/editor.cmd.helper'; -import { selectEndMemo } from '@/engine/command/memo.cmd.helper'; -import { selectEndTable$ } from '@/engine/command/table.cmd.helper'; -import { Move } from '@/internal-types/event.helper'; -import { Menu } from '@@types/core/contextmenu'; - -import { IndexStyle } from './index.style'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-erd': ERDElement; - } -} - -export interface ERDProps { - width: number; - height: number; -} - -export interface ERDElement extends ERDProps, HTMLElement {} - -interface ERDState { - contextmenuX: number; - contextmenuY: number; - menus: Menu[] | null; - dragSelect: boolean; - dragSelectX: number; - dragSelectY: number; -} - -const ERD: FunctionalComponent = (props, ctx) => { - const state = observable({ - contextmenuX: 0, - contextmenuY: 0, - menus: null, - dragSelect: false, - dragSelectX: 0, - dragSelectY: 0, - }); - const contextRef = useContext(ctx); - const { unmountedGroup } = useUnmounted(); - const { getPosition } = useMousePosition('.vuerd-erd'); - const canvasRef = query('.vuerd-canvas'); - const erdRef = query('.vuerd-erd'); - useERDKeymap(ctx); - let relationshipUnsubscribe: (() => void) | null = null; - - const resetScroll = () => { - if (erdRef.value.scrollTop === 0 && erdRef.value.scrollLeft === 0) return; - erdRef.value.scrollTop = 0; - erdRef.value.scrollLeft = 0; - }; - - const onContextmenu = (event: MouseEvent) => { - event.preventDefault(); - const el = event.target as HTMLElement; - const context = contextRef.value; - const { relationships } = context.store.relationshipState; - state.contextmenuX = event.clientX; - state.contextmenuY = event.clientY; - - const $table = el.closest('.vuerd-table') as HTMLElement | null; - const $relationship = el.closest( - '.vuerd-relationship' - ) as HTMLElement | null; - - if ($table) { - const tableId = $table.dataset.id as string; - state.menus = createTableMenus(context, tableId); - } else if ($relationship) { - const relationshipId = $relationship.dataset.id as string; - const relationship = getData(relationships, relationshipId); - if (!relationship) return; - - state.menus = createRelationshipMenus(context, relationship); - relationshipUnsubscribe = watch(relationship, propName => { - if (propName !== 'relationshipType') return; - const menue = state.menus?.find( - menu => menu.name === 'Relationship Type' - ); - if (!menue) return; - - menue.children = createSingleRelationship(context, relationship); - }); - } else { - state.menus = createERDMenus(context, canvasRef.value); - } - }; - - const onCloseContextmenu = () => { - state.menus = null; - relationshipUnsubscribe && relationshipUnsubscribe(); - relationshipUnsubscribe = null; - }; - - const onCloseFind = () => { - const { store } = contextRef.value; - store.dispatch(findActiveEnd()); - }; - - const onMove = ({ event, movementX, movementY }: Move) => { - const { store } = contextRef.value; - event.type === 'mousemove' && event.preventDefault(); - store.dispatch(movementCanvas(movementX, movementY)); - resetScroll(); - }; - - const onDragSelect = (event: MouseEvent | TouchEvent) => { - const el = event.target as HTMLElement; - const { - store, - globalEvent: { drag$ }, - eventBus, - } = contextRef.value; - - onCloseContextmenu(); - - if (!el.closest('.vuerd-table-header-color')) { - eventBus.emit(Bus.ColorPicker.close); - } - - if (!el.closest('.vuerd-find')) { - onCloseFind(); - } - - if ( - !el.closest('.vuerd-table') && - !el.closest('.vuerd-memo') && - !el.closest('.vuerd-input') && - !el.closest('.virtual-scroll') && - !el.closest('.vuerd-minimap-handle') && - !el.closest('.vuerd-minimap') - ) { - store.dispatch(selectEndTable$(), selectEndMemo()); - - if (event.type === 'mousedown' && (event.ctrlKey || event.metaKey)) { - const position = getPosition(event as MouseEvent); - state.dragSelect = true; - state.dragSelectX = position.x; - state.dragSelectY = position.y; - } else { - drag$.subscribe(onMove); - } - } - }; - - const onWheel = (event: WheelEvent) => { - event.preventDefault(); - const { store } = contextRef.value; - const mod = event.ctrlKey || event.metaKey; - - store.dispatch( - mod - ? movementZoomCanvas$(store, event.deltaY < 0 ? 0.1 : -0.1) - : movementCanvas(event.deltaX * -1, event.deltaY * -1) - ); - }; - - const onDragSelectEnd = () => (state.dragSelect = false); - - beforeMount(() => { - const { - store: { canvasState }, - eventBus, - } = contextRef.value; - - unmountedGroup.push( - watch(canvasState.show, () => { - const menue = state.menus?.find(menu => menu.name === 'View Option'); - if (!menue) return; - - menue.children = createShowMenus(contextRef.value); - }), - watch(canvasState, propName => { - if (propName !== 'database') return; - const menue = state.menus?.find(menu => menu.name === 'Database'); - if (!menue) return; - - menue.children = createDatabaseMenus(contextRef.value); - }), - eventBus.on(Bus.Contextmenu.close).subscribe(onCloseContextmenu) - ); - }); - - unmounted(() => onCloseContextmenu()); - - return () => { - const { - store: { - editorState: { drawRelationship, findActive, erdUiEventNone }, - }, - } = contextRef.value; - - return html` -
    -
    - - - - ${state.dragSelect - ? html` - - ` - : null} - ${state.menus - ? html` - - ` - : null} - -
    - `; - }; -}; - -defineComponent('vuerd-erd', { - observedProps: [ - { - name: 'width', - default: 0, - }, - { - name: 'height', - default: 0, - }, - ], - styleMap: { - height: '100%', - }, - style: IndexStyle, - render: ERD, -}); diff --git a/packages-legacy/vuerd/src/components/editor/Input.style.ts b/packages-legacy/vuerd/src/components/editor/Input.style.ts deleted file mode 100644 index 11981933..00000000 --- a/packages-legacy/vuerd/src/components/editor/Input.style.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { - SIZE_COLUMN_MARGIN_RIGHT, - SIZE_FONT, - SIZE_INPUT_EDIT_HEIGHT, -} from '@/core/layout'; -import { css } from '@/core/tagged'; - -export const InputStyle = css` - .vuerd-input { - display: inline-flex; - vertical-align: middle; - align-items: center; - margin-right: ${SIZE_COLUMN_MARGIN_RIGHT}px; - color: var(--vuerd-color-font-active); - background-color: var(--vuerd-color-table); - } - - input.vuerd-input { - outline: none; - border: none; - opacity: 0.9; - padding: 1px 0 1px 0; - height: 17px; - font-size: ${SIZE_FONT}px; - font-family: var(--vuerd-font-family); - } - - div.vuerd-input { - border-bottom: solid #fff0 1.5px; - height: ${SIZE_INPUT_EDIT_HEIGHT}px; - cursor: default; - } - - .vuerd-input > span { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } - - .vuerd-input.select { - background-color: var(--vuerd-color-column-select); - } - - .vuerd-input.active { - background-color: var(--vuerd-color-column-active); - } - - .vuerd-input.focus { - border-bottom: solid var(--vuerd-color-focus) 1.5px; - } - - .vuerd-input.edit { - border-bottom: solid var(--vuerd-color-edit) 1.5px; - } - - .vuerd-input.placeholder { - color: var(--vuerd-color-font-placeholder); - } -`; diff --git a/packages-legacy/vuerd/src/components/editor/Input.ts b/packages-legacy/vuerd/src/components/editor/Input.ts deleted file mode 100644 index 6f884402..00000000 --- a/packages-legacy/vuerd/src/components/editor/Input.ts +++ /dev/null @@ -1,149 +0,0 @@ -import { - beforeMount, - defineComponent, - FunctionalComponent, - html, - query, - watch, -} from '@vuerd/lit-observable'; -import { classMap } from 'lit-html/directives/class-map'; -import { styleMap } from 'lit-html/directives/style-map'; - -import { lastCursorFocus } from '@/core/helper/dom.helper'; -import { useUnmounted } from '@/core/hooks/unmounted.hook'; -import { SIZE_MIN_WIDTH } from '@/core/layout'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-input': InputElement; - } -} - -export interface InputProps { - edit: boolean; - focusState: boolean; - select: boolean; - active: boolean; - width: number; - value: string; - placeholder: string; -} - -export interface InputElement extends InputProps, HTMLElement {} - -const Input: FunctionalComponent = (props, ctx) => { - const { unmountedGroup } = useUnmounted(); - const inputRef = query('input'); - - const getClassMap = () => ({ - 'vuerd-input': true, - placeholder: props.value.trim() === '' && !props.edit, - focus: props.focusState && !props.edit, - edit: props.edit, - select: props.select, - active: props.active, - }); - - const getPlaceholderValue = () => - props.value.trim() === '' ? props.placeholder : props.value; - - const onBlur = () => - ctx.dispatchEvent( - new CustomEvent('vuerd-input-blur', { - composed: true, - bubbles: true, - }) - ); - - const onKeyup = (event: KeyboardEvent) => { - if (event.code === 'Enter') { - ctx.dispatchEvent(new CustomEvent('keyup-enter')); - } - }; - - beforeMount(() => - unmountedGroup.push( - watch(props, propName => { - const input = inputRef.value; - if (propName !== 'edit' || !props.edit || !input) return; - - lastCursorFocus(input); - }), - // firefox - watch(props, propName => { - if (propName !== 'edit') return; - props.edit || onBlur(); - }) - ) - ); - - return () => - props.edit - ? html` - - ` - : html` -
    - ${getPlaceholderValue()} -
    - `; -}; - -defineComponent('vuerd-input', { - observedProps: [ - { - name: 'edit', - type: Boolean, - default: false, - }, - { - name: 'focusState', - type: Boolean, - default: false, - }, - { - name: 'select', - type: Boolean, - default: false, - }, - { - name: 'active', - type: Boolean, - default: false, - }, - { - name: 'width', - type: Number, - default: SIZE_MIN_WIDTH, - }, - { - name: 'value', - default: '', - }, - { - name: 'placeholder', - default: '', - }, - ], - shadow: false, - styleMap: { - display: 'inline-flex', - }, - render: Input, -}); diff --git a/packages-legacy/vuerd/src/components/editor/Relationship.template.ts b/packages-legacy/vuerd/src/components/editor/Relationship.template.ts deleted file mode 100644 index b58b90ce..00000000 --- a/packages-legacy/vuerd/src/components/editor/Relationship.template.ts +++ /dev/null @@ -1,283 +0,0 @@ -import { svg } from '@vuerd/lit-observable'; - -import { - getRelationshipPath, - RelationshipPath, -} from '@/engine/store/helper/relationship.helper'; -import { Relationship } from '@@types/engine/store/relationship.state'; - -const relationshipZeroOneN = ({ path, line }: RelationshipPath) => - svg` - - - - - - - `; - -const relationshipZeroOne = ({ path, line }: RelationshipPath) => - svg` - - - - - `; - -const relationshipZeroN = ({ path, line }: RelationshipPath) => - svg` - - - - - - `; - -const relationshipOneOnly = ({ path, line }: RelationshipPath) => - svg` - - - - - `; - -const relationshipOneN = ({ path, line }: RelationshipPath) => - svg` - - - - - - `; - -const relationshipOne = ({ path, line }: RelationshipPath) => - svg` - - - - `; - -const relationshipN = ({ path, line }: RelationshipPath) => - svg` - - - - - `; - -const relationshipShapeMap = { - ZeroOneN: relationshipZeroOneN, - ZeroOne: relationshipZeroOne, - ZeroN: relationshipZeroN, - OneOnly: relationshipOneOnly, - OneN: relationshipOneN, - One: relationshipOne, - N: relationshipN, -}; - -export function relationshipTpl(relationship: Relationship, strokeWidth = 3) { - const relationshipPath = getRelationshipPath(relationship); - const { path, line } = relationshipPath; - const relationshipShapeTpl = - relationshipShapeMap[relationship.relationshipType]; - const shape = relationshipShapeTpl - ? relationshipShapeTpl(relationshipPath) - : null; - const lines = path.path.d(); - - return relationship.startRelationshipType === 'Ring' - ? svg` - ${lines.map( - ([a, b]) => - svg` - - ` - )} - - - - - ${shape} - ` - : svg` - ${lines.map( - ([a, b]) => - svg` - - ` - )} - - - - - ${shape} - `; -} diff --git a/packages-legacy/vuerd/src/components/editor/find/Find.style.ts b/packages-legacy/vuerd/src/components/editor/find/Find.style.ts deleted file mode 100644 index b92c1ca1..00000000 --- a/packages-legacy/vuerd/src/components/editor/find/Find.style.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { SIZE_COLUMN_MARGIN_RIGHT, SIZE_FONT } from '@/core/layout'; -import { css } from '@/core/tagged'; - -export const FindStyle = css` - .vuerd-find { - width: 225px; - display: flex; - align-items: center; - padding: 0 10px; - box-sizing: border-box; - position: absolute; - right: 190px; - color: var(--vuerd-color-font); - background-color: var(--vuerd-color-menubar); - opacity: 0.9; - fill: #fff0; - } - - .vuerd-find:hover { - fill: var(--vuerd-color-font); - } - - .vuerd-find-table { - position: relative; - } - - .vuerd-find-table input { - display: flex; - width: 193px; - vertical-align: middle; - align-items: center; - margin-right: ${SIZE_COLUMN_MARGIN_RIGHT}px; - color: var(--vuerd-color-font-active); - background-color: var(--vuerd-color-menubar); - outline: none; - border: none; - opacity: 0.9; - padding: 1px 0 1px 0; - height: 17px; - font-size: ${SIZE_FONT}px; - font-family: var(--vuerd-font-family); - border-bottom: solid #fff0 1.5px; - } - - .vuerd-find-table input:focus { - border-bottom: solid var(--vuerd-color-edit) 1.5px; - } - - .vuerd-find-table-list { - position: absolute; - top: 27px; - left: 0; - z-index: 100; - color: var(--vuerd-color-font); - background-color: var(--vuerd-color-contextmenu); - opacity: 0.9; - list-style: none; - padding: 0; - margin: 0; - } - .vuerd-find-table-list > li { - padding: 5px; - cursor: pointer; - font-size: ${SIZE_FONT}px; - } - .vuerd-find-table-list > li:hover, - .vuerd-find-table-hint.active { - color: var(--vuerd-color-font-active); - background-color: var(--vuerd-color-contextmenu-active); - } - .vuerd-find-table-list > li:hover .vuerd-find-table-hint-mark, - .vuerd-find-table-hint.active .vuerd-find-table-hint-mark { - color: var(--vuerd-color-font-active); - } - /* animation flip */ - .vuerd-find-table-hint-move { - transition: transform 0.2s; - } - - .vuerd-find-table-hint-mark { - color: var(--vuerd-color-edit); - } -`; diff --git a/packages-legacy/vuerd/src/components/editor/find/Find.template.ts b/packages-legacy/vuerd/src/components/editor/find/Find.template.ts deleted file mode 100644 index b62f8dd7..00000000 --- a/packages-legacy/vuerd/src/components/editor/find/Find.template.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { html } from '@vuerd/lit-observable'; -import { classMap } from 'lit-html/directives/class-map'; -import { repeat } from 'lit-html/directives/repeat'; -import { unsafeHTML } from 'lit-html/directives/unsafe-html'; - -import { Hint, HintState } from '@/core/hooks/tableHint.hook'; - -export interface HintProps { - onSelectHint(hint: Hint): void; -} - -export const hintTpl = (props: HintProps, state: HintState) => html` -
      - ${repeat( - state.hints, - hint => hint.id, - hint => { - return html` -
    • props.onSelectHint(hint)} - > - ${unsafeHTML(hint.html)} -
    • - `; - } - )} -
    -`; diff --git a/packages-legacy/vuerd/src/components/editor/find/Find.ts b/packages-legacy/vuerd/src/components/editor/find/Find.ts deleted file mode 100644 index 48034d83..00000000 --- a/packages-legacy/vuerd/src/components/editor/find/Find.ts +++ /dev/null @@ -1,171 +0,0 @@ -import { Easing, Tween } from '@tweenjs/tween.js'; -import { - beforeMount, - defineComponent, - FunctionalComponent, - html, - observable, - query, - watch, -} from '@vuerd/lit-observable'; -import { styleMap } from 'lit-html/directives/style-map'; - -import { useContext } from '@/core/hooks/context.hook'; -import { useFlipAnimation } from '@/core/hooks/flipAnimation.hook'; -import { useTableHint } from '@/core/hooks/tableHint.hook'; -import { useTooltip } from '@/core/hooks/tooltip.hook'; -import { useUnmounted } from '@/core/hooks/unmounted.hook'; -import { keymapOptionsToString } from '@/core/keymap'; - -import { hintTpl } from './Find.template'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-find': FindElement; - } -} - -export interface FindProps { - visible: boolean; -} - -export interface FindElement extends FindProps, HTMLElement {} - -const ANIMATION_TIME = 200; -const HEIGHT = 33; - -const Find: FunctionalComponent = (props, ctx) => { - const contextRef = useContext(ctx); - const { unmountedGroup } = useUnmounted(); - const { resetTooltip } = useTooltip(['.vuerd-button'], ctx); - const { hintState, onSelectHint, onKeydown, onInput, initHints } = - useTableHint(ctx); - const inputRef = query('input'); - const state = observable({ top: 0, visible: false }); - let openTween: Tween<{ top: number }> | null = null; - let closeTween: Tween<{ top: number }> | null = null; - useFlipAnimation(ctx, '.vuerd-find-table-hint', 'vuerd-find-table-hint-move'); - - const emitBlur = () => - ctx.dispatchEvent( - new CustomEvent('vuerd-input-blur', { - composed: true, - bubbles: true, - }) - ); - - const onOpen = () => { - if (openTween) return; - - closeTween?.stop(); - closeTween = null; - state.visible = true; - state.top = state.top === 0 ? -1 * HEIGHT : state.top; - openTween = new Tween(state) - .to({ top: 0 }, ANIMATION_TIME) - .easing(Easing.Quadratic.Out) - .onComplete(() => (openTween = null)) - .start(); - }; - - const onClose = () => { - if (closeTween) return; - - openTween?.stop(); - openTween = null; - closeTween = new Tween(state) - .to({ top: -1 * HEIGHT }, ANIMATION_TIME) - .easing(Easing.Quadratic.In) - .onComplete(() => { - closeTween = null; - state.visible = false; - ctx.dispatchEvent(new CustomEvent('close')); - emitBlur(); - }) - .start(); - }; - - const focus = () => { - const input = inputRef.value; - input?.focus(); - }; - - const onFocus = () => { - hintState.focus = true; - }; - - const onBlur = () => { - hintState.focus = false; - - setTimeout(() => { - if (hintState.focus) return; - hintState.hints = []; - }, 200); - }; - - beforeMount(() => - unmountedGroup.push( - watch(props, propName => { - if (propName !== 'visible') return; - - props.visible ? onOpen() : onClose(); - props.visible && - setTimeout(() => { - resetTooltip(); - focus(); - initHints(); - }, 0); - }) - ) - ); - - return () => { - const { keymap } = contextRef.value; - const keymapStop = keymapOptionsToString(keymap.stop); - - return state.visible - ? html` -
    -
    - - ${hintTpl({ onSelectHint }, hintState)} -
    - -
    - ` - : null; - }; -}; - -defineComponent('vuerd-find', { - observedProps: [ - { - name: 'visible', - type: Boolean, - default: false, - }, - ], - shadow: false, - render: Find, -}); diff --git a/packages-legacy/vuerd/src/components/editor/index.style.ts b/packages-legacy/vuerd/src/components/editor/index.style.ts deleted file mode 100644 index fe60273f..00000000 --- a/packages-legacy/vuerd/src/components/editor/index.style.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { DefaultStyle } from '@/components/css'; -import { IconStyle } from '@/components/Icon.style'; - -import { CanvasStyle } from './Canvas.style'; -import { CanvasSVGStyle } from './CanvasSVG.style'; -import { DragSelectStyle } from './DragSelect.style'; -import { DrawRelationshipStyle } from './DrawRelationship.style'; -import { ERDStyle } from './ERD.style'; -import { FindStyle } from './find/Find.style'; -import { InputStyle } from './Input.style'; -import { MemoStyle } from './memo/Memo.style'; -import { MinimapStyle } from './minimap/Minimap.style'; -import { MinimapHandleStyle } from './minimap/MinimapHandle.style'; -import { ColumnStyle } from './table/column/Column.style'; -import { ColumnAutoIncrementStyle } from './table/column/ColumnAutoIncrement.style'; -import { ColumnDataTypeStyle } from './table/column/ColumnDataType.style'; -import { ColumnKeyStyle } from './table/column/ColumnKey.style'; -import { ColumnNotNullStyle } from './table/column/ColumnNotNull.style'; -import { ColumnUniqueStyle } from './table/column/ColumnUnique.style'; -import { HighLevelTableStyle } from './table/HighLevelTable.style'; -import { TableStyle } from './table/Table.style'; -import { VirtualScrollStyle } from './virtual-scroll/VirtualScroll.style'; - -export const IndexStyle = [ - DefaultStyle, - ERDStyle, - CanvasStyle, - MemoStyle, - TableStyle, - HighLevelTableStyle, - InputStyle, - ColumnStyle, - ColumnKeyStyle, - ColumnDataTypeStyle, - ColumnNotNullStyle, - ColumnUniqueStyle, - ColumnAutoIncrementStyle, - DrawRelationshipStyle, - CanvasSVGStyle, - DragSelectStyle, - MinimapStyle, - MinimapHandleStyle, - FindStyle, - IconStyle, - VirtualScrollStyle, -].join(''); diff --git a/packages-legacy/vuerd/src/components/editor/memo/Memo.style.ts b/packages-legacy/vuerd/src/components/editor/memo/Memo.style.ts deleted file mode 100644 index c5752cc6..00000000 --- a/packages-legacy/vuerd/src/components/editor/memo/Memo.style.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { SIZE_FONT, SIZE_MEMO_PADDING } from '@/core/layout'; -import { css } from '@/core/tagged'; - -export const MemoStyle = css` - .vuerd-memo { - position: absolute; - opacity: 0.9; - fill: #fff0; - background-color: var(--vuerd-color-table); - border-radius: 5px; - } - - .vuerd-memo:hover { - fill: var(--vuerd-color-font); - } - - .vuerd-memo.active { - border: solid var(--vuerd-color-table-active) 1px; - box-shadow: 0 1px 6px var(--vuerd-color-table-active); - } - - .vuerd-memo-header { - padding: ${SIZE_MEMO_PADDING}px; - cursor: move; - position: relative; - } - - .vuerd-memo-header-color { - position: absolute; - width: 100%; - height: 4px; - top: 0; - left: 0; - border-radius: 5px 5px 0 0; - opacity: 0.9; - cursor: pointer; - } - - .vuerd-memo-header .vuerd-button { - float: right; - } - - .vuerd-memo-textarea { - padding: ${SIZE_MEMO_PADDING}px; - opacity: 0.9; - border: none; - resize: none; - outline: none; - font-size: ${SIZE_FONT}px; - font-family: var(--vuerd-font-family); - color: var(--vuerd-color-font-active); - background-color: var(--vuerd-color-table); - } -`; diff --git a/packages-legacy/vuerd/src/components/editor/memo/Memo.template.ts b/packages-legacy/vuerd/src/components/editor/memo/Memo.template.ts deleted file mode 100644 index fca19f49..00000000 --- a/packages-legacy/vuerd/src/components/editor/memo/Memo.template.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { html } from '@vuerd/lit-observable'; - -import { SashProps } from '@/components/Sash'; -import { Position } from '@/core/hooks/resizeMemo.hook'; - -const createSash = ( - top: number, - left: number -): Array<{ position: Position } & Partial> => [ - { - vertical: true, - position: 'left', - }, - { - vertical: true, - position: 'right', - left, - }, - // { - // horizontal: true, - // position: 'top', - // }, - { - horizontal: true, - position: 'bottom', - top, - }, - { - edge: true, - position: 'lt', - cursor: 'nwse-resize', - }, - { - edge: true, - position: 'rt', - cursor: 'nesw-resize', - left, - }, - { - edge: true, - position: 'lb', - cursor: 'nesw-resize', - top, - }, - { - edge: true, - position: 'rb', - cursor: 'nwse-resize', - top, - left, - }, -]; - -export const sashTpl = ( - top: number, - left: number, - onMousedownSash: (event: MouseEvent, position: Position) => void -) => - createSash(top, left).map( - sash => html` - - onMousedownSash(event, sash.position)} - > - ` - ); diff --git a/packages-legacy/vuerd/src/components/editor/memo/Memo.ts b/packages-legacy/vuerd/src/components/editor/memo/Memo.ts deleted file mode 100644 index 25ad8341..00000000 --- a/packages-legacy/vuerd/src/components/editor/memo/Memo.ts +++ /dev/null @@ -1,234 +0,0 @@ -import { Easing, Tween } from '@tweenjs/tween.js'; -import { - beforeMount, - defineComponent, - FunctionalComponent, - html, - mounted, - observable, - query, - watch, -} from '@vuerd/lit-observable'; -import { classMap } from 'lit-html/directives/class-map'; -import { styleMap } from 'lit-html/directives/style-map'; - -import { onStopPropagation } from '@/core/helper/dom.helper'; -import { Bus } from '@/core/helper/eventBus.helper'; -import { useColorPicker } from '@/core/hooks/colorPicker.hook'; -import { useContext } from '@/core/hooks/context.hook'; -import { useResizeMemo } from '@/core/hooks/resizeMemo.hook'; -import { useTooltip } from '@/core/hooks/tooltip.hook'; -import { useUnmounted } from '@/core/hooks/unmounted.hook'; -import { keymapOptionsToString } from '@/core/keymap'; -import { SIZE_MEMO_PADDING } from '@/core/layout'; -import { - changeColorMemo, - changeMemoValue, - moveMemo, - removeMemo, - selectMemo$, -} from '@/engine/command/memo.cmd.helper'; -import { Move } from '@/internal-types/event.helper'; -import { Memo } from '@@types/engine/store/memo.state'; - -import { sashTpl } from './Memo.template'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-memo': MemoElement; - } -} - -export interface MemoProps { - memo: Memo; -} - -export interface MemoElement extends MemoProps, HTMLElement {} - -const MEMO_PADDING = SIZE_MEMO_PADDING * 2; -const MEMO_HEADER = 6 + MEMO_PADDING; -const ANIMATION_TIME = 300; - -const Memo: FunctionalComponent = (props, ctx) => { - const contextRef = useContext(ctx); - const { onMousedownSash } = useResizeMemo(props, ctx); - const { unmountedGroup } = useUnmounted(); - const textareaRef = query('.vuerd-memo-textarea'); - const state = observable({ color: '' }); - useColorPicker('.vuerd-memo-header-color', ctx, state); - useTooltip(['.vuerd-button'], ctx); - let leftTween: Tween<{ left: number }> | null = null; - let topTween: Tween<{ top: number }> | null = null; - - const onMove = ({ event, movementX, movementY }: Move) => { - event.type === 'mousemove' && event.preventDefault(); - const { store } = contextRef.value; - store.dispatch( - moveMemo( - store, - event.ctrlKey || event.metaKey, - movementX, - movementY, - props.memo.id - ) - ); - }; - - const onMoveStart = (event: MouseEvent | TouchEvent) => { - const el = event.target as HTMLElement; - const { store, globalEvent, eventBus } = contextRef.value; - const { drag$ } = globalEvent; - - if ( - !el.closest('.vuerd-button') && - !el.closest('vuerd-sash') && - !el.closest('.vuerd-memo-textarea') - ) { - leftTween?.stop(); - topTween?.stop(); - - drag$.subscribe({ - next: onMove, - complete: () => eventBus.emit(Bus.BalanceRange.move), - }); - } - store.dispatch( - selectMemo$(store, event.ctrlKey || event.metaKey, props.memo.id) - ); - }; - - const onRemoveMemo = () => { - const { store } = contextRef.value; - store.dispatch(removeMemo(store, props.memo.id)); - }; - - const onInput = (event: InputEvent) => { - const { store } = contextRef.value; - const textarea = event.target as HTMLTextAreaElement; - store.dispatch(changeMemoValue(props.memo.id, textarea.value)); - }; - - const onBlur = () => - ctx.dispatchEvent( - new CustomEvent('vuerd-input-blur', { - composed: true, - bubbles: true, - }) - ); - - const moveBalance = () => { - const { - canvasState: { width, height }, - } = contextRef.value.store; - const minWidth = width - (props.memo.ui.width + MEMO_PADDING); - const minHeight = - height - (props.memo.ui.height + MEMO_PADDING + MEMO_HEADER); - const x = props.memo.ui.left > minWidth ? minWidth : 0; - const y = props.memo.ui.top > minHeight ? minHeight : 0; - - if (props.memo.ui.left < 0 || props.memo.ui.left > minWidth) { - leftTween = new Tween(props.memo.ui) - .to({ left: x }, ANIMATION_TIME) - .easing(Easing.Quadratic.Out) - .onComplete(() => (leftTween = null)) - .start(); - } - - if (props.memo.ui.top < 0 || props.memo.ui.top > minHeight) { - topTween = new Tween(props.memo.ui) - .to({ top: y }, ANIMATION_TIME) - .easing(Easing.Quadratic.Out) - .onComplete(() => (topTween = null)) - .start(); - } - }; - - beforeMount(() => { - const { eventBus, store } = contextRef.value; - - state.color = props.memo.ui.color || ''; - - unmountedGroup.push( - eventBus.on(Bus.BalanceRange.move).subscribe(moveBalance), - watch(state, propName => { - if (propName !== 'color') return; - store.dispatch( - changeColorMemo(store, true, state.color, props.memo.id) - ); - }) - ); - }); - - mounted(() => { - const textarea = textareaRef.value; - if (!textarea || !props.memo.ui.active) return; - - textarea.focus(); - }); - - return () => { - const { - keymap, - store: { - editorState: { readonly }, - }, - } = contextRef.value; - const { memo } = props; - const width = memo.ui.width + MEMO_PADDING; - const height = memo.ui.height + MEMO_PADDING + MEMO_HEADER; - - return html` -
    -
    -
    - -
    - - ${sashTpl(height, width, onMousedownSash)} -
    - `; - }; -}; - -defineComponent('vuerd-memo', { - shadow: false, - observedProps: ['memo'], - render: Memo, -}); diff --git a/packages-legacy/vuerd/src/components/editor/minimap/Memo.ts b/packages-legacy/vuerd/src/components/editor/minimap/Memo.ts deleted file mode 100644 index 3a9f20b7..00000000 --- a/packages-legacy/vuerd/src/components/editor/minimap/Memo.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { - defineComponent, - FunctionalComponent, - html, -} from '@vuerd/lit-observable'; -import { styleMap } from 'lit-html/directives/style-map'; - -import { SIZE_MEMO_PADDING } from '@/core/layout'; -import { Memo } from '@@types/engine/store/memo.state'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-minimap-memo': MinimapMemoElement; - } -} - -export interface MinimapMemoProps { - memo: Memo; -} - -export interface MinimapMemoElement extends MinimapMemoProps, HTMLElement {} - -const MEMO_PADDING = SIZE_MEMO_PADDING * 2; -const MEMO_HEADER = 6 + MEMO_PADDING; - -const MinimapMemo: FunctionalComponent = - (props, ctx) => () => { - const { memo } = props; - const width = memo.ui.width + MEMO_PADDING; - const height = memo.ui.height + MEMO_PADDING + MEMO_HEADER; - - return html` -
    - `; - }; - -defineComponent('vuerd-minimap-memo', { - observedProps: ['memo'], - shadow: false, - render: MinimapMemo, -}); diff --git a/packages-legacy/vuerd/src/components/editor/minimap/Minimap.style.ts b/packages-legacy/vuerd/src/components/editor/minimap/Minimap.style.ts deleted file mode 100644 index d652b702..00000000 --- a/packages-legacy/vuerd/src/components/editor/minimap/Minimap.style.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { css } from '@/core/tagged'; - -export const MinimapStyle = css` - .vuerd-minimap { - position: absolute; - overflow: hidden; - } - - .vuerd-minimap-shadow { - position: absolute; - box-shadow: 0 1px 6px var(--vuerd-color-minimap-shadow); - pointer-events: none; - } -`; diff --git a/packages-legacy/vuerd/src/components/editor/minimap/Minimap.ts b/packages-legacy/vuerd/src/components/editor/minimap/Minimap.ts deleted file mode 100644 index d23b5538..00000000 --- a/packages-legacy/vuerd/src/components/editor/minimap/Minimap.ts +++ /dev/null @@ -1,201 +0,0 @@ -import './Table'; -import './Memo'; -import './MinimapHandle'; - -import { - beforeMount, - defineComponent, - FunctionalComponent, - html, - query, - svg, - watch, -} from '@vuerd/lit-observable'; -import { classMap } from 'lit-html/directives/class-map'; -import { repeat } from 'lit-html/directives/repeat'; -import { styleMap } from 'lit-html/directives/style-map'; - -import { relationshipTpl } from '@/components/editor/Relationship.template'; -import { isMouseEvent } from '@/core/helper/dom.helper'; -import { getViewport } from '@/core/helper/dragSelect.helper'; -import { useContext } from '@/core/hooks/context.hook'; -import { useRenderTrigger } from '@/core/hooks/renderTrigger.hook'; -import { useUnmounted } from '@/core/hooks/unmounted.hook'; -import { SIZE_MINIMAP_MARGIN, SIZE_MINIMAP_WIDTH } from '@/core/layout'; -import { moveCanvas } from '@/engine/command/canvas.cmd.helper'; - -import { useMinimapScroll } from './useMinimapScroll'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-minimap': MinimapElement; - } -} - -export interface MinimapProps { - width: number; - height: number; -} - -export interface MinimapElement extends MinimapProps, HTMLElement {} - -const Minimap: FunctionalComponent = ( - props, - ctx -) => { - const contextRef = useContext(ctx); - const { unmountedGroup } = useUnmounted(); - const { renderTrigger } = useRenderTrigger(); - const { state, onScrollStart } = useMinimapScroll(ctx); - const minimapRef = query('.vuerd-minimap'); - - const getRatio = () => { - const { store } = contextRef.value; - return SIZE_MINIMAP_WIDTH / store.canvasState.width; - }; - - const getStyleMap = () => { - const { width, height } = contextRef.value.store.canvasState; - const ratio = SIZE_MINIMAP_WIDTH / width; - const x = (-1 * width) / 2 + SIZE_MINIMAP_WIDTH / 2; - const y = (-1 * height) / 2 + (height * ratio) / 2; - const right = x + SIZE_MINIMAP_MARGIN; - const top = y + SIZE_MINIMAP_MARGIN; - return { - transform: `scale(${ratio})`, - width: `${width}px`, - height: `${height}px`, - right: `${right}px`, - top: `${top}px`, - }; - }; - - const getShadowStyle = () => { - const top = SIZE_MINIMAP_MARGIN; - return { - width: `${SIZE_MINIMAP_WIDTH}px`, - height: `${SIZE_MINIMAP_WIDTH}px`, - right: `${SIZE_MINIMAP_MARGIN}px`, - top: `${top}px`, - }; - }; - - const handleMove = (event: MouseEvent | TouchEvent) => { - const { store } = contextRef.value; - const viewport = getViewport(store); - const ratio = getRatio(); - const $minimap = minimapRef.value; - const rect = $minimap.getBoundingClientRect(); - const clientX = isMouseEvent(event) - ? event.clientX - : event.touches[0].clientX; - const clientY = isMouseEvent(event) - ? event.clientY - : event.touches[0].clientY; - - const x = clientX - rect.x; - const y = clientY - rect.y; - const absoluteX = x / ratio; - const absoluteY = y / ratio; - const scrollLeft = absoluteX - viewport.width / 2; - const scrollTop = absoluteY - viewport.height / 2; - - store.dispatch(moveCanvas(-1 * scrollTop, -1 * scrollLeft)); - - onScrollStart(event); - }; - - beforeMount(() => { - const { - memoState: { memos }, - tableState: { tables }, - relationshipState: { relationships }, - } = contextRef.value.store; - - unmountedGroup.push( - watch(tables, renderTrigger), - watch(memos, renderTrigger), - watch(relationships, renderTrigger) - ); - }); - - return () => { - const { - canvasState: { width, height, zoomLevel, show }, - tableState: { tables }, - memoState: { memos }, - relationshipState: { relationships }, - } = contextRef.value.store; - - return html` -
    -
    -
    -
    - ${repeat( - tables, - table => table.id, - table => html` - - ` - )} - ${repeat( - memos, - memo => memo.id, - memo => - html`` - )} - ${show.relationship - ? svg` - - ${repeat( - relationships, - relationship => relationship.id, - relationship => - svg` - - ${relationshipTpl(relationship, 12)} - - ` - )} - - ` - : null} -
    -
    - - `; - }; -}; - -defineComponent('vuerd-minimap', { - observedProps: ['width', 'height'], - shadow: false, - render: Minimap, -}); diff --git a/packages-legacy/vuerd/src/components/editor/minimap/MinimapHandle.style.ts b/packages-legacy/vuerd/src/components/editor/minimap/MinimapHandle.style.ts deleted file mode 100644 index 01b388ed..00000000 --- a/packages-legacy/vuerd/src/components/editor/minimap/MinimapHandle.style.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { css } from '@/core/tagged'; - -export const MinimapHandleStyle = css` - .vuerd-minimap-handle { - position: absolute; - border: solid var(--vuerd-color-edit) 1px; - cursor: pointer; - opacity: 0.7; - } - - .vuerd-minimap-handle:hover { - opacity: 1; - } - - .vuerd-minimap-handle[data-selected] { - opacity: 1; - } -`; diff --git a/packages-legacy/vuerd/src/components/editor/minimap/MinimapHandle.ts b/packages-legacy/vuerd/src/components/editor/minimap/MinimapHandle.ts deleted file mode 100644 index 1cfb89db..00000000 --- a/packages-legacy/vuerd/src/components/editor/minimap/MinimapHandle.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { - defineComponent, - FunctionalComponent, - html, -} from '@vuerd/lit-observable'; -import { styleMap } from 'lit-html/directives/style-map'; - -import { getViewport } from '@/core/helper/dragSelect.helper'; -import { useContext } from '@/core/hooks/context.hook'; -import { SIZE_MINIMAP_MARGIN, SIZE_MINIMAP_WIDTH } from '@/core/layout'; - -import { useMinimapScroll } from './useMinimapScroll'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-minimap-handle': MinimapHandleElement; - } -} - -export interface MinimapHandleProps { - selected: boolean; -} - -export interface MinimapHandleElement extends MinimapHandleProps, HTMLElement {} - -const MinimapHandle: FunctionalComponent< - MinimapHandleProps, - MinimapHandleElement -> = (props, ctx) => { - const contextRef = useContext(ctx); - const { state, onScrollStart } = useMinimapScroll(ctx); - - const getRatio = () => { - const { width } = contextRef.value.store.canvasState; - return SIZE_MINIMAP_WIDTH / width; - }; - - const getStyleMap = () => { - const { store } = contextRef.value; - const { scrollLeft, scrollTop } = store.canvasState; - const ratio = getRatio(); - const viewport = getViewport(store); - const x = scrollLeft * ratio; - const y = scrollTop * ratio; - const left = viewport.width - SIZE_MINIMAP_WIDTH - SIZE_MINIMAP_MARGIN - x; - const top = SIZE_MINIMAP_MARGIN - y; - const width = viewport.width * ratio; - const height = viewport.height * ratio; - - return { - width: `${width}px`, - height: `${height}px`, - left: `${left}px`, - top: `${top}px`, - }; - }; - - return () => html` -
    - `; -}; - -defineComponent('vuerd-minimap-handle', { - observedProps: ['selected'], - shadow: false, - render: MinimapHandle, -}); diff --git a/packages-legacy/vuerd/src/components/editor/minimap/Table.ts b/packages-legacy/vuerd/src/components/editor/minimap/Table.ts deleted file mode 100644 index d01b4358..00000000 --- a/packages-legacy/vuerd/src/components/editor/minimap/Table.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { - defineComponent, - FunctionalComponent, - html, -} from '@vuerd/lit-observable'; -import { styleMap } from 'lit-html/directives/style-map'; - -import { Table } from '@@types/engine/store/table.state'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-minimap-table': MinimapTableElement; - } -} - -export interface MinimapTableProps { - table: Table; -} - -export interface MinimapTableElement extends MinimapTableProps, HTMLElement {} - -const MinimapTable: FunctionalComponent< - MinimapTableProps, - MinimapTableElement -> = (props, ctx) => () => { - const { table } = props; - const { ui } = table; - table.maxWidthColumn(); - - return html` -
    - `; -}; - -defineComponent('vuerd-minimap-table', { - observedProps: ['table'], - shadow: false, - render: MinimapTable, -}); diff --git a/packages-legacy/vuerd/src/components/editor/minimap/useMinimapScroll.ts b/packages-legacy/vuerd/src/components/editor/minimap/useMinimapScroll.ts deleted file mode 100644 index 6fa88cb4..00000000 --- a/packages-legacy/vuerd/src/components/editor/minimap/useMinimapScroll.ts +++ /dev/null @@ -1,128 +0,0 @@ -import { observable } from '@vuerd/lit-observable'; - -import { isMouseEvent } from '@/core/helper/dom.helper'; -import { getViewport } from '@/core/helper/dragSelect.helper'; -import { DragMove } from '@/core/helper/event.helper'; -import { useContext } from '@/core/hooks/context.hook'; -import { SIZE_MINIMAP_WIDTH } from '@/core/layout'; -import { movementCanvas } from '@/engine/command/canvas.cmd.helper'; - -export const DirectionName = { - left: 'left', - right: 'right', - top: 'top', - bottom: 'bottom', -} as const; -export type DirectionName = (typeof DirectionName)[keyof typeof DirectionName]; - -export function useMinimapScroll(ctx: HTMLElement) { - const contextRef = useContext(ctx); - const state = observable({ - selected: false, - }); - - let clientX = 0; - let clientY = 0; - - const getRatio = () => { - const { store } = contextRef.value; - return SIZE_MINIMAP_WIDTH / store.canvasState.width; - }; - - const absoluteMovement = (movement: number) => { - const ratio = getRatio(); - return -1 * (movement / ratio); - }; - - const getMovementX = ({ movementX, x }: DragMove) => { - const { store } = contextRef.value; - const viewport = getViewport(store); - const scrollLeft = - store.canvasState.scrollLeft + absoluteMovement(movementX); - const min = viewport.width - store.canvasState.width; - const max = 0; - const direction = movementX < 0 ? DirectionName.left : DirectionName.right; - let change = false; - - switch (direction) { - case DirectionName.left: - if (scrollLeft < max && x < clientX) { - clientX += movementX; - change = true; - } - break; - case DirectionName.right: - if (scrollLeft > min && x > clientX) { - clientX += movementX; - change = true; - } - break; - } - - return change ? movementX : 0; - }; - - const getMovementY = ({ movementY, y }: DragMove) => { - const { store } = contextRef.value; - const scrollTop = store.canvasState.scrollTop + absoluteMovement(movementY); - const min = store.editorState.viewport.height - store.canvasState.height; - const max = 0; - const direction = movementY < 0 ? DirectionName.top : DirectionName.bottom; - let change = false; - - switch (direction) { - case DirectionName.top: - if (scrollTop < max && y < clientY) { - clientY += movementY; - change = true; - } - break; - case DirectionName.bottom: - if (scrollTop > min && y > clientY) { - clientY += movementY; - change = true; - } - break; - } - - return change ? movementY : 0; - }; - - const handleScroll = (dragMove: DragMove) => { - const { event } = dragMove; - event.type === 'mousemove' && event.preventDefault(); - const movementX = getMovementX(dragMove); - const movementY = getMovementY(dragMove); - - if (movementX === 0 && movementY === 0) { - return; - } - - const { store } = contextRef.value; - store.dispatch( - movementCanvas(absoluteMovement(movementX), absoluteMovement(movementY)) - ); - }; - - const onScrollStart = (event: MouseEvent | TouchEvent) => { - const { - globalEvent: { drag$ }, - } = contextRef.value; - state.selected = true; - - clientX = isMouseEvent(event) ? event.clientX : event.touches[0].clientX; - clientY = isMouseEvent(event) ? event.clientY : event.touches[0].clientY; - - drag$.subscribe({ - next: handleScroll, - complete: () => { - state.selected = false; - }, - }); - }; - - return { - state, - onScrollStart, - }; -} diff --git a/packages-legacy/vuerd/src/components/editor/table/HighLevelTable.style.ts b/packages-legacy/vuerd/src/components/editor/table/HighLevelTable.style.ts deleted file mode 100644 index b6a41f4e..00000000 --- a/packages-legacy/vuerd/src/components/editor/table/HighLevelTable.style.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { css } from '@/core/tagged'; - -export const HighLevelTableStyle = css` - .vuerd-high-level-table { - width: 100%; - height: 100%; - display: flex; - align-items: center; - justify-content: center; - overflow: auto; - color: var(--vuerd-color-font-active); - font-weight: bold; - font-size: 20px; - word-break: break-all; - } -`; diff --git a/packages-legacy/vuerd/src/components/editor/table/HighLevelTable.ts b/packages-legacy/vuerd/src/components/editor/table/HighLevelTable.ts deleted file mode 100644 index 97473be5..00000000 --- a/packages-legacy/vuerd/src/components/editor/table/HighLevelTable.ts +++ /dev/null @@ -1,201 +0,0 @@ -import { Easing, Tween } from '@tweenjs/tween.js'; -import { - beforeMount, - defineComponent, - FunctionalComponent, - html, - observable, - watch, -} from '@vuerd/lit-observable'; -import { classMap } from 'lit-html/directives/class-map'; -import { styleMap } from 'lit-html/directives/style-map'; - -import { Bus } from '@/core/helper/eventBus.helper'; -import { useColorPicker } from '@/core/hooks/colorPicker.hook'; -import { useContext } from '@/core/hooks/context.hook'; -import { useUnmounted } from '@/core/hooks/unmounted.hook'; -import { SIZE_TABLE_BORDER, SIZE_TABLE_PADDING } from '@/core/layout'; -import { - changeColorTable, - moveTable, - selectTable$, -} from '@/engine/command/table.cmd.helper'; -import { relationshipSort } from '@/engine/store/helper/relationship.helper'; -import { Move } from '@/internal-types/event.helper'; -import { Table } from '@@types/engine/store/table.state'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-high-level-table': HighLevelTableElement; - } -} - -export interface HighLevelTableProps { - table: Table; -} - -export interface HighLevelTableElement - extends HighLevelTableProps, - HTMLElement {} - -const TABLE_PADDING = (SIZE_TABLE_PADDING + SIZE_TABLE_BORDER) * 2; -const ANIMATION_TIME = 300; - -const HighLevelTable: FunctionalComponent< - HighLevelTableProps, - HighLevelTableElement -> = (props, ctx) => { - const contextRef = useContext(ctx); - const { unmountedGroup } = useUnmounted(); - const state = observable({ color: '' }); - useColorPicker('.vuerd-table-header-color', ctx, state); - let leftTween: Tween<{ left: number }> | null = null; - let topTween: Tween<{ top: number }> | null = null; - - const getFontSize = () => { - const { zoomLevel } = contextRef.value.store.canvasState; - let fontSize = 25; - - if (zoomLevel > 0.6) { - fontSize = 25; - } else if (zoomLevel > 0.5) { - fontSize = 30; - } else if (zoomLevel > 0.4) { - fontSize = 35; - } else if (zoomLevel > 0.3) { - fontSize = 40; - } else { - fontSize = 45; - } - - return fontSize; - }; - - const onMove = ({ event, movementX, movementY }: Move) => { - event.type === 'mousemove' && event.preventDefault(); - const { store } = contextRef.value; - store.dispatch( - moveTable( - store, - event.ctrlKey || event.metaKey, - movementX, - movementY, - props.table.id - ) - ); - }; - - const onMoveStart = (event: MouseEvent | TouchEvent) => { - const el = event.target as HTMLElement; - const { store, globalEvent, eventBus } = contextRef.value; - const { drag$ } = globalEvent; - - if (!el.closest('.vuerd-button') && !el.closest('vuerd-input')) { - leftTween?.stop(); - topTween?.stop(); - - drag$.subscribe({ - next: onMove, - complete: () => eventBus.emit(Bus.BalanceRange.move), - }); - } - - store.dispatch( - selectTable$(store, event.ctrlKey || event.metaKey, props.table.id) - ); - }; - - const moveBalance = () => { - const { - canvasState: { width, height }, - tableState: { tables }, - relationshipState: { relationships }, - } = contextRef.value.store; - const minWidth = width - (props.table.width() + TABLE_PADDING); - const minHeight = height - (props.table.height() + TABLE_PADDING); - const x = props.table.ui.left > minWidth ? minWidth : 0; - const y = props.table.ui.top > minHeight ? minHeight : 0; - - if (props.table.ui.left < 0 || props.table.ui.left > minWidth) { - leftTween = new Tween(props.table.ui) - .to({ left: x }, ANIMATION_TIME) - .easing(Easing.Quadratic.Out) - .onUpdate(() => relationshipSort(tables, relationships)) - .onComplete(() => (leftTween = null)) - .start(); - } - - if (props.table.ui.top < 0 || props.table.ui.top > minHeight) { - topTween = new Tween(props.table.ui) - .to({ top: y }, ANIMATION_TIME) - .easing(Easing.Quadratic.Out) - .onUpdate(() => relationshipSort(tables, relationships)) - .onComplete(() => (topTween = null)) - .start(); - } - }; - - beforeMount(() => { - const { eventBus, store } = contextRef.value; - state.color = props.table.ui.color || ''; - - unmountedGroup.push( - eventBus.on(Bus.BalanceRange.move).subscribe(moveBalance), - watch(state, propName => { - if (propName !== 'color') return; - store.dispatch( - changeColorTable(store, true, state.color, props.table.id) - ); - }) - ); - }); - - return () => { - const { table } = props; - const { ui } = table; - table.maxWidthColumn(); - - return html` -
    -
    -
    -
    -
    - ${table.name} -
    -
    - `; - }; -}; - -defineComponent('vuerd-high-level-table', { - observedProps: ['table'], - shadow: false, - render: HighLevelTable, -}); diff --git a/packages-legacy/vuerd/src/components/editor/table/Table.style.ts b/packages-legacy/vuerd/src/components/editor/table/Table.style.ts deleted file mode 100644 index 313762ab..00000000 --- a/packages-legacy/vuerd/src/components/editor/table/Table.style.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { - SIZE_FONT, - SIZE_TABLE_BORDER, - SIZE_TABLE_HEADER_BODY_HEIGHT, - SIZE_TABLE_PADDING, -} from '@/core/layout'; -import { css } from '@/core/tagged'; - -export const TableStyle = css` - .vuerd-table { - position: absolute; - opacity: 0.9; - padding: ${SIZE_TABLE_PADDING}px; - font-size: ${SIZE_FONT}px; - fill: #fff0; - color: #fff0; - background-color: var(--vuerd-color-table); - border: solid #fff0 ${SIZE_TABLE_BORDER}px; - border-radius: 5px; - } - - .vuerd-table:hover { - fill: var(--vuerd-color-font); - color: var(--vuerd-color-font); - } - - .vuerd-table.active { - border: solid var(--vuerd-color-table-active) ${SIZE_TABLE_BORDER}px; - box-shadow: 0 1px 6px var(--vuerd-color-table-active); - } - - .vuerd-table .vuerd-table-header { - position: relative; - } - - .vuerd-table .vuerd-table-header-color { - position: absolute; - height: 4px; - top: -11px; - left: -10px; - border-radius: 5px 5px 0 0; - opacity: 0.9; - cursor: pointer; - } - - .vuerd-table .vuerd-table-header-top { - overflow: hidden; - cursor: move; - } - - .vuerd-table .vuerd-table-header-top .vuerd-button { - margin-left: 5px; - float: right; - } - - .vuerd-table .vuerd-table-header-body { - height: ${SIZE_TABLE_HEADER_BODY_HEIGHT}px; - } - - .vuerd-table .vuerd-table-header-body > vuerd-input { - float: left; - } - - /* animation flip */ - .vuerd-column-move { - transition: transform 0.3s; - } - - .vuerd-table-default:hover { - color: var(--vuerd-color-font-active); - } -`; diff --git a/packages-legacy/vuerd/src/components/editor/table/Table.ts b/packages-legacy/vuerd/src/components/editor/table/Table.ts deleted file mode 100644 index 9f23dd27..00000000 --- a/packages-legacy/vuerd/src/components/editor/table/Table.ts +++ /dev/null @@ -1,379 +0,0 @@ -/* eslint-disable import/no-duplicates */ -import '@/components/editor/Input'; -import './column/Column'; - -import { Easing, Tween } from '@tweenjs/tween.js'; -import { - beforeMount, - defineComponent, - FunctionalComponent, - html, - observable, - updated, - watch, -} from '@vuerd/lit-observable'; -import { classMap } from 'lit-html/directives/class-map'; -import { repeat } from 'lit-html/directives/repeat'; -import { styleMap } from 'lit-html/directives/style-map'; -import { Subject } from 'rxjs'; -import { debounceTime } from 'rxjs/operators'; - -import { FlipAnimation } from '@/core/flipAnimation'; -import { onPreventDefault } from '@/core/helper/dom.helper'; -import { Bus } from '@/core/helper/eventBus.helper'; -import { useColorPicker } from '@/core/hooks/colorPicker.hook'; -import { useContext } from '@/core/hooks/context.hook'; -import { useHasTable } from '@/core/hooks/hasTable.hook'; -import { useTooltip } from '@/core/hooks/tooltip.hook'; -import { useUnmounted } from '@/core/hooks/unmounted.hook'; -import { keymapOptionsToString } from '@/core/keymap'; -import { SIZE_TABLE_BORDER, SIZE_TABLE_PADDING } from '@/core/layout'; -import { addColumn$, moveColumn$ } from '@/engine/command/column.cmd.helper'; -import { - editTable, - editTableEnd, - focusTable, -} from '@/engine/command/editor.cmd.helper'; -import { - changeColorTable, - changeTableComment, - changeTableName, - moveTable, - removeTable, - selectTable$, -} from '@/engine/command/table.cmd.helper'; -import { relationshipSort } from '@/engine/store/helper/relationship.helper'; -import { Move } from '@/internal-types/event.helper'; -import { TableType } from '@@types/engine/store/editor.state'; -import { Table } from '@@types/engine/store/table.state'; - -import { DragoverColumnDetail } from './column/Column'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-table': TableElement; - } -} - -export interface TableProps { - table: Table; -} - -export interface TableElement extends TableProps, HTMLElement {} - -const TABLE_PADDING = (SIZE_TABLE_PADDING + SIZE_TABLE_BORDER) * 2; -const ANIMATION_TIME = 300; - -const Table: FunctionalComponent = (props, ctx) => { - const contextRef = useContext(ctx); - const { hasFocusState, hasEdit, hasSelectColumn, hasDraggableColumn } = - useHasTable(props, ctx); - useTooltip(['.vuerd-table-button'], ctx); - const { resetTooltip } = useTooltip(['.vuerd-table-comment'], ctx); - const flipAnimation = new FlipAnimation( - ctx.shadowRoot ? ctx.shadowRoot : ctx, - 'vuerd-column', - 'vuerd-column-move' - ); - const draggable$ = new Subject>(); - const { unmountedGroup } = useUnmounted(); - const state = observable({ color: '', id: props.table?.id }); - useColorPicker('.vuerd-table-header-color', ctx, state); - let leftTween: Tween<{ left: number }> | null = null; - let topTween: Tween<{ top: number }> | null = null; - - const onInput = (event: InputEvent, focusType: string) => { - const { store, helper } = contextRef.value; - const input = event.target as HTMLInputElement; - switch (focusType) { - case 'tableName': - store.dispatch(changeTableName(helper, props.table.id, input.value)); - break; - case 'tableComment': - store.dispatch(changeTableComment(helper, props.table.id, input.value)); - break; - } - }; - - const onMove = ({ event, movementX, movementY }: Move) => { - event.type === 'mousemove' && event.preventDefault(); - const { store } = contextRef.value; - store.dispatch( - moveTable( - store, - event.ctrlKey || event.metaKey, - movementX, - movementY, - props.table.id - ) - ); - }; - - const onMoveStart = (event: MouseEvent | TouchEvent) => { - const el = event.target as HTMLElement; - const { store, globalEvent, eventBus } = contextRef.value; - const { drag$ } = globalEvent; - - if (!el.closest('.vuerd-button') && !el.closest('vuerd-input')) { - leftTween?.stop(); - topTween?.stop(); - - drag$.subscribe({ - next: onMove, - complete: () => eventBus.emit(Bus.BalanceRange.move), - }); - } - - store.dispatch( - selectTable$(store, event.ctrlKey || event.metaKey, props.table.id) - ); - }; - - const onRemoveTable = () => { - const { store } = contextRef.value; - store.dispatch(removeTable(store, props.table.id)); - }; - - const onAddColumn = () => { - const { store } = contextRef.value; - store.dispatch(addColumn$(store, props.table.id)); - }; - - const onFocus = (focusType: TableType) => { - const { store } = contextRef.value; - store.dispatch(focusTable(props.table.id, focusType)); - }; - - const onBlur = () => { - const { store } = contextRef.value; - store.dispatch(editTableEnd()); - }; - - const onEdit = () => { - const { store } = contextRef.value; - store.dispatch(editTable()); - }; - - const onDragoverGroupColumn = (event: CustomEvent) => - draggable$.next(event); - - const onDraggableColumn = (event: CustomEvent) => { - const { store } = contextRef.value; - const { - editorState: { draggableColumn }, - } = store; - const { tableId, columnId } = event.detail; - - if (!draggableColumn || draggableColumn.columnIds.includes(columnId)) - return; - - flipAnimation.snapshot(); - store.dispatch( - moveColumn$( - store, - draggableColumn.tableId, - draggableColumn.columnIds, - tableId, - columnId - ) - ); - }; - - const moveBalance = () => { - const { - canvasState: { width, height }, - tableState: { tables }, - relationshipState: { relationships }, - } = contextRef.value.store; - const minWidth = width - (props.table.width() + TABLE_PADDING); - const minHeight = height - (props.table.height() + TABLE_PADDING); - const x = props.table.ui.left > minWidth ? minWidth : 0; - const y = props.table.ui.top > minHeight ? minHeight : 0; - - if (props.table.ui.left < 0 || props.table.ui.left > minWidth) { - leftTween = new Tween(props.table.ui) - .to({ left: x }, ANIMATION_TIME) - .easing(Easing.Quadratic.Out) - .onUpdate(() => relationshipSort(tables, relationships)) - .onComplete(() => (leftTween = null)) - .start(); - } - - if (props.table.ui.top < 0 || props.table.ui.top > minHeight) { - topTween = new Tween(props.table.ui) - .to({ top: y }, ANIMATION_TIME) - .easing(Easing.Quadratic.Out) - .onUpdate(() => relationshipSort(tables, relationships)) - .onComplete(() => (topTween = null)) - .start(); - } - }; - - updated(() => flipAnimation.play()); - - beforeMount(() => { - const { eventBus, store } = contextRef.value; - const { - canvasState: { show }, - } = store; - - state.color = props.table.ui.color || ''; - - unmountedGroup.push( - draggable$.pipe(debounceTime(50)).subscribe(onDraggableColumn), - eventBus.on(Bus.BalanceRange.move).subscribe(moveBalance), - watch(props.table, propName => { - if (propName !== 'comment') return; - - resetTooltip(); - }), - watch(show, propName => { - if (propName !== 'tableComment') return; - - resetTooltip(); - }), - watch(state, propName => { - if (propName !== 'color') return; - store.dispatch( - changeColorTable(store, true, state.color, props.table.id) - ); - }) - ); - }); - - return () => { - const { - keymap, - store: { - canvasState: { show }, - }, - } = contextRef.value; - const { table } = props; - const { ui, columns } = table; - const widthColumn = table.maxWidthColumn(); - - state.id = table.id; - - return html` -
    -
    -
    -
    - - -
    -
    - onInput(event, 'tableName')} - @mousedown=${() => onFocus('tableName')} - @dblclick=${onEdit} - @vuerd-input-blur=${onBlur} - > - ${show.tableComment - ? html` - - onInput(event, 'tableComment')} - @mousedown=${() => onFocus('tableComment')} - @dblclick=${onEdit} - @vuerd-input-blur=${onBlur} - > - ` - : null} -
    -
    -
    - ${repeat( - columns, - column => column.id, - column => html` - - ` - )} -
    -
    - `; - }; -}; - -defineComponent('vuerd-table', { - observedProps: ['table'], - shadow: false, - render: Table, -}); diff --git a/packages-legacy/vuerd/src/components/editor/table/column/Column.style.ts b/packages-legacy/vuerd/src/components/editor/table/column/Column.style.ts deleted file mode 100644 index 6ead1327..00000000 --- a/packages-legacy/vuerd/src/components/editor/table/column/Column.style.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { SIZE_COLUMN_HEIGHT } from '@/core/layout'; -import { css } from '@/core/tagged'; - -export const ColumnStyle = css` - .vuerd-column { - height: ${SIZE_COLUMN_HEIGHT}px; - fill: #fff0; - } - - .vuerd-column:hover { - fill: var(--vuerd-color-font); - } - - .vuerd-column.select { - background-color: var(--vuerd-color-column-select); - } - - .vuerd-column.active { - background-color: var(--vuerd-color-column-active); - } - - .vuerd-column.draggable { - opacity: 0.5; - } - - .vuerd-column > vuerd-icon, - .vuerd-column > vuerd-input, - vuerd-column-key, - vuerd-column-not-null, - vuerd-column-data-type, - vuerd-column-auto-increment, - vuerd-column-unique { - float: left; - } -`; diff --git a/packages-legacy/vuerd/src/components/editor/table/column/Column.template.ts b/packages-legacy/vuerd/src/components/editor/table/column/Column.template.ts deleted file mode 100644 index a5250cdd..00000000 --- a/packages-legacy/vuerd/src/components/editor/table/column/Column.template.ts +++ /dev/null @@ -1,189 +0,0 @@ -import { html, TemplateResult } from '@vuerd/lit-observable'; -import { repeat } from 'lit-html/directives/repeat'; - -import { IERDEditorContext } from '@/internal-types/ERDEditorContext'; -import { ColumnType } from '@@types/engine/store/canvas.state'; - -import { ColumnProps } from './Column'; - -interface ReshapeColumn { - columnType: ColumnType; - template: TemplateResult; -} - -export interface ColumnTplProps { - onInput(event: Event, columnType: ColumnType): void; - onFocus(event: MouseEvent, columnType: ColumnType): void; - onBlur(): void; - onEdit(columnType: ColumnType): void; -} - -export function columnTpl( - props: ColumnProps, - { store, helper }: IERDEditorContext, - { onInput, onFocus, onBlur, onEdit }: ColumnTplProps -) { - const { - canvasState: { show, setting }, - } = store; - const { column } = props; - const { ui } = column; - - const reshapeColumns = setting.columnOrder - .map(columnType => { - switch (columnType) { - case 'columnName': - return { - columnType, - template: html` - onInput(event, 'columnName')} - @mousedown=${(event: MouseEvent) => - onFocus(event, 'columnName')} - @dblclick=${() => onEdit('columnName')} - > - `, - }; - - case 'columnDefault': - return show.columnDefault - ? { - columnType, - template: html` - onInput(event, 'columnDefault')} - @mousedown=${(event: MouseEvent) => - onFocus(event, 'columnDefault')} - @dblclick=${() => onEdit('columnDefault')} - > - `, - } - : null; - - case 'columnComment': - return show.columnComment - ? { - columnType, - template: html` - onInput(event, 'columnComment')} - @mousedown=${(event: MouseEvent) => - onFocus(event, 'columnComment')} - @dblclick=${() => onEdit('columnComment')} - > - `, - } - : null; - - case 'columnDataType': - return show.columnDataType - ? { - columnType, - template: html` - onInput(event, 'columnDataType')} - @mousedown=${(event: MouseEvent) => - onFocus(event, 'columnDataType')} - @dblclick=${() => onEdit('columnDataType')} - > - `, - } - : null; - - case 'columnNotNull': - return show.columnNotNull - ? { - columnType, - template: html` - - onFocus(event, 'columnNotNull')} - @dblclick=${() => onEdit('columnNotNull')} - > - `, - } - : null; - - case 'columnUnique': - return show.columnUnique - ? { - columnType, - template: html` - - onFocus(event, 'columnUnique')} - @dblclick=${() => onEdit('columnUnique')} - > - `, - } - : null; - - case 'columnAutoIncrement': - return show.columnAutoIncrement - ? { - columnType, - template: html` - - onFocus(event, 'columnAutoIncrement')} - @dblclick=${() => onEdit('columnAutoIncrement')} - > - `, - } - : null; - - default: - return null; - } - }) - .filter(reshapeColumn => !!reshapeColumn) as ReshapeColumn[]; - - return repeat( - reshapeColumns, - reshapeColumn => reshapeColumn.columnType, - reshapeColumn => reshapeColumn.template - ); -} diff --git a/packages-legacy/vuerd/src/components/editor/table/column/Column.ts b/packages-legacy/vuerd/src/components/editor/table/column/Column.ts deleted file mode 100644 index 1948d233..00000000 --- a/packages-legacy/vuerd/src/components/editor/table/column/Column.ts +++ /dev/null @@ -1,269 +0,0 @@ -import './ColumnKey'; -import './ColumnDataType'; -import './ColumnNotNull'; -import './ColumnUnique'; -import './ColumnAutoIncrement'; - -import { - beforeMount, - defineComponent, - FunctionalComponent, - html, - watch, -} from '@vuerd/lit-observable'; -import { classMap } from 'lit-html/directives/class-map'; -import { Subject } from 'rxjs'; -import { throttleTime } from 'rxjs/operators'; - -import { useContext } from '@/core/hooks/context.hook'; -import { useTooltip } from '@/core/hooks/tooltip.hook'; -import { useUnmounted } from '@/core/hooks/unmounted.hook'; -import { keymapOptionsToString } from '@/core/keymap'; -import { - changeColumnAutoIncrement, - changeColumnComment, - changeColumnDataType, - changeColumnDefault, - changeColumnName, - changeColumnNotNull, - changeColumnUnique, - removeColumn$, -} from '@/engine/command/column.cmd.helper'; -import { - draggableColumn, - draggableColumnEnd, - editTable, - editTableEnd, - focusColumn, -} from '@/engine/command/editor.cmd.helper'; -import { ColumnType } from '@@types/engine/store/canvas.state'; -import { Column } from '@@types/engine/store/table.state'; - -import { columnTpl } from './Column.template'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-column': ColumnElement; - } -} - -export interface ColumnProps { - tableId: string; - column: Column; - select: boolean; - draggable: boolean; - focusName: boolean; - focusDataType: boolean; - focusNotNull: boolean; - focusDefault: boolean; - focusComment: boolean; - focusUnique: boolean; - focusAutoIncrement: boolean; - editName: boolean; - editDataType: boolean; - editDefault: boolean; - editComment: boolean; - widthName: number; - widthDataType: number; - widthDefault: number; - widthComment: number; -} - -export interface ColumnElement extends ColumnProps, HTMLElement {} - -export interface DragoverColumnDetail { - tableId: string; - columnId: string; -} - -const changeColumnMap = { - columnName: changeColumnName, - columnComment: changeColumnComment, - columnDataType: changeColumnDataType, - columnDefault: changeColumnDefault, -}; - -const changeColumnBooleanMap = { - columnNotNull: changeColumnNotNull, - columnUnique: changeColumnUnique, - columnAutoIncrement: changeColumnAutoIncrement, -}; - -const changeColumnBooleanKeys: ColumnType[] = [ - 'columnNotNull', - 'columnUnique', - 'columnAutoIncrement', -]; - -const Column: FunctionalComponent = ( - props, - ctx -) => { - const contextRef = useContext(ctx); - useTooltip(['.vuerd-column-button'], ctx, { placement: 'right' }); - const { resetTooltip } = useTooltip(['.vuerd-column-comment'], ctx, { - placement: 'right', - }); - const { unmountedGroup } = useUnmounted(); - const dragover$ = new Subject(); - - const onRemoveColumn = () => { - const { store } = contextRef.value; - store.dispatch(removeColumn$(store, props.tableId, [props.column.id])); - }; - - const onDragstart = (event: DragEvent) => { - const { store } = contextRef.value; - store.dispatch( - draggableColumn( - store, - props.tableId, - props.column.id, - event.ctrlKey || event.metaKey - ) - ); - }; - - const onDragend = () => { - const { store } = contextRef.value; - store.dispatch(draggableColumnEnd()); - }; - - const onDragover = () => dragover$.next(null); - - const onDragoverColumn = () => - ctx.dispatchEvent( - new CustomEvent('dragover-column', { - detail: { - tableId: props.tableId, - columnId: props.column.id, - }, - }) - ); - - const onInput = (event: Event, columnType: ColumnType) => { - const { store, helper } = contextRef.value; - const changeColumn = (changeColumnMap as any)[columnType]; - if (!changeColumn) return; - - const input = event.target as HTMLInputElement; - - store.dispatch( - changeColumn(helper, props.tableId, props.column.id, input.value) - ); - }; - - const onFocus = (event: MouseEvent, columnType: ColumnType) => { - const { store } = contextRef.value; - store.dispatch( - focusColumn( - props.tableId, - props.column.id, - columnType, - event.ctrlKey || event.metaKey, - event.shiftKey - ) - ); - }; - - const onBlur = () => { - const { store } = contextRef.value; - store.dispatch(editTableEnd()); - }; - - const onEdit = (columnType: ColumnType) => { - const { store } = contextRef.value; - if (changeColumnBooleanKeys.includes(columnType)) { - const changeColumn = (changeColumnBooleanMap as any)[columnType]; - - store.dispatch(changeColumn(store, props.tableId, props.column.id)); - } else { - store.dispatch(editTable()); - } - }; - - dragover$.pipe(throttleTime(300)).subscribe(onDragoverColumn); - - beforeMount(() => { - const { show } = contextRef.value.store.canvasState; - - unmountedGroup.push( - watch(props.column, propName => { - if (propName !== 'comment') return; - - resetTooltip(); - }), - watch(show, propName => { - if (propName !== 'columnComment') return; - - resetTooltip(); - }) - ); - }); - - return () => { - const { keymap } = contextRef.value; - const { column } = props; - const { ui } = column; - - return html` -
    - - ${columnTpl(props, contextRef.value, { - onInput, - onFocus, - onBlur, - onEdit, - })} - -
    - `; - }; -}; - -defineComponent('vuerd-column', { - observedProps: [ - 'tableId', - 'column', - 'select', - 'draggable', - 'focusName', - 'focusDataType', - 'focusNotNull', - 'focusDefault', - 'focusComment', - 'focusUnique', - 'focusAutoIncrement', - 'editName', - 'editDataType', - 'editDefault', - 'editComment', - 'widthName', - 'widthDataType', - 'widthDefault', - 'widthComment', - ], - shadow: false, - styleMap: { - display: 'flex', - }, - render: Column, -}); diff --git a/packages-legacy/vuerd/src/components/editor/table/column/ColumnAutoIncrement.style.ts b/packages-legacy/vuerd/src/components/editor/table/column/ColumnAutoIncrement.style.ts deleted file mode 100644 index 3f7806b2..00000000 --- a/packages-legacy/vuerd/src/components/editor/table/column/ColumnAutoIncrement.style.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { - SIZE_COLUMN_MARGIN_RIGHT, - SIZE_INPUT_EDIT_HEIGHT, -} from '@/core/layout'; -import { css } from '@/core/tagged'; - -export const ColumnAutoIncrementStyle = css` - .vuerd-column-auto-increment { - display: flex; - vertical-align: middle; - align-items: center; - border-bottom: solid #fff0 1.5px; - cursor: default; - height: ${SIZE_INPUT_EDIT_HEIGHT}px; - margin-right: ${SIZE_COLUMN_MARGIN_RIGHT}px; - color: var(--vuerd-color-font-placeholder); - } - - .vuerd-column-auto-increment.focus { - border-bottom: solid var(--vuerd-color-focus) 1.5px; - } - - .vuerd-column-auto-increment.checked { - color: var(--vuerd-color-font-active); - } -`; diff --git a/packages-legacy/vuerd/src/components/editor/table/column/ColumnAutoIncrement.ts b/packages-legacy/vuerd/src/components/editor/table/column/ColumnAutoIncrement.ts deleted file mode 100644 index 5bdbc3f6..00000000 --- a/packages-legacy/vuerd/src/components/editor/table/column/ColumnAutoIncrement.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { - defineComponent, - FunctionalComponent, - html, -} from '@vuerd/lit-observable'; -import { classMap } from 'lit-html/directives/class-map'; -import { styleMap } from 'lit-html/directives/style-map'; - -import { useTooltip } from '@/core/hooks/tooltip.hook'; -import { SIZE_COLUMN_OPTION_AI } from '@/core/layout'; -import { ColumnOption } from '@@types/engine/store/table.state'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-column-auto-increment': ColumnAutoIncrementElement; - } -} - -export interface ColumnAutoIncrementProps { - focusState: boolean; - columnOption: ColumnOption; -} - -export interface ColumnAutoIncrementElement - extends ColumnAutoIncrementProps, - HTMLElement {} - -const ColumnAutoIncrement: FunctionalComponent< - ColumnAutoIncrementProps, - ColumnAutoIncrementElement -> = (props, ctx) => { - useTooltip(['.vuerd-column-auto-increment'], ctx); - - return () => html` -
    - AI -
    - `; -}; - -defineComponent('vuerd-column-auto-increment', { - observedProps: [ - { - name: 'focusState', - default: false, - }, - 'columnOption', - ], - shadow: false, - render: ColumnAutoIncrement, -}); diff --git a/packages-legacy/vuerd/src/components/editor/table/column/ColumnDataType.style.ts b/packages-legacy/vuerd/src/components/editor/table/column/ColumnDataType.style.ts deleted file mode 100644 index 2b658498..00000000 --- a/packages-legacy/vuerd/src/components/editor/table/column/ColumnDataType.style.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { SIZE_COLUMN_HEIGHT, SIZE_FONT } from '@/core/layout'; -import { css } from '@/core/tagged'; - -export const ColumnDataTypeStyle = css` - .vuerd-column-data-type { - display: flex; - vertical-align: middle; - align-items: center; - position: relative; - } - - .vuerd-column-data-type-hint { - position: absolute; - z-index: 1; - opacity: 0.9; - top: ${SIZE_COLUMN_HEIGHT}px; - left: 0; - color: var(--vuerd-color-font); - background-color: var(--vuerd-color-contextmenu); - list-style: none; - padding: 0; - margin: 0; - white-space: nowrap; - } - - .vuerd-column-data-type-hint > li { - padding: 5px; - cursor: pointer; - font-size: ${SIZE_FONT}px; - } - - .vuerd-column-data-type-hint > li:hover, - .vuerd-data-type-hint.active { - color: var(--vuerd-color-font-active); - background-color: var(--vuerd-color-contextmenu-active); - } - - .vuerd-column-data-type-hint > li:hover .vuerd-data-type-hint-mark, - .vuerd-data-type-hint.active .vuerd-data-type-hint-mark { - color: var(--vuerd-color-font-active); - } - - /* animation flip */ - .vuerd-data-type-hint-move { - transition: transform 0.2s; - } - - .vuerd-data-type-hint-mark { - color: var(--vuerd-color-edit); - } -`; diff --git a/packages-legacy/vuerd/src/components/editor/table/column/ColumnDataType.template.ts b/packages-legacy/vuerd/src/components/editor/table/column/ColumnDataType.template.ts deleted file mode 100644 index f4521cc8..00000000 --- a/packages-legacy/vuerd/src/components/editor/table/column/ColumnDataType.template.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { html } from '@vuerd/lit-observable'; -import { classMap } from 'lit-html/directives/class-map'; -import { repeat } from 'lit-html/directives/repeat'; -import { unsafeHTML } from 'lit-html/directives/unsafe-html'; - -import { Hint, HintState } from '@/core/hooks/dataTypeHint.hook'; - -export interface DataTypeHintProps { - onSelectHint(hint: Hint): void; -} - -export const dataTypeHintTpl = ( - props: DataTypeHintProps, - state: HintState -) => html` -
      - ${repeat( - state.hints, - hint => hint.name, - hint => { - return html` -
    • props.onSelectHint(hint)} - > - ${unsafeHTML(hint.html)} -
    • - `; - } - )} -
    -`; diff --git a/packages-legacy/vuerd/src/components/editor/table/column/ColumnDataType.ts b/packages-legacy/vuerd/src/components/editor/table/column/ColumnDataType.ts deleted file mode 100644 index 2d3ea79e..00000000 --- a/packages-legacy/vuerd/src/components/editor/table/column/ColumnDataType.ts +++ /dev/null @@ -1,140 +0,0 @@ -import { - beforeMount, - closestElement, - defineComponent, - FunctionalComponent, - html, - queryShadowSelector, - unmounted, - watch, -} from '@vuerd/lit-observable'; -import { fromEvent, Subscription } from 'rxjs'; - -import { lastCursorFocus } from '@/core/helper/dom.helper'; -import { useDataTypeHint } from '@/core/hooks/dataTypeHint.hook'; -import { useFlipAnimation } from '@/core/hooks/flipAnimation.hook'; -import { useUnmounted } from '@/core/hooks/unmounted.hook'; - -import { dataTypeHintTpl } from './ColumnDataType.template'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-column-data-type': ColumnDataTypeElement; - } -} - -export interface ColumnDataTypeProps { - edit: boolean; - focusState: boolean; - select: boolean; - active: boolean; - width: number; - value: string; - placeholder: string; - tableId: string; - columnId: string; -} - -export interface ColumnDataTypeElement - extends ColumnDataTypeProps, - HTMLElement {} - -const ColumnDataType: FunctionalComponent< - ColumnDataTypeProps, - ColumnDataTypeElement -> = (props, ctx) => { - const { hintState, onSelectHint, onKeydown, onInput } = useDataTypeHint( - props, - ctx - ); - const { unmountedGroup } = useUnmounted(); - let subscription: Subscription | null = null; - useFlipAnimation(ctx, '.vuerd-data-type-hint', 'vuerd-data-type-hint-move'); - - const emitBlur = () => - ctx.dispatchEvent( - new CustomEvent('vuerd-input-blur', { - composed: true, - bubbles: true, - }) - ); - - const onBlur = (event: CustomEvent) => { - event.stopPropagation(); - const input = queryShadowSelector(['vuerd-input', 'input'], ctx); - - input && props.edit ? setTimeout(lastCursorFocus, 0, input) : emitBlur(); - }; - - const onMousedown = (event: MouseEvent) => { - const el = event.target as HTMLElement; - if (props.edit && !el.closest('.vuerd-column-data-type')) { - emitBlur(); - } - }; - - const offERDMousedown = () => { - subscription?.unsubscribe(); - subscription = null; - }; - - const onERDMousedown = () => { - const erd = closestElement('.vuerd-erd', ctx); - if (!erd) return; - - if (props.edit) { - offERDMousedown(); - subscription = fromEvent(erd, 'mousedown').subscribe( - onMousedown - ); - } - }; - - beforeMount(() => { - unmountedGroup.push( - watch(props, propName => { - if (propName !== 'edit') return; - - props.edit ? onERDMousedown() : offERDMousedown(); - }) - ); - - onERDMousedown(); - }); - - unmounted(() => offERDMousedown()); - - return () => html` -
    - - ${props.edit ? dataTypeHintTpl({ onSelectHint }, hintState) : null} -
    - `; -}; - -defineComponent('vuerd-column-data-type', { - observedProps: [ - 'edit', - 'focusState', - 'select', - 'active', - 'width', - 'value', - 'placeholder', - 'tableId', - 'columnId', - ], - shadow: false, - render: ColumnDataType, -}); diff --git a/packages-legacy/vuerd/src/components/editor/table/column/ColumnKey.style.ts b/packages-legacy/vuerd/src/components/editor/table/column/ColumnKey.style.ts deleted file mode 100644 index becfa4a3..00000000 --- a/packages-legacy/vuerd/src/components/editor/table/column/ColumnKey.style.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { SIZE_COLUMN_MARGIN_RIGHT } from '@/core/layout'; -import { css } from '@/core/tagged'; - -export const ColumnKeyStyle = css` - .vuerd-column-key { - display: flex; - vertical-align: middle; - align-items: center; - fill: #fff0; - margin-right: ${SIZE_COLUMN_MARGIN_RIGHT}px; - } - - .vuerd-column-key.pk { - fill: var(--vuerd-color-key-pk); - } - - .vuerd-column-key.fk { - fill: var(--vuerd-color-key-fk); - } - - .vuerd-column-key.pfk { - fill: var(--vuerd-color-key-pfk); - } -`; diff --git a/packages-legacy/vuerd/src/components/editor/table/column/ColumnKey.ts b/packages-legacy/vuerd/src/components/editor/table/column/ColumnKey.ts deleted file mode 100644 index 551d4752..00000000 --- a/packages-legacy/vuerd/src/components/editor/table/column/ColumnKey.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { - defineComponent, - FunctionalComponent, - html, -} from '@vuerd/lit-observable'; -import { classMap } from 'lit-html/directives/class-map'; - -import { ColumnUI } from '@@types/engine/store/table.state'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-column-key': ColumnKeyElement; - } -} - -export interface ColumnKeyProps { - ui: ColumnUI; -} - -export interface ColumnKeyElement extends ColumnKeyProps, HTMLElement {} - -const ColumnKey: FunctionalComponent = ( - props, - ctx -) => { - return () => html` -
    - -
    - `; -}; - -defineComponent('vuerd-column-key', { - observedProps: ['ui'], - shadow: false, - styleMap: { - display: 'flex', - height: '100%', - alignItems: 'center', - }, - render: ColumnKey, -}); diff --git a/packages-legacy/vuerd/src/components/editor/table/column/ColumnNotNull.style.ts b/packages-legacy/vuerd/src/components/editor/table/column/ColumnNotNull.style.ts deleted file mode 100644 index cb88d4c7..00000000 --- a/packages-legacy/vuerd/src/components/editor/table/column/ColumnNotNull.style.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { - SIZE_COLUMN_MARGIN_RIGHT, - SIZE_INPUT_EDIT_HEIGHT, -} from '@/core/layout'; -import { css } from '@/core/tagged'; - -export const ColumnNotNullStyle = css` - .vuerd-column-not-null { - display: flex; - vertical-align: middle; - align-items: center; - border-bottom: solid #fff0 1.5px; - cursor: default; - height: ${SIZE_INPUT_EDIT_HEIGHT}px; - margin-right: ${SIZE_COLUMN_MARGIN_RIGHT}px; - color: var(--vuerd-color-font-active); - } - - .vuerd-column-not-null.focus { - border-bottom: solid var(--vuerd-color-focus) 1.5px; - } -`; diff --git a/packages-legacy/vuerd/src/components/editor/table/column/ColumnNotNull.ts b/packages-legacy/vuerd/src/components/editor/table/column/ColumnNotNull.ts deleted file mode 100644 index 2da1dff3..00000000 --- a/packages-legacy/vuerd/src/components/editor/table/column/ColumnNotNull.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { - defineComponent, - FunctionalComponent, - html, -} from '@vuerd/lit-observable'; -import { classMap } from 'lit-html/directives/class-map'; -import { styleMap } from 'lit-html/directives/style-map'; - -import { SIZE_COLUMN_OPTION_NN } from '@/core/layout'; -import { ColumnOption } from '@@types/engine/store/table.state'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-column-not-null': ColumnNotNullElement; - } -} - -export interface ColumnNotNullProps { - focusState: boolean; - columnOption: ColumnOption; -} - -export interface ColumnNotNullElement extends ColumnNotNullProps, HTMLElement {} - -const ColumnNotNull: FunctionalComponent< - ColumnNotNullProps, - ColumnNotNullElement -> = props => () => html` -
    - ${props.columnOption.notNull ? 'N-N' : 'NULL'} -
    -`; - -defineComponent('vuerd-column-not-null', { - observedProps: [ - { - name: 'focusState', - default: false, - }, - 'columnOption', - ], - shadow: false, - render: ColumnNotNull, -}); diff --git a/packages-legacy/vuerd/src/components/editor/table/column/ColumnUnique.style.ts b/packages-legacy/vuerd/src/components/editor/table/column/ColumnUnique.style.ts deleted file mode 100644 index df760f14..00000000 --- a/packages-legacy/vuerd/src/components/editor/table/column/ColumnUnique.style.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { - SIZE_COLUMN_MARGIN_RIGHT, - SIZE_INPUT_EDIT_HEIGHT, -} from '@/core/layout'; -import { css } from '@/core/tagged'; - -export const ColumnUniqueStyle = css` - .vuerd-column-unique { - display: flex; - vertical-align: middle; - align-items: center; - border-bottom: solid #fff0 1.5px; - cursor: default; - height: ${SIZE_INPUT_EDIT_HEIGHT}px; - margin-right: ${SIZE_COLUMN_MARGIN_RIGHT}px; - color: var(--vuerd-color-font-placeholder); - } - - .vuerd-column-unique.focus { - border-bottom: solid var(--vuerd-color-focus) 1.5px; - } - - .vuerd-column-unique.checked { - color: var(--vuerd-color-font-active); - } -`; diff --git a/packages-legacy/vuerd/src/components/editor/table/column/ColumnUnique.ts b/packages-legacy/vuerd/src/components/editor/table/column/ColumnUnique.ts deleted file mode 100644 index cd478cef..00000000 --- a/packages-legacy/vuerd/src/components/editor/table/column/ColumnUnique.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { - defineComponent, - FunctionalComponent, - html, -} from '@vuerd/lit-observable'; -import { classMap } from 'lit-html/directives/class-map'; -import { styleMap } from 'lit-html/directives/style-map'; - -import { useTooltip } from '@/core/hooks/tooltip.hook'; -import { SIZE_COLUMN_OPTION_UQ } from '@/core/layout'; -import { ColumnOption } from '@@types/engine/store/table.state'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-column-unique': ColumnUniqueElement; - } -} - -export interface ColumnUniqueProps { - focusState: boolean; - columnOption: ColumnOption; -} - -export interface ColumnUniqueElement extends ColumnUniqueProps, HTMLElement {} - -const ColumnUnique: FunctionalComponent< - ColumnUniqueProps, - ColumnUniqueElement -> = (props, ctx) => { - useTooltip(['.vuerd-column-unique'], ctx); - - return () => html` -
    - UQ -
    - `; -}; - -defineComponent('vuerd-column-unique', { - observedProps: [ - { - name: 'focusState', - default: false, - }, - 'columnOption', - ], - shadow: false, - render: ColumnUnique, -}); diff --git a/packages-legacy/vuerd/src/components/editor/virtual-scroll/VirtualScroll.style.ts b/packages-legacy/vuerd/src/components/editor/virtual-scroll/VirtualScroll.style.ts deleted file mode 100644 index 0c2e3a6c..00000000 --- a/packages-legacy/vuerd/src/components/editor/virtual-scroll/VirtualScroll.style.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { css } from '@/core/tagged'; - -export const VirtualScrollStyle = css` - .vuerd-erd-virtual-scroll-horizontal { - position: absolute; - left: 0; - bottom: 0; - width: calc(100% - 8px); - height: 8px; - overflow: hidden; - padding-left: 4px; - } - - .vuerd-erd-virtual-scroll-vertical { - position: absolute; - top: 0; - right: 0; - width: 8px; - height: calc(100% - 8px); - overflow: hidden; - padding-top: 4px; - } - - .ghostThumb { - will-change: transform; - cursor: pointer; - } - - .ghostThumb:hover > div { - background-color: var(--vuerd-color-scrollbar-thumb-active); - } - - .ghostThumb[data-selected] > div { - background-color: var(--vuerd-color-scrollbar-thumb-active); - } - - .verticalThumb { - width: 4px; - height: 100%; - background-color: var(--vuerd-color-scrollbar-thumb); - border-radius: 4px; - } - - .horizontalThumb { - width: 100%; - height: 4px; - background-color: var(--vuerd-color-scrollbar-thumb); - border-radius: 4px; - } -`; diff --git a/packages-legacy/vuerd/src/components/editor/virtual-scroll/VirtualScroll.ts b/packages-legacy/vuerd/src/components/editor/virtual-scroll/VirtualScroll.ts deleted file mode 100644 index c548a346..00000000 --- a/packages-legacy/vuerd/src/components/editor/virtual-scroll/VirtualScroll.ts +++ /dev/null @@ -1,151 +0,0 @@ -import { - defineComponent, - FunctionalComponent, - html, - query, -} from '@vuerd/lit-observable'; -import { styleMap } from 'lit-html/directives/style-map'; - -import { getViewport } from '@/core/helper/dragSelect.helper'; -import { useContext } from '@/core/hooks/context.hook'; -import { moveCanvas } from '@/engine/command/canvas.cmd.helper'; - -import { useVirtualScroll } from './useVirtualScroll'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-virtual-scroll': VirtualScrollElement; - } -} - -export interface VirtualScrollProps {} - -export interface VirtualScrollElement extends VirtualScrollProps, HTMLElement {} - -const VirtualScroll: FunctionalComponent< - VirtualScrollProps, - VirtualScrollElement -> = (props, ctx) => { - const contextRef = useContext(ctx); - const { - state, - getWidthRatio, - getHeightRatio, - onScrollLeftStart, - onScrollTopStart, - } = useVirtualScroll(ctx); - const horizontal = query('.vuerd-erd-virtual-scroll-horizontal'); - const vertical = query('.vuerd-erd-virtual-scroll-vertical'); - - const handleMoveLeft = (event: MouseEvent) => { - const el = event.target as HTMLElement | null; - if (!el) return; - - const canMove = !el.closest('.virtual-scroll-ghost-thumb'); - if (!canMove) return; - - const { store } = contextRef.value; - const viewport = getViewport(store); - const ratio = getWidthRatio(); - const $horizontal = horizontal.value; - const rect = $horizontal.getBoundingClientRect(); - const clientX = event.clientX; - - const x = clientX - rect.x; - const absoluteX = x / ratio; - const scrollLeft = absoluteX - viewport.width / 2; - - store.dispatch(moveCanvas(store.canvasState.scrollTop, -1 * scrollLeft)); - - onScrollLeftStart(event); - }; - - const handleMoveTop = (event: MouseEvent) => { - const el = event.target as HTMLElement | null; - if (!el) return; - - const canMove = !el.closest('.virtual-scroll-ghost-thumb'); - if (!canMove) return; - - const { store } = contextRef.value; - const viewport = getViewport(store); - const ratio = getHeightRatio(); - const $vertical = vertical.value; - const rect = $vertical.getBoundingClientRect(); - const clientY = event.clientY; - - const y = clientY - rect.y; - const absoluteY = y / ratio; - const scrollTop = absoluteY - viewport.height / 2; - - store.dispatch(moveCanvas(-1 * scrollTop, store.canvasState.scrollLeft)); - - onScrollTopStart(event); - }; - - return () => { - const { store } = contextRef.value; - const viewport = getViewport(store); - const { width, height, scrollLeft, scrollTop } = store.canvasState; - - const wRatio = getWidthRatio(); - const hRatio = getHeightRatio(); - const w = viewport.width * wRatio; - const h = viewport.height * hRatio; - const left = -1 * scrollLeft * wRatio; - const top = -1 * scrollTop * hRatio; - - const showHorizontal = viewport.width < width; - const showVertical = viewport.height < height; - - return html` - ${showHorizontal - ? html` -
    -
    -
    -
    -
    - ` - : null} - ${showVertical - ? html` -
    -
    -
    -
    -
    - ` - : null} - `; - }; -}; - -defineComponent('vuerd-virtual-scroll', { - shadow: false, - render: VirtualScroll, -}); diff --git a/packages-legacy/vuerd/src/components/editor/virtual-scroll/useVirtualScroll.ts b/packages-legacy/vuerd/src/components/editor/virtual-scroll/useVirtualScroll.ts deleted file mode 100644 index d08abeed..00000000 --- a/packages-legacy/vuerd/src/components/editor/virtual-scroll/useVirtualScroll.ts +++ /dev/null @@ -1,157 +0,0 @@ -import { observable } from '@vuerd/lit-observable'; - -import { getViewport } from '@/core/helper/dragSelect.helper'; -import { DragMove } from '@/core/helper/event.helper'; -import { useContext } from '@/core/hooks/context.hook'; -import { movementCanvas } from '@/engine/command/canvas.cmd.helper'; - -import { VirtualScrollElement } from './VirtualScroll'; - -export const DirectionName = { - left: 'left', - right: 'right', - top: 'top', - bottom: 'bottom', -} as const; -export type DirectionName = (typeof DirectionName)[keyof typeof DirectionName]; - -export function useVirtualScroll(ctx: VirtualScrollElement) { - const contextRef = useContext(ctx); - const state = observable({ - selected: null as null | 'horizontal' | 'vertical', - }); - - let clientX = 0; - let clientY = 0; - - const getWidthRatio = () => { - const { store } = contextRef.value; - const viewport = getViewport(store); - return viewport.width / store.canvasState.width; - }; - - const getHeightRatio = () => { - const { store } = contextRef.value; - const viewport = getViewport(store); - return viewport.height / store.canvasState.height; - }; - - const absoluteMovement = (movement: number, ratio: number) => { - return -1 * (movement / ratio); - }; - - const getMovementX = ({ movementX, x }: DragMove) => { - const { store } = contextRef.value; - const viewport = getViewport(store); - const scrollLeft = - store.canvasState.scrollLeft + - absoluteMovement(movementX, getWidthRatio()); - const min = viewport.width - store.canvasState.width; - const max = 0; - const direction = movementX < 0 ? DirectionName.left : DirectionName.right; - let change = false; - - switch (direction) { - case DirectionName.left: - if (scrollLeft < max && x < clientX) { - clientX += movementX; - change = true; - } - break; - case DirectionName.right: - if (scrollLeft > min && x > clientX) { - clientX += movementX; - change = true; - } - break; - } - - return change ? movementX : 0; - }; - - const getMovementY = ({ movementY, y }: DragMove) => { - const { store } = contextRef.value; - const scrollTop = - store.canvasState.scrollTop + - absoluteMovement(movementY, getHeightRatio()); - const min = store.editorState.viewport.height - store.canvasState.height; - const max = 0; - const direction = movementY < 0 ? DirectionName.top : DirectionName.bottom; - let change = false; - - switch (direction) { - case DirectionName.top: - if (scrollTop < max && y < clientY) { - clientY += movementY; - change = true; - } - break; - case DirectionName.bottom: - if (scrollTop > min && y > clientY) { - clientY += movementY; - change = true; - } - break; - } - - return change ? movementY : 0; - }; - - const handleScroll = (dragMove: DragMove) => { - const { event } = dragMove; - event.type === 'mousemove' && event.preventDefault(); - const isVertical = state.selected === 'vertical'; - const isHorizontal = state.selected === 'horizontal'; - const movementX = getMovementX(dragMove); - const movementY = getMovementY(dragMove); - const { store } = contextRef.value; - - if (isVertical && movementY !== 0) { - store.dispatch( - movementCanvas(0, absoluteMovement(movementY, getHeightRatio())) - ); - } else if (isHorizontal && movementX !== 0) { - store.dispatch( - movementCanvas(absoluteMovement(movementX, getWidthRatio()), 0) - ); - } - }; - - const onScrollLeftStart = (event: MouseEvent) => { - const { - globalEvent: { drag$ }, - } = contextRef.value; - state.selected = 'horizontal'; - clientX = event.clientX; - - drag$.subscribe({ - next: handleScroll, - complete: () => { - state.selected = null; - }, - }); - }; - - const onScrollTopStart = (event: MouseEvent) => { - const { - globalEvent: { drag$ }, - } = contextRef.value; - state.selected = 'vertical'; - clientY = event.clientY; - - drag$.subscribe({ - next: handleScroll, - complete: () => { - state.selected = null; - }, - }); - }; - - return { - state, - onScrollLeftStart, - onScrollTopStart, - getWidthRatio, - getHeightRatio, - }; -} diff --git a/packages-legacy/vuerd/src/components/index.style.ts b/packages-legacy/vuerd/src/components/index.style.ts deleted file mode 100644 index ee106c13..00000000 --- a/packages-legacy/vuerd/src/components/index.style.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { ColorPicker } from '@/components/css/colorPicker.style'; -import { TippyStyle } from '@/components/css/tippy.style'; - -import { SettingDrawerStyle } from './drawer/SettingDrawer.style'; -import { TablePropertiesDrawerStyle } from './drawer/tablePropertiesDrawer/TablePropertiesDrawer.style'; -import { InputStyle } from './editor/Input.style'; -import { ERDEditorStyle } from './ERDEditor.style'; -import { IconStyle } from './Icon.style'; - -export const IndexStyle = [ - ColorPicker, - TippyStyle, - ERDEditorStyle, - TablePropertiesDrawerStyle, - SettingDrawerStyle, - IconStyle, - InputStyle, -].join(''); diff --git a/packages-legacy/vuerd/src/components/menubar/Menubar.style.ts b/packages-legacy/vuerd/src/components/menubar/Menubar.style.ts deleted file mode 100644 index e56796b3..00000000 --- a/packages-legacy/vuerd/src/components/menubar/Menubar.style.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { SIZE_FONT, SIZE_MENUBAR_HEIGHT } from '@/core/layout'; -import { css } from '@/core/tagged'; - -export const MenubarStyle = css` - .vuerd-menubar { - height: ${SIZE_MENUBAR_HEIGHT}px; - display: flex; - align-items: center; - overflow: hidden; - background-color: var(--vuerd-color-menubar); - box-sizing: border-box; - } - - .vuerd-editor-status { - width: 10px; - height: 10px; - margin-left: 15px; - border-radius: 50%; - transition: - box-shadow 0.4s ease-in-out, - background-color 0.4s ease-in-out; - } - - .vuerd-editor-status.focus { - background-color: var(--vuerd-color-focus); - box-shadow: 0 0 5px var(--vuerd-color-focus); - } - - .vuerd-editor-status.edit { - background-color: var(--vuerd-color-edit); - box-shadow: 0 0 5px var(--vuerd-color-edit); - } - - .vuerd-menubar-input { - margin-left: 15px; - outline: none; - border: none; - opacity: 0.9; - font-size: ${SIZE_FONT}px; - font-family: var(--vuerd-font-family); - color: var(--vuerd-color-font-active); - background-color: var(--vuerd-color-menubar); - } - - .vuerd-menubar-menu { - cursor: pointer; - fill: var(--vuerd-color-font); - margin-left: 10px; - display: flex; - align-items: center; - } - - .vuerd-menubar-menu.active, - .vuerd-menubar-menu:hover { - fill: var(--vuerd-color-font-active); - } - - .vuerd-menubar-menu.undo-redo { - cursor: not-allowed; - fill: var(--vuerd-color-font); - } - - .vuerd-menubar-menu.undo-redo.active { - cursor: pointer; - fill: var(--vuerd-color-font-active); - } - - .vuerd-menubar-menu-vertical { - margin-left: 10px; - } -`; diff --git a/packages-legacy/vuerd/src/components/menubar/Menubar.ts b/packages-legacy/vuerd/src/components/menubar/Menubar.ts deleted file mode 100644 index b1d7f567..00000000 --- a/packages-legacy/vuerd/src/components/menubar/Menubar.ts +++ /dev/null @@ -1,245 +0,0 @@ -import { - beforeMount, - defineComponent, - FunctionalComponent, - html, - watch, -} from '@vuerd/lit-observable'; -import { classMap } from 'lit-html/directives/class-map'; - -import { onNumberOnly } from '@/core/helper/dom.helper'; -import { Bus } from '@/core/helper/eventBus.helper'; -import { useContext } from '@/core/hooks/context.hook'; -import { useMenubarPanels } from '@/core/hooks/menubarPanels.hook'; -import { useTooltip } from '@/core/hooks/tooltip.hook'; -import { useUnmounted } from '@/core/hooks/unmounted.hook'; -import { keymapOptionsToString } from '@/core/keymap'; -import { contextPanelConfig } from '@/core/panel'; -import { - changeDatabaseName, - resizeCanvas, -} from '@/engine/command/canvas.cmd.helper'; -import { zoomCanvas$ } from '@/engine/command/canvas.cmd.helper.gen'; -import { findActive$, findActiveEnd } from '@/engine/command/editor.cmd.helper'; -import { - canvasSizeRange, - zoomDisplayFormat, - zoomLevelRange, -} from '@/engine/store/helper/canvas.helper'; - -import { MenubarStyle } from './Menubar.style'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-menubar': MenubarElement; - } -} - -export interface MenubarProps { - focusState: boolean; -} - -export interface MenubarElement extends MenubarProps, HTMLElement {} - -const Menubar: FunctionalComponent = ( - props, - ctx -) => { - const contextRef = useContext(ctx); - const { panelMenusTpl } = useMenubarPanels(ctx); - const { resetTooltip } = useTooltip( - ['.vuerd-menubar-input', '.vuerd-menubar-menu', '.vuerd-editor-status'], - ctx - ); - const { unmountedGroup } = useUnmounted(); - - const onChangeDatabaseName = (event: Event) => { - const input = event.target as HTMLInputElement; - const { store } = contextRef.value; - store.dispatch(changeDatabaseName(input.value)); - }; - - const onResizeCanvas = (event: Event) => { - const input = event.target as HTMLInputElement; - const size = canvasSizeRange(input.value); - const { store } = contextRef.value; - input.value = size.toString(); - store.dispatch(resizeCanvas(size, size)); - }; - - const onZoomLevel = (event: Event) => { - const input = event.target as HTMLInputElement; - const zoomLevel = zoomLevelRange( - Number(input.value.replace(/[^0-9]/g, '')) / 100 - ); - const { store } = contextRef.value; - input.value = zoomDisplayFormat(zoomLevel); - store.dispatch(zoomCanvas$(store, zoomLevel)); - }; - - const onFind = () => { - const { store, eventBus } = contextRef.value; - const { findActive } = store.editorState; - - if (findActive) { - store.dispatch(findActiveEnd()); - } else { - store.dispatch(findActive$()); - } - - eventBus.emit(Bus.Drawer.close); - }; - - const onUndo = () => { - const { store } = contextRef.value; - store.undo(); - }; - - const onRedo = () => { - const { store } = contextRef.value; - store.redo(); - }; - - const onOpenHelp = () => ctx.dispatchEvent(new CustomEvent('open-help')); - const onOpenSetting = () => - ctx.dispatchEvent(new CustomEvent('open-setting')); - - beforeMount(() => { - const { editorState, canvasState } = contextRef.value.store; - - unmountedGroup.push( - watch(editorState.panels, () => resetTooltip()), - watch(editorState.excludePanel, () => resetTooltip()), - watch(contextPanelConfig.panels, () => resetTooltip()), - watch(contextPanelConfig.exclude, () => resetTooltip()), - watch(canvasState, propName => { - if (propName !== 'canvasType') return; - - resetTooltip(); - }) - ); - }); - - return () => { - const { store, keymap } = contextRef.value; - const { - canvasState: { databaseName, width, zoomLevel, canvasType }, - editorState: { hasUndo, hasRedo, readonly }, - } = store; - - return html` -
    -
    - - - - ${panelMenusTpl()} -
    -
    - -
    -
    - -
    -
    - ${canvasType === 'ERD' - ? html` -
    - -
    -
    - -
    -
    - -
    - ` - : null} -
    - `; - }; -}; - -defineComponent('vuerd-menubar', { - observedProps: [ - { - name: 'focusState', - type: Boolean, - default: false, - }, - ], - style: MenubarStyle, - render: Menubar, -}); diff --git a/packages-legacy/vuerd/src/core/AutomaticTablePlacement.ts b/packages-legacy/vuerd/src/core/AutomaticTablePlacement.ts deleted file mode 100644 index b5c8a8a1..00000000 --- a/packages-legacy/vuerd/src/core/AutomaticTablePlacement.ts +++ /dev/null @@ -1,188 +0,0 @@ -import { html } from '@vuerd/lit-observable'; -import { - forceCollide, - forceLink, - forceManyBody, - forceSimulation, - forceX, - forceY, -} from 'd3'; - -import { createBalanceRange, noop } from '@/core/helper'; -import { Bus } from '@/core/helper/eventBus.helper'; -import { SIZE_CANVAS_ZOOM_MIN } from '@/core/layout'; -import { readonlyEditor$ } from '@/engine/command/editor.cmd.helper.gen'; -import { relationshipSort } from '@/engine/store/helper/relationship.helper'; -import { IERDEditorContext } from '@/internal-types/ERDEditorContext'; -import { IStore } from '@/internal-types/store'; -import { Relationship } from '@@types/engine/store/relationship.state'; -import { Table } from '@@types/engine/store/table.state'; - -interface Node { - id: string; - r: number; - x: number; - y: number; - ref: Table; -} - -interface Link { - source: string; - target: string; -} - -const zoomBalanceRange = createBalanceRange(SIZE_CANVAS_ZOOM_MIN, 0.7); - -function isLink( - links: Link[], - startTableId: string, - endTableId: string -): boolean { - let result = true; - for (const link of links) { - if (link.source === startTableId && link.target === endTableId) { - result = false; - break; - } - } - return result; -} - -function createNodes( - tables: Table[], - relationships: Relationship[], - x: number, - y: number -): [Array, Array] { - const nodes: Node[] = []; - const links: Link[] = []; - - tables.forEach(table => { - nodes.push({ - id: table.id, - r: (table.width() + table.height()) / 4, - x, - y, - ref: table, - }); - }); - - relationships.forEach(relationship => { - const { start, end } = relationship; - if ( - start.tableId !== end.tableId && - isLink(links, start.tableId, end.tableId) - ) { - links.push({ - source: start.tableId, - target: end.tableId, - }); - } - }); - - return [nodes, links]; -} - -function holdEditor(store: IStore) { - const { canvasState, editorState } = store; - const prevState = { - zoomLevel: canvasState.zoomLevel, - scrollLeft: canvasState.scrollLeft, - scrollTop: canvasState.scrollTop, - }; - - canvasState.zoomLevel = zoomBalanceRange( - editorState.viewport.width / canvasState.width - ); - canvasState.scrollLeft = - (canvasState.width / 2 - editorState.viewport.width / 2) * -1; - canvasState.scrollTop = - (canvasState.height / 2 - editorState.viewport.height / 2) * -1; - // TODO: command - editorState.erdUiEventNone = true; - store.dispatchSync(readonlyEditor$(true)); - - return prevState; -} - -function releaseEditor( - { eventBus, store }: IERDEditorContext, - prevState: ReturnType -) { - const { editorState, canvasState } = store; - eventBus.emit(Bus.BalanceRange.move); - store.dispatchSync(readonlyEditor$(false)); - editorState.erdUiEventNone = false; - canvasState.zoomLevel = prevState.zoomLevel; - // canvasState.scrollLeft = prevState.scrollLeft; - // canvasState.scrollTop = prevState.scrollTop; - eventBus.emit(Bus.Editor.change); -} - -export function runAutomaticTablePlacement(context: IERDEditorContext) { - const { eventBus, store } = context; - const { - tableState: { tables }, - relationshipState: { relationships }, - canvasState, - } = store; - const centerX = canvasState.width / 2; - const centerY = canvasState.height / 2; - - if (!tables.length) { - eventBus.emit(Bus.ToastBar.add, { - bodyTpl: html`Not found tables`, - }); - return; - } - - let resolveToastBar = noop; - let rejectToastBar = noop; - - const close = new Promise((resolve, reject) => { - resolveToastBar = resolve; - rejectToastBar = reject; - }); - - try { - const [nodes, links] = createNodes(tables, relationships, centerX, centerY); - const prevState = holdEditor(store); - const simulation = forceSimulation(nodes) - .force( - 'link', - forceLink(links).id((d: any) => d.id) - ) - .force( - 'collide', - forceCollide().radius((d: any) => 100 + d.r) - ) - .force('charge', forceManyBody()) - .force('x', forceX(centerX)) - .force('y', forceY(centerY)) - .on('tick', () => { - nodes.forEach(({ r, x, y, ref }) => { - ref.ui.top = y - r; - ref.ui.left = x - r; - }); - relationshipSort(tables, relationships); - }); - - const onStop = () => { - simulation.stop(); - releaseEditor(context, prevState); - resolveToastBar(); - }; - - eventBus.emit(Bus.ToastBar.add, { - bodyTpl: html` - Automatic Table Placement... -
    Stop
    - `, - close, - }); - - simulation.on('end', onStop); - } catch (e) { - rejectToastBar(); - } -} diff --git a/packages-legacy/vuerd/src/core/ERDEditorContext.ts b/packages-legacy/vuerd/src/core/ERDEditorContext.ts deleted file mode 100644 index 11ff03cb..00000000 --- a/packages-legacy/vuerd/src/core/ERDEditorContext.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { observable } from '@vuerd/lit-observable'; -import * as R from 'ramda'; - -import { noop } from '@/core/helper'; -import { createHelper } from '@/core/helper/editor.helper'; -import { createCommand } from '@/engine/command'; -import { createStore } from '@/engine/store'; -import { IERDEditorContext } from '@/internal-types/ERDEditorContext'; -import { ERDEditorContext } from '@@types/core/ERDEditorContext'; - -import { createGlobalEventObservable } from './helper/event.helper'; -import { createEventBus } from './helper/eventBus.helper'; -import { createKeymap } from './keymap'; -import { createTheme } from './theme'; - -export function createdERDEditorContext(): IERDEditorContext { - const helper = createHelper(); - - return { - theme: observable(createTheme()), - keymap: observable(createKeymap()), - globalEvent: createGlobalEventObservable(), - eventBus: createEventBus(), - store: createStore(helper), - command: createCommand(), - helper, - snapshots: [], - showPrompt: noop, - showAlert: noop, - }; -} - -export const omitERDEditorContext = R.pipe< - IERDEditorContext, - any, - any, - any, - any, - any, - any, - any, - any, - any, - ERDEditorContext ->( - R.omit(['globalEvent', 'eventBus', 'snapshots', 'showPrompt', 'showAlert']), - R.dissocPath(['store', 'history$']), - R.dissocPath(['store', 'change$']), - R.dissocPath(['store', 'destroy']), - R.dissocPath(['helper', 'keydown$']), - R.dissocPath(['helper', 'setGhostText']), - R.dissocPath(['helper', 'setGhostInput']), - R.dissocPath(['helper', 'focus']), - R.dissocPath(['helper', 'blur']), - R.dissocPath(['helper', 'destroy']) -); diff --git a/packages-legacy/vuerd/src/core/config/highlight.config.ts b/packages-legacy/vuerd/src/core/config/highlight.config.ts deleted file mode 100644 index 0b666d4d..00000000 --- a/packages-legacy/vuerd/src/core/config/highlight.config.ts +++ /dev/null @@ -1,26 +0,0 @@ -// @ts-ignore -import hljs from 'highlight.js/lib/core.js'; -// @ts-ignore -import csharp from 'highlight.js/lib/languages/csharp.js'; -// @ts-ignore -import java from 'highlight.js/lib/languages/java.js'; -// @ts-ignore -import kotlin from 'highlight.js/lib/languages/kotlin.js'; -// @ts-ignore -import scala from 'highlight.js/lib/languages/scala.js'; -// @ts-ignore -import sql from 'highlight.js/lib/languages/sql.js'; -// @ts-ignore -import typescript from 'highlight.js/lib/languages/typescript.js'; -// @ts-ignore -import graphql from 'highlightjs-graphql'; - -hljs.registerLanguage('sql', sql); -hljs.registerLanguage('csharp', csharp); -hljs.registerLanguage('java', java); -hljs.registerLanguage('kotlin', kotlin); -hljs.registerLanguage('typescript', typescript); -hljs.registerLanguage('scala', scala); -graphql(hljs); - -export { hljs }; diff --git a/packages-legacy/vuerd/src/core/config/index.ts b/packages-legacy/vuerd/src/core/config/index.ts deleted file mode 100644 index a9a12b51..00000000 --- a/packages-legacy/vuerd/src/core/config/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import './tween.config'; -import './highlight.config'; diff --git a/packages-legacy/vuerd/src/core/config/tween.config.ts b/packages-legacy/vuerd/src/core/config/tween.config.ts deleted file mode 100644 index 998ffa6c..00000000 --- a/packages-legacy/vuerd/src/core/config/tween.config.ts +++ /dev/null @@ -1,8 +0,0 @@ -import TWEEN from '@tweenjs/tween.js'; - -function animate(time?: number) { - requestAnimationFrame(animate); - TWEEN.update(time); -} - -requestAnimationFrame(animate); diff --git a/packages-legacy/vuerd/src/core/contextmenu/bracketType.menu.ts b/packages-legacy/vuerd/src/core/contextmenu/bracketType.menu.ts deleted file mode 100644 index ce533995..00000000 --- a/packages-legacy/vuerd/src/core/contextmenu/bracketType.menu.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { changeBracketType } from '@/engine/command/canvas.cmd.helper'; -import { Menu, MenuOptions } from '@@types/core/contextmenu'; -import { ERDEditorContext } from '@@types/core/ERDEditorContext'; -import { BracketType } from '@@types/engine/store/canvas.state'; - -const defaultOptions: MenuOptions = { - nameWidth: 85, - keymapWidth: 0, - close: false, -}; - -interface BracketTypeMenu { - name: string; - bracketType: BracketType; -} - -const bracketTypeMenus: BracketTypeMenu[] = [ - { - name: 'SingleQuote', - bracketType: 'singleQuote', - }, - { - name: 'DoubleQuote', - bracketType: 'doubleQuote', - }, - { - name: 'Backtick', - bracketType: 'backtick', - }, - { - name: 'None', - bracketType: 'none', - }, -]; - -export const createBracketTypeMenus = ({ store }: ERDEditorContext): Menu[] => - bracketTypeMenus.map(menu => ({ - icon: - store.canvasState.bracketType === menu.bracketType - ? { - prefix: 'fas', - name: 'check', - } - : undefined, - name: menu.name, - execute: () => store.dispatch(changeBracketType(menu.bracketType)), - options: { - ...defaultOptions, - }, - })); diff --git a/packages-legacy/vuerd/src/core/contextmenu/columnNameCase.menu.ts b/packages-legacy/vuerd/src/core/contextmenu/columnNameCase.menu.ts deleted file mode 100644 index 5567e75b..00000000 --- a/packages-legacy/vuerd/src/core/contextmenu/columnNameCase.menu.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { changeColumnCase } from '@/engine/command/canvas.cmd.helper'; -import { Menu, MenuOptions } from '@@types/core/contextmenu'; -import { ERDEditorContext } from '@@types/core/ERDEditorContext'; -import { NameCase } from '@@types/engine/store/canvas.state'; - -const defaultOptions: MenuOptions = { - nameWidth: 50, - keymapWidth: 0, - close: false, -}; - -interface NameCaseMenu { - name: string; - nameCase: NameCase; -} - -const nameCaseMenus: NameCaseMenu[] = [ - { - name: 'Pascal', - nameCase: 'pascalCase', - }, - { - name: 'Camel', - nameCase: 'camelCase', - }, - { - name: 'Snake', - nameCase: 'snakeCase', - }, - { - name: 'None', - nameCase: 'none', - }, -]; - -export const createColumnNameCaseMenus = ({ - store, -}: ERDEditorContext): Menu[] => - nameCaseMenus.map(menu => ({ - icon: - store.canvasState.columnCase === menu.nameCase - ? { - prefix: 'fas', - name: 'check', - } - : undefined, - name: menu.name, - execute: () => store.dispatch(changeColumnCase(menu.nameCase)), - options: { - ...defaultOptions, - }, - })); diff --git a/packages-legacy/vuerd/src/core/contextmenu/database.menu.ts b/packages-legacy/vuerd/src/core/contextmenu/database.menu.ts deleted file mode 100644 index 743ddd6e..00000000 --- a/packages-legacy/vuerd/src/core/contextmenu/database.menu.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { changeDatabase } from '@/engine/command/canvas.cmd.helper'; -import { databaseList } from '@/engine/store/canvas.state'; -import { Menu, MenuOptions } from '@@types/core/contextmenu'; -import { ERDEditorContext } from '@@types/core/ERDEditorContext'; - -const defaultOptions: MenuOptions = { - nameWidth: 80, - keymapWidth: 0, - close: false, -}; - -export const createDatabaseMenus = ({ store }: ERDEditorContext): Menu[] => - databaseList.map(databaseType => ({ - icon: - store.canvasState.database === databaseType - ? { - prefix: 'fas', - name: 'check', - } - : undefined, - name: databaseType, - execute: () => store.dispatch(changeDatabase(databaseType)), - options: { - ...defaultOptions, - }, - })); diff --git a/packages-legacy/vuerd/src/core/contextmenu/drawRelationship.menu.ts b/packages-legacy/vuerd/src/core/contextmenu/drawRelationship.menu.ts deleted file mode 100644 index ea14d35f..00000000 --- a/packages-legacy/vuerd/src/core/contextmenu/drawRelationship.menu.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { getBase64Icon } from '@/core/icon'; -import { keymapOptionsToString, keymapOptionToString } from '@/core/keymap'; -import { drawStartRelationship$ } from '@/engine/command/editor.cmd.helper'; -import { Menu, MenuOptions } from '@@types/core/contextmenu'; -import { ERDEditorContext } from '@@types/core/ERDEditorContext'; -import { RelationshipKeymapName } from '@@types/core/keymap'; -import { RelationshipType } from '@@types/engine/store/relationship.state'; - -interface RelationshipMenu { - name: string; - relationshipType: RelationshipType; - keymapName: RelationshipKeymapName; -} - -export const relationshipMenus: RelationshipMenu[] = [ - { - name: 'Zero One', - relationshipType: 'ZeroOne', - keymapName: 'relationshipZeroOne', - }, - { - name: 'Zero N', - relationshipType: 'ZeroN', - keymapName: 'relationshipZeroN', - }, - { - name: 'One Only', - relationshipType: 'OneOnly', - keymapName: 'relationshipOneOnly', - }, - { - name: 'One N', - relationshipType: 'OneN', - keymapName: 'relationshipOneN', - }, -]; - -export const defaultOptions: MenuOptions = { - nameWidth: 75, - keymapWidth: 85, -}; - -export const createDrawRelationshipMenus = ({ - keymap, - store, -}: ERDEditorContext): Menu[] => - relationshipMenus.map(relationshipMenu => ({ - iconBase64: getBase64Icon(relationshipMenu.relationshipType), - name: relationshipMenu.name, - keymap: keymapOptionToString(keymap[relationshipMenu.keymapName][0]), - keymapTooltip: keymapOptionsToString(keymap[relationshipMenu.keymapName]), - execute: () => - store.dispatch( - drawStartRelationship$(store, relationshipMenu.relationshipType) - ), - options: { - ...defaultOptions, - }, - })); diff --git a/packages-legacy/vuerd/src/core/contextmenu/erd.menu.ts b/packages-legacy/vuerd/src/core/contextmenu/erd.menu.ts deleted file mode 100644 index f1749edd..00000000 --- a/packages-legacy/vuerd/src/core/contextmenu/erd.menu.ts +++ /dev/null @@ -1,97 +0,0 @@ -import { runAutomaticTablePlacement } from '@/core/AutomaticTablePlacement'; -import { keymapOptionsToString, keymapOptionToString } from '@/core/keymap'; -import { addMemo$ } from '@/engine/command/memo.cmd.helper'; -import { addTable$ } from '@/engine/command/table.cmd.helper'; -import { IERDEditorContext } from '@/internal-types/ERDEditorContext'; -import { Menu, MenuOptions } from '@@types/core/contextmenu'; - -import { createDatabaseMenus } from './database.menu'; -import { createDrawRelationshipMenus } from './drawRelationship.menu'; -import { createExportMenus } from './export.menu'; -import { createImportMenus } from './import.menu'; -import { createShowMenus } from './show.menu'; - -const defaultOptions: MenuOptions = { - nameWidth: 165, - keymapWidth: 50, -}; - -export function createERDMenus( - context: IERDEditorContext, - canvas: HTMLElement -): Menu[] { - const { store, keymap, eventBus } = context; - return [ - { - icon: { - prefix: 'fas', - name: 'table', - }, - name: 'New Table', - keymap: keymapOptionToString(keymap.addTable[0]), - keymapTooltip: keymapOptionsToString(keymap.addTable), - execute: () => store.dispatch(addTable$(store)), - }, - { - icon: { - prefix: 'fas', - name: 'sticky-note', - }, - name: 'New Memo', - keymap: keymapOptionToString(keymap.addMemo[0]), - keymapTooltip: keymapOptionsToString(keymap.addMemo), - execute: () => store.dispatch(addMemo$(store)), - }, - { - icon: { - prefix: 'mdi', - name: 'vector-line', - size: 18, - }, - name: 'Relationship', - children: createDrawRelationshipMenus(context), - }, - { - icon: { - prefix: 'fas', - name: 'eye', - }, - name: 'View Option', - children: createShowMenus(context), - }, - { - icon: { - prefix: 'mdi', - name: 'database', - size: 18, - }, - name: 'Database', - children: createDatabaseMenus(context), - }, - { - icon: { - prefix: 'fas', - name: 'file-import', - }, - name: 'Import', - children: createImportMenus(context), - }, - { - icon: { - prefix: 'fas', - name: 'file-export', - }, - name: 'Export', - children: createExportMenus(context, canvas), - }, - { - icon: { - prefix: 'mdi', - name: 'atom', - size: 18, - }, - name: 'Automatic Table Placement', - execute: () => runAutomaticTablePlacement(context), - }, - ].map(menu => ({ ...menu, options: { ...defaultOptions } })); -} diff --git a/packages-legacy/vuerd/src/core/contextmenu/export.menu.ts b/packages-legacy/vuerd/src/core/contextmenu/export.menu.ts deleted file mode 100644 index 63ca6198..00000000 --- a/packages-legacy/vuerd/src/core/contextmenu/export.menu.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { - createJsonStringify, - createStoreCopy, - exportJSON, - exportPNG, - exportSQLDDL, -} from '@/core/file'; -import { createDDL } from '@/core/sql/ddl'; -import { moveCanvas } from '@/engine/command/canvas.cmd.helper'; -import { IERDEditorContext } from '@/internal-types/ERDEditorContext'; -import { Menu, MenuOptions } from '@@types/core/contextmenu'; -import { Snapshot } from '@@types/engine/store/snapshot'; - -const defaultOptions: MenuOptions = { - nameWidth: 60, - keymapWidth: 0, -}; - -export const getLatestSnapshot = (context: IERDEditorContext): Snapshot => { - if (context.snapshots.length) { - return context.snapshots[context.snapshots.length - 1]; - } else { - const snapshot: Snapshot = { - data: createStoreCopy(context.store), - metadata: { type: 'user', filename: '' }, - }; - snapshot.data.relationship.relationships = []; - snapshot.data.table.indexes = []; - snapshot.data.table.tables = []; - - return snapshot; - } -}; - -export const createExportMenus = ( - context: IERDEditorContext, - canvas: HTMLElement -): Menu[] => { - const { store, snapshots, showPrompt, eventBus } = context; - return [ - { - icon: { - prefix: 'mdi', - name: 'code-json', - size: 18, - }, - name: 'json', - execute: () => - exportJSON( - createJsonStringify(store, 2), - store.canvasState.databaseName - ), - }, - { - icon: { - prefix: 'mdi', - name: 'database-export', - size: 18, - }, - name: 'SQL DDL', - execute: () => - exportSQLDDL(createDDL(store), store.canvasState.databaseName), - }, - { - icon: { - prefix: 'fas', - name: 'file-image', - }, - name: 'png', - execute: () => { - exportPNG(canvas, store.canvasState.databaseName); - }, - }, - ].map(menu => ({ ...menu, options: { ...defaultOptions } })); -}; diff --git a/packages-legacy/vuerd/src/core/contextmenu/generatorCode.menu.ts b/packages-legacy/vuerd/src/core/contextmenu/generatorCode.menu.ts deleted file mode 100644 index c579ab46..00000000 --- a/packages-legacy/vuerd/src/core/contextmenu/generatorCode.menu.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { Menu, MenuOptions } from '@@types/core/contextmenu'; -import { ERDEditorContext } from '@@types/core/ERDEditorContext'; - -import { createColumnNameCaseMenus } from './columnNameCase.menu'; -import { createHighlightThemeMenus } from './highlightTheme.menu'; -import { createLanguageMenus } from './language.menu'; -import { createTableNameCaseMenus } from './tableNameCase.menu'; - -const defaultOptions: MenuOptions = { - nameWidth: 120, - keymapWidth: 0, -}; - -export const createGeneratorCodeMenus = (context: ERDEditorContext): Menu[] => - [ - { - icon: { - prefix: 'fas', - name: 'code', - }, - name: 'Language', - children: createLanguageMenus(context), - }, - { - icon: { - prefix: 'mdi', - name: 'format-letter-case', - size: 18, - }, - name: 'Table Name Case', - children: createTableNameCaseMenus(context), - }, - { - icon: { - prefix: 'mdi', - name: 'format-letter-case', - size: 18, - }, - name: 'Column Name Case', - children: createColumnNameCaseMenus(context), - }, - { - icon: { - prefix: 'mdi', - name: 'palette', - size: 18, - }, - name: 'Highlight Theme', - children: createHighlightThemeMenus(context), - }, - ].map(menu => ({ ...menu, options: { ...defaultOptions } })); diff --git a/packages-legacy/vuerd/src/core/contextmenu/highlightTheme.menu.ts b/packages-legacy/vuerd/src/core/contextmenu/highlightTheme.menu.ts deleted file mode 100644 index 86e79587..00000000 --- a/packages-legacy/vuerd/src/core/contextmenu/highlightTheme.menu.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { changeHighlightTheme } from '@/engine/command/canvas.cmd.helper'; -import { highlightThemes } from '@/engine/store/canvas.state'; -import { Menu, MenuOptions } from '@@types/core/contextmenu'; -import { ERDEditorContext } from '@@types/core/ERDEditorContext'; - -const defaultOptions: MenuOptions = { - nameWidth: 105, - keymapWidth: 0, - close: false, -}; - -export const createHighlightThemeMenus = ({ - store, -}: ERDEditorContext): Menu[] => - highlightThemes.map(highlightTheme => ({ - icon: - store.canvasState.highlightTheme === highlightTheme - ? { - prefix: 'fas', - name: 'check', - } - : undefined, - name: highlightTheme, - execute: () => store.dispatch(changeHighlightTheme(highlightTheme)), - options: { - ...defaultOptions, - }, - })); diff --git a/packages-legacy/vuerd/src/core/contextmenu/import.menu.ts b/packages-legacy/vuerd/src/core/contextmenu/import.menu.ts deleted file mode 100644 index d6c95da5..00000000 --- a/packages-legacy/vuerd/src/core/contextmenu/import.menu.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { importJSON, importSQLDDL } from '@/core/file'; -import { IERDEditorContext } from '@/internal-types/ERDEditorContext'; -import { Menu, MenuOptions } from '@@types/core/contextmenu'; - -const defaultOptions: MenuOptions = { - nameWidth: 60, - keymapWidth: 0, -}; - -export const createImportMenus = (context: IERDEditorContext): Menu[] => - [ - { - icon: { - prefix: 'mdi', - name: 'code-json', - size: 18, - }, - name: 'json', - execute: () => importJSON(context), - }, - { - icon: { - prefix: 'mdi', - name: 'database-import', - size: 18, - }, - name: 'SQL DDL', - execute: () => importSQLDDL(context), - }, - ].map(menu => ({ ...menu, options: { ...defaultOptions } })); diff --git a/packages-legacy/vuerd/src/core/contextmenu/language.menu.ts b/packages-legacy/vuerd/src/core/contextmenu/language.menu.ts deleted file mode 100644 index c53a6452..00000000 --- a/packages-legacy/vuerd/src/core/contextmenu/language.menu.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { changeLanguage } from '@/engine/command/canvas.cmd.helper'; -import { languageList } from '@/engine/store/canvas.state'; -import { Menu, MenuOptions } from '@@types/core/contextmenu'; -import { ERDEditorContext } from '@@types/core/ERDEditorContext'; - -const defaultOptions: MenuOptions = { - nameWidth: 70, - keymapWidth: 0, - close: false, -}; - -export const createLanguageMenus = ({ store }: ERDEditorContext): Menu[] => - languageList.map(language => ({ - icon: - store.canvasState.language === language - ? { - prefix: 'fas', - name: 'check', - } - : undefined, - name: language, - execute: () => store.dispatch(changeLanguage(language)), - options: { - ...defaultOptions, - }, - })); diff --git a/packages-legacy/vuerd/src/core/contextmenu/relationship.menu.ts b/packages-legacy/vuerd/src/core/contextmenu/relationship.menu.ts deleted file mode 100644 index e26d704a..00000000 --- a/packages-legacy/vuerd/src/core/contextmenu/relationship.menu.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { removeRelationship } from '@/engine/command/relationship.cmd.helper'; -import { Menu, MenuOptions } from '@@types/core/contextmenu'; -import { ERDEditorContext } from '@@types/core/ERDEditorContext'; -import { Relationship } from '@@types/engine/store/relationship.state'; - -import { createSingleRelationship } from './singleRelationship.menu'; - -const defaultOptions: MenuOptions = { - nameWidth: 110, - keymapWidth: 0, -}; - -export function createRelationshipMenus( - context: ERDEditorContext, - relationship: Relationship -): Menu[] { - const { store } = context; - return [ - { - icon: { - prefix: 'mdi', - name: 'vector-line', - size: 18, - }, - name: 'Relationship Type', - children: createSingleRelationship(context, relationship), - }, - { - name: 'Delete', - execute: () => store.dispatch(removeRelationship([relationship.id])), - }, - ].map(menu => ({ ...menu, options: { ...defaultOptions } })); -} diff --git a/packages-legacy/vuerd/src/core/contextmenu/show.menu.ts b/packages-legacy/vuerd/src/core/contextmenu/show.menu.ts deleted file mode 100644 index f9517e4a..00000000 --- a/packages-legacy/vuerd/src/core/contextmenu/show.menu.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { changeCanvasShow } from '@/engine/command/canvas.cmd.helper'; -import { Menu, MenuOptions } from '@@types/core/contextmenu'; -import { ERDEditorContext } from '@@types/core/ERDEditorContext'; -import { ShowKey } from '@@types/engine/store/canvas.state'; - -interface ShowMenu { - name: string; - showKey: ShowKey; -} - -const showMenus: ShowMenu[] = [ - { - name: 'Table Comment', - showKey: 'tableComment', - }, - { - name: 'Column Comment', - showKey: 'columnComment', - }, - { - name: 'DataType', - showKey: 'columnDataType', - }, - { - name: 'Default', - showKey: 'columnDefault', - }, - { - name: 'Not Null', - showKey: 'columnNotNull', - }, - { - name: 'Unique', - showKey: 'columnUnique', - }, - { - name: 'Auto Increment', - showKey: 'columnAutoIncrement', - }, - { - name: 'Relationship', - showKey: 'relationship', - }, -]; - -const defaultOptions: MenuOptions = { - nameWidth: 115, - keymapWidth: 0, - close: false, -}; - -export const createShowMenus = ({ store }: ERDEditorContext): Menu[] => - showMenus.map(showMenu => ({ - icon: store.canvasState.show[showMenu.showKey] - ? { - prefix: 'fas', - name: 'check', - } - : undefined, - name: showMenu.name, - execute: () => store.dispatch(changeCanvasShow(store, showMenu.showKey)), - options: { - ...defaultOptions, - }, - })); diff --git a/packages-legacy/vuerd/src/core/contextmenu/singleRelationship.menu.ts b/packages-legacy/vuerd/src/core/contextmenu/singleRelationship.menu.ts deleted file mode 100644 index e8a31804..00000000 --- a/packages-legacy/vuerd/src/core/contextmenu/singleRelationship.menu.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { changeRelationshipType } from '@/engine/command/relationship.cmd.helper'; -import { Menu, MenuOptions } from '@@types/core/contextmenu'; -import { ERDEditorContext } from '@@types/core/ERDEditorContext'; -import { Relationship } from '@@types/engine/store/relationship.state'; - -import { relationshipMenus } from './drawRelationship.menu'; - -const defaultOptions: MenuOptions = { - nameWidth: 75, - keymapWidth: 0, - close: false, -}; - -export const createSingleRelationship = ( - { store }: ERDEditorContext, - relationship: Relationship -): Menu[] => - relationshipMenus.map(relationshipMenu => ({ - icon: - relationship.relationshipType === relationshipMenu.relationshipType - ? { - prefix: 'fas', - name: 'check', - } - : undefined, - name: relationshipMenu.name, - execute: () => - store.dispatch( - changeRelationshipType( - relationship.id, - relationshipMenu.relationshipType - ) - ), - options: { - ...defaultOptions, - }, - })); diff --git a/packages-legacy/vuerd/src/core/contextmenu/sql-ddl.menu.ts b/packages-legacy/vuerd/src/core/contextmenu/sql-ddl.menu.ts deleted file mode 100644 index 3d8eb549..00000000 --- a/packages-legacy/vuerd/src/core/contextmenu/sql-ddl.menu.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { Menu, MenuOptions } from '@@types/core/contextmenu'; -import { ERDEditorContext } from '@@types/core/ERDEditorContext'; - -import { createBracketTypeMenus } from './bracketType.menu'; -import { createDatabaseMenus } from './database.menu'; -import { createHighlightThemeMenus } from './highlightTheme.menu'; - -const defaultOptions: MenuOptions = { - nameWidth: 100, - keymapWidth: 0, -}; - -export const createSQLDDLMenus = (context: ERDEditorContext): Menu[] => - [ - { - icon: { - prefix: 'mdi', - name: 'database', - size: 18, - }, - name: 'Database', - children: createDatabaseMenus(context), - }, - { - icon: { - prefix: 'mdi', - name: 'code-brackets', - size: 18, - }, - name: 'Bracket', - children: createBracketTypeMenus(context), - }, - { - icon: { - prefix: 'mdi', - name: 'palette', - size: 18, - }, - name: 'Highlight Theme', - children: createHighlightThemeMenus(context), - }, - ].map(menu => ({ ...menu, options: { ...defaultOptions } })); diff --git a/packages-legacy/vuerd/src/core/contextmenu/table.menu.ts b/packages-legacy/vuerd/src/core/contextmenu/table.menu.ts deleted file mode 100644 index cc2e39e7..00000000 --- a/packages-legacy/vuerd/src/core/contextmenu/table.menu.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { Bus } from '@/core/helper/eventBus.helper'; -import { keymapOptionsToString, keymapOptionToString } from '@/core/keymap'; -import { changeColumnPrimaryKey$ } from '@/engine/command/column.cmd.helper'; -import { addTableDefault$ } from '@/engine/command/table.cmd.helper'; -import { IERDEditorContext } from '@/internal-types/ERDEditorContext'; -import { Menu, MenuOptions } from '@@types/core/contextmenu'; - -const defaultOptions: MenuOptions = { - nameWidth: 105, - keymapWidth: 100, -}; - -export const createTableMenus = ( - { keymap, eventBus, store, helper }: IERDEditorContext, - tableId: string -): Menu[] => - [ - { - icon: { - prefix: 'fas', - name: 'key', - }, - name: 'Primary Key', - keymap: keymapOptionToString(keymap.primaryKey[0]), - keymapTooltip: keymapOptionsToString(keymap.primaryKey), - execute() { - const { editorState } = store; - - if ( - editorState.focusTable && - !editorState.focusTable.edit && - editorState.focusTable.columnId - ) { - store.dispatch( - changeColumnPrimaryKey$( - store, - editorState.focusTable.table.id, - editorState.focusTable.columnId - ) - ); - } - }, - }, - { - icon: { - prefix: 'mdi', - name: 'table-cog', - size: 18, - }, - name: 'Table Properties', - keymap: keymapOptionToString(keymap.tableProperties[0]), - keymapTooltip: keymapOptionsToString(keymap.tableProperties), - execute: () => - eventBus.emit(Bus.Drawer.openTableProperties, { - tableId, - }), - }, - { - icon: { - prefix: 'fas', - name: 'palette', - }, - name: 'Color', - execute: () => eventBus.emit(Bus.ColorPicker.open, tableId), - }, - ].map(menu => ({ ...menu, options: { ...defaultOptions } })); diff --git a/packages-legacy/vuerd/src/core/contextmenu/tableNameCase.menu.ts b/packages-legacy/vuerd/src/core/contextmenu/tableNameCase.menu.ts deleted file mode 100644 index 24868056..00000000 --- a/packages-legacy/vuerd/src/core/contextmenu/tableNameCase.menu.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { changeTableCase } from '@/engine/command/canvas.cmd.helper'; -import { Menu, MenuOptions } from '@@types/core/contextmenu'; -import { ERDEditorContext } from '@@types/core/ERDEditorContext'; -import { NameCase } from '@@types/engine/store/canvas.state'; - -const defaultOptions: MenuOptions = { - nameWidth: 50, - keymapWidth: 0, - close: false, -}; - -interface NameCaseMenu { - name: string; - nameCase: NameCase; -} - -const nameCaseMenus: NameCaseMenu[] = [ - { - name: 'Pascal', - nameCase: 'pascalCase', - }, - { - name: 'Camel', - nameCase: 'camelCase', - }, - { - name: 'Snake', - nameCase: 'snakeCase', - }, - { - name: 'None', - nameCase: 'none', - }, -]; - -export const createTableNameCaseMenus = ({ store }: ERDEditorContext): Menu[] => - nameCaseMenus.map(menu => ({ - icon: - store.canvasState.tableCase === menu.nameCase - ? { - prefix: 'fas', - name: 'check', - } - : undefined, - name: menu.name, - execute: () => store.dispatch(changeTableCase(menu.nameCase)), - options: { - ...defaultOptions, - }, - })); diff --git a/packages-legacy/vuerd/src/core/extension.ts b/packages-legacy/vuerd/src/core/extension.ts deleted file mode 100644 index aded7940..00000000 --- a/packages-legacy/vuerd/src/core/extension.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { ExtensionConfig } from '@@types/core/extension'; - -import { addPanel, setExcludePanel } from './panel'; - -export function extension(config: Partial) { - config.panels && addPanel(...config.panels); - config.excludePanel && setExcludePanel(config.excludePanel); -} diff --git a/packages-legacy/vuerd/src/core/file.ts b/packages-legacy/vuerd/src/core/file.ts deleted file mode 100644 index d30cc31b..00000000 --- a/packages-legacy/vuerd/src/core/file.ts +++ /dev/null @@ -1,200 +0,0 @@ -import { html } from '@vuerd/lit-observable'; -import { DDLParser } from '@vuerd/sql-ddl-parser'; -import { toBlob } from 'html-to-image'; - -import { Bus } from '@/core/helper/eventBus.helper'; -import { createJson } from '@/core/parser/ParserToJson'; -import { loadJson$ } from '@/engine/command/editor.cmd.helper'; -import { sortTable } from '@/engine/command/table.cmd.helper'; -import { IERDEditorContext } from '@/internal-types/ERDEditorContext'; -import { ExportOptions, ImportOptions } from '@@types/core/file'; -import { ExportedStore, Store } from '@@types/engine/store'; -import { SnapshotMetadata } from '@@types/engine/store/snapshot'; - -let executeExportFileExtra: - | ((blob: Blob, options: ExportOptions) => void) - | null = null; - -let executeImportFileExtra: ((options: ImportOptions) => void) | null = null; - -export const createJsonFormat = ({ - canvasState, - tableState, - memoState, - relationshipState, -}: Store): ExportedStore => ({ - canvas: canvasState, - table: tableState, - memo: memoState, - relationship: relationshipState, -}); - -export function createSnapshot( - context: IERDEditorContext, - metadata?: SnapshotMetadata -) { - context.snapshots.push({ - data: createStoreCopy(context.store), - metadata: metadata, - }); -} - -export function createStoreCopy(store: Store): ExportedStore { - return JSON.parse(createJsonStringify(store)); -} - -export const createJsonStringify = (store: Store, space?: number) => - JSON.stringify( - createJsonFormat(store), - (key, value) => (key.startsWith('_') ? undefined : value), - space - ); - -export function exportPNG(root: HTMLElement, name?: string) { - const options: ExportOptions = { - fileName: - name?.trim() === '' - ? `unnamed-${new Date().getTime()}.png` - : `${name}-${new Date().getTime()}.png`, - }; - - toBlob(root).then(blob => { - if (!blob) return; - - executeExport(blob, options); - }); -} - -export const exportJSON = (json: string, name?: string) => { - const options: ExportOptions = { - fileName: - name?.trim() === '' - ? `unnamed-${new Date().getTime()}.vuerd.json` - : `${name}-${new Date().getTime()}.vuerd.json`, - }; - - executeExport(new Blob([json], { type: 'application/json' }), options); -}; - -export const exportSQLDDL = (sql: string, name?: string) => { - const options: ExportOptions = { - fileName: - name?.trim() === '' - ? `unnamed-${new Date().getTime()}.sql` - : `${name}-${new Date().getTime()}.sql`, - }; - - executeExport(new Blob([sql]), options); -}; - -export const exportXML = ( - xml: string, - name?: string, - saveDirectly?: boolean -) => { - const options: ExportOptions = { - saveDirectly: name ? true : false, - fileName: - name?.trim() === '' ? `unnamed-${new Date().getTime()}.xml` : `${name}`, - }; - - if (xml) executeExport(new Blob([xml]), options); -}; - -const executeExport = (blob: Blob, options: ExportOptions) => - executeExportFileExtra - ? executeExportFileExtra(blob, options) - : executeExportBuiltin(blob, options); - -function executeExportBuiltin(blob: Blob, options: ExportOptions) { - const exportHelper = document.createElement('a'); - exportHelper.href = window.URL.createObjectURL(blob); - exportHelper.download = options.fileName; - exportHelper.click(); -} - -export function setExportFileCallback( - callback: (blob: Blob, options: ExportOptions) => void -) { - executeExportFileExtra = callback; -} - -export function setImportFileCallback( - callback: (options: ImportOptions) => void -) { - executeImportFileExtra = callback; -} - -export function importJSON({ store, eventBus }: IERDEditorContext) { - if (executeImportFileExtra) { - executeImportFileExtra({ accept: '.json,.erd,.vuerd', type: 'json' }); - return; - } - - const importHelperJSON = document.createElement('input'); - importHelperJSON.setAttribute('type', 'file'); - importHelperJSON.setAttribute('accept', '.json,.erd,.vuerd'); - importHelperJSON.addEventListener('change', event => { - const input = event.target as HTMLInputElement; - if (input.files && input.files.length) { - const file = input.files[0]; - if (/\.(json|erd|vuerd)$/i.test(file.name)) { - const reader = new FileReader(); - reader.readAsText(file); - reader.onload = () => { - const value = reader.result; - if (typeof value === 'string') { - store.dispatch(loadJson$(value)); - } - }; - } else { - eventBus.emit(Bus.ToastBar.add, { - bodyTpl: html`Just import the json file`, - }); - } - } - }); - importHelperJSON.click(); -} - -export function importSQLDDL(context: IERDEditorContext) { - if (executeImportFileExtra) { - executeImportFileExtra({ accept: '.sql', type: 'sql' }); - return; - } - - const importHelper = document.createElement('input'); - importHelper.setAttribute('type', 'file'); - importHelper.setAttribute('accept', `.sql`); - importHelper.addEventListener('change', event => { - const input = event.target as HTMLInputElement; - if (input.files && input.files.length) { - const file = input.files[0]; - const { helper, store, eventBus } = context; - - if (/\.(sql)$/i.test(file.name)) { - const reader = new FileReader(); - reader.readAsText(file); - reader.onload = () => { - const value = reader.result; - if (typeof value === 'string') { - const statements = DDLParser(value); - - const json = createJson( - // @ts-ignore - statements, - helper, - store.canvasState.database - ); - store.dispatchSync(loadJson$(json), sortTable()); - } - }; - } else { - eventBus.emit(Bus.ToastBar.add, { - bodyTpl: html`Just import the sql file`, - }); - } - } - }); - importHelper.click(); -} diff --git a/packages-legacy/vuerd/src/core/flipAnimation.ts b/packages-legacy/vuerd/src/core/flipAnimation.ts deleted file mode 100644 index 19987378..00000000 --- a/packages-legacy/vuerd/src/core/flipAnimation.ts +++ /dev/null @@ -1,71 +0,0 @@ -/** - * FLIP stands for First, Last, Invert, Play. - * https://aerotwist.com/blog/flip-your-animations/ - */ - -interface FlipSnapshot { - el: Element; - top: number; - left: number; -} - -export class FlipAnimation { - private flipSnapshots: FlipSnapshot[] = []; - private root: Element | DocumentFragment; - private selector: string; - private animationName: string; - - constructor( - root: Element | DocumentFragment, - selector: string, - animationName: string - ) { - this.root = root; - this.selector = selector; - this.animationName = animationName; - } - - snapshot() { - this.flipSnapshots = []; - this.root.querySelectorAll(this.selector).forEach(el => { - // first - const { top, left } = el.getBoundingClientRect(); - - this.flipSnapshots.push({ el, top, left }); - }); - } - - play() { - if (!this.flipSnapshots.length) return; - - this.flipSnapshots.forEach(snapshot => { - // last - const el = snapshot.el as HTMLElement; - const { top, left } = el.getBoundingClientRect(); - const dx = snapshot.left - left; - const dy = snapshot.top - top; - - if (dx || dy) { - // invert - el.style.transform = `translate(${dx}px,${dy}px)`; - el.style.transitionDuration = '0s'; - - // play - requestAnimationFrame(() => { - el.classList.add(this.animationName); - el.style.transform = ''; - el.style.transitionDuration = ''; - - const onTransitionend = () => { - el.classList.remove(this.animationName); - el.removeEventListener('transitionend', onTransitionend); - }; - - el.addEventListener('transitionend', onTransitionend); - }); - } - }); - - this.flipSnapshots = []; - } -} diff --git a/packages-legacy/vuerd/src/core/generator/code/JPA.ts b/packages-legacy/vuerd/src/core/generator/code/JPA.ts deleted file mode 100644 index e8cc7235..00000000 --- a/packages-legacy/vuerd/src/core/generator/code/JPA.ts +++ /dev/null @@ -1,237 +0,0 @@ -import { getData } from '@/core/helper'; -import { PrimitiveTypeMap } from '@/core/sql/dataType'; -import { primaryKey, primaryKeyColumns } from '@/core/sql/ddl/helper'; -import { orderByNameASC } from '@/engine/store/helper/table.helper'; -import { - nRelationshipTypes, - oneRelationshipTypes, -} from '@/engine/store/relationship.state'; -import { Store } from '@@types/engine/store'; -import { Database, NameCase } from '@@types/engine/store/canvas.state'; -import { Relationship } from '@@types/engine/store/relationship.state'; -import { Column, Table } from '@@types/engine/store/table.state'; - -import { getNameCase, getPrimitiveType } from './helper'; - -const convertTypeMap: PrimitiveTypeMap = { - int: 'Integer', - long: 'Long', - float: 'Float', - double: 'Double', - decimal: 'BigDecimal', - boolean: 'Boolean', - string: 'String', - lob: 'String', - date: 'LocalDate', - dateTime: 'LocalDateTime', - time: 'LocalTime', -}; - -export function createCode(store: Store): string { - const stringBuffer: string[] = ['']; - const { database, tableCase, columnCase } = store.canvasState; - const tables = orderByNameASC(store.tableState.tables); - const relationships = store.relationshipState.relationships; - - tables.forEach(table => { - formatTable( - table, - stringBuffer, - database, - relationships, - tables, - tableCase, - columnCase - ); - stringBuffer.push(''); - }); - - return stringBuffer.join('\n'); -} - -export function formatTable( - table: Table, - buffer: string[], - database: Database, - relationships: Relationship[], - tables: Table[], - tableCase: NameCase, - columnCase: NameCase -) { - const tableName = getNameCase(table.name, tableCase); - const pkColumns = primaryKeyColumns(table.columns); - if (pkColumns.length > 1) { - buffer.push(`@Data`); - buffer.push( - `public class ${getNameCase( - `${table.name}Id`, - tableCase - )} implements Serializable {` - ); - const pfkTables: Table[] = []; - pkColumns.forEach(column => { - if (column.ui.pfk) { - ( - relationships - .filter(relationship => - relationship.end.columnIds.includes(column.id) - ) - .map(relationship => getData(tables, relationship.start.tableId)) - .filter(table => table !== null) as Table[] - ).forEach(table => { - if (!pfkTables.some(pfkTable => pfkTable.id === table.id)) { - pfkTables.push(table); - } - }); - } else { - const columnName = getNameCase(column.name, columnCase); - const primitiveType = getPrimitiveType(column.dataType, database); - buffer.push( - ` private ${convertTypeMap[primitiveType]} ${columnName};` - ); - } - }); - pfkTables.forEach(table => { - buffer.push( - ` private ${getNameCase(table.name, tableCase)} ${getNameCase( - table.name, - columnCase - )};` - ); - }); - buffer.push(`}`); - } - if (table.comment.trim() !== '') { - buffer.push(`// ${table.comment}`); - } - buffer.push(`@Data`); - buffer.push(`@Entity`); - if (pkColumns.length > 1) { - buffer.push(`@IdClass(${getNameCase(`${table.name}Id`, tableCase)}.class)`); - } - // if (unique(table.columns)) { - // const uqColumns = uniqueColumns(table.columns).map(column => { - // return { name: getNameCase(column.name, Case.snakeCase) }; - // }); - // buffer.push(`@Table(uniqueConstraints = {`); - // buffer.push(` @UniqueConstraint(`); - // buffer.push(` columnNames={${formatNames(uqColumns, '"')}}`); - // buffer.push(` )`); - // buffer.push(`})`); - // } - buffer.push(`public class ${tableName} {`); - table.columns.forEach(column => { - formatColumn(column, buffer, database, columnCase); - }); - formatRelation(table, buffer, relationships, tables, tableCase, columnCase); - buffer.push(`}`); -} - -function formatColumn( - column: Column, - buffer: string[], - database: Database, - columnCase: NameCase -) { - if (!column.ui.fk && !column.ui.pfk) { - const columnName = getNameCase(column.name, columnCase); - const primitiveType = getPrimitiveType(column.dataType, database); - if (column.comment.trim() !== '') { - buffer.push(` // ${column.comment}`); - } - if (column.option.primaryKey) { - buffer.push(` @Id`); - if (column.option.autoIncrement) { - buffer.push(` @GeneratedValue`); - } - } else if (column.option.notNull) { - buffer.push(` @Column(nullable = false)`); - } - if (primitiveType === 'lob') { - buffer.push(` @Lob`); - } - buffer.push(` private ${convertTypeMap[primitiveType]} ${columnName};`); - } -} - -function formatRelation( - table: Table, - buffer: string[], - relationships: Relationship[], - tables: Table[], - tableCase: NameCase, - columnCase: NameCase -) { - relationships - .filter(relationship => relationship.end.tableId === table.id) - .forEach(relationship => { - const startTable = getData(tables, relationship.start.tableId); - const endColumns = relationship.end.columnIds - .map(columnId => getData(table.columns, columnId)) - .filter(column => column !== null) as Column[]; - if (startTable && endColumns.length !== 0) { - const typeName = getNameCase(startTable.name, tableCase); - const fieldName = getNameCase(startTable.name, columnCase); - if (startTable.comment.trim() !== '') { - buffer.push(` // ${startTable.comment}`); - } - if (primaryKey(endColumns)) { - buffer.push(` @Id`); - } - if (oneRelationshipTypes.includes(relationship.relationshipType)) { - buffer.push(` @OneToOne`); - } else if (nRelationshipTypes.includes(relationship.relationshipType)) { - buffer.push(` @ManyToOne`); - } - - if (endColumns.length > 1) { - buffer.push(` @JoinColumns(value = {`); - endColumns.forEach((column, index) => { - buffer.push( - ` @JoinColumn(name = "${getNameCase( - column.name, - 'snakeCase' - )}")${endColumns.length - 1 > index ? ',' : ''}` - ); - }); - buffer.push(` })`); - } else { - buffer.push( - ` @JoinColumn(name = "${getNameCase( - endColumns[0].name, - 'snakeCase' - )}")` - ); - } - buffer.push(` private ${typeName} ${fieldName};`); - } - }); - relationships - .filter(relationship => relationship.start.tableId === table.id) - .forEach(relationship => { - const endTable = getData(tables, relationship.end.tableId); - if (endTable) { - const typeName = getNameCase(endTable.name, tableCase); - const fieldName = getNameCase(endTable.name, columnCase); - if (endTable.comment.trim() !== '') { - buffer.push(` // ${endTable.comment}`); - } - if (oneRelationshipTypes.includes(relationship.relationshipType)) { - buffer.push( - ` @OneToOne(mappedBy = "${getNameCase(table.name, columnCase)}")` - ); - buffer.push(` private ${typeName} ${fieldName};`); - } else if (nRelationshipTypes.includes(relationship.relationshipType)) { - buffer.push( - ` @OneToMany(mappedBy = "${getNameCase(table.name, columnCase)}")` - ); - buffer.push( - ` private List<${typeName}> ${getNameCase( - `${fieldName}List`, - columnCase - )} = new ArrayList<>();` - ); - } - } - }); -} diff --git a/packages-legacy/vuerd/src/core/generator/code/csharp.ts b/packages-legacy/vuerd/src/core/generator/code/csharp.ts deleted file mode 100644 index 3faa6ca5..00000000 --- a/packages-legacy/vuerd/src/core/generator/code/csharp.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { PrimitiveTypeMap } from '@/core/sql/dataType'; -import { orderByNameASC } from '@/engine/store/helper/table.helper'; -import { Store } from '@@types/engine/store'; -import { Database, NameCase } from '@@types/engine/store/canvas.state'; -import { Column, Table } from '@@types/engine/store/table.state'; - -import { getNameCase, getPrimitiveType } from './helper'; - -const convertTypeMap: PrimitiveTypeMap = { - int: 'int', - long: 'long', - float: 'float', - double: 'double', - decimal: 'decimal', - boolean: 'bool', - string: 'string', - lob: 'string', - date: 'DateTime', - dateTime: 'DateTime', - time: 'TimeSpan', -}; - -export function createCode(store: Store): string { - const stringBuffer: string[] = ['']; - const { database, tableCase, columnCase } = store.canvasState; - const tables = orderByNameASC(store.tableState.tables); - - tables.forEach(table => { - formatTable(table, stringBuffer, database, tableCase, columnCase); - stringBuffer.push(''); - }); - - return stringBuffer.join('\n'); -} - -export function formatTable( - table: Table, - buffer: string[], - database: Database, - tableCase: NameCase, - columnCase: NameCase -) { - const tableName = getNameCase(table.name, tableCase); - if (table.comment.trim() !== '') { - buffer.push(`// ${table.comment}`); - } - buffer.push(`public class ${tableName} {`); - table.columns.forEach(column => { - formatColumn(column, buffer, database, columnCase); - }); - buffer.push(`}`); -} - -function formatColumn( - column: Column, - buffer: string[], - database: Database, - columnCase: NameCase -) { - const columnName = getNameCase(column.name, columnCase); - const primitiveType = getPrimitiveType(column.dataType, database); - if (column.comment.trim() !== '') { - buffer.push(` // ${column.comment}`); - } - buffer.push( - ` public ${convertTypeMap[primitiveType]} ${ - columnName.charAt(0).toLocaleUpperCase() + columnName.slice(1) - } { get; set; }` - ); -} diff --git a/packages-legacy/vuerd/src/core/generator/code/graphql.ts b/packages-legacy/vuerd/src/core/generator/code/graphql.ts deleted file mode 100644 index 3d95e249..00000000 --- a/packages-legacy/vuerd/src/core/generator/code/graphql.ts +++ /dev/null @@ -1,137 +0,0 @@ -import { getData } from '@/core/helper'; -import { PrimitiveTypeMap } from '@/core/sql/dataType'; -import { orderByNameASC } from '@/engine/store/helper/table.helper'; -import { - nRelationshipTypes, - oneRelationshipTypes, -} from '@/engine/store/relationship.state'; -import { Store } from '@@types/engine/store'; -import { Database, NameCase } from '@@types/engine/store/canvas.state'; -import { Relationship } from '@@types/engine/store/relationship.state'; -import { Column, Table } from '@@types/engine/store/table.state'; - -import { getNameCase, getPrimitiveType } from './helper'; - -const convertTypeMap: PrimitiveTypeMap = { - int: 'Int', - long: 'Int', - float: 'Float', - double: 'Float', - decimal: 'Float', - boolean: 'Boolean', - string: 'String', - lob: 'String', - date: 'String', - dateTime: 'String', - time: 'String', -}; - -export function createCode(store: Store): string { - const stringBuffer: string[] = ['']; - const { database, tableCase, columnCase } = store.canvasState; - const tables = orderByNameASC(store.tableState.tables); - const relationships = store.relationshipState.relationships; - - tables.forEach(table => { - formatTable( - table, - stringBuffer, - database, - relationships, - tables, - tableCase, - columnCase - ); - stringBuffer.push(''); - }); - - return stringBuffer.join('\n'); -} - -export function formatTable( - table: Table, - buffer: string[], - database: Database, - relationships: Relationship[], - tables: Table[], - tableCase: NameCase, - columnCase: NameCase -) { - const tableName = getNameCase(table.name, tableCase); - if (table.comment.trim() !== '') { - buffer.push(`# ${table.comment}`); - } - buffer.push(`type ${tableName} {`); - table.columns.forEach(column => { - formatColumn(column, buffer, database, columnCase); - }); - formatRelation(table, buffer, relationships, tables, tableCase, columnCase); - buffer.push(`}`); -} - -function formatColumn( - column: Column, - buffer: string[], - database: Database, - columnCase: NameCase -) { - if (!column.ui.fk) { - const columnName = getNameCase(column.name, columnCase); - if (column.comment.trim() !== '') { - buffer.push(` # ${column.comment}`); - } - const idType = column.option.primaryKey || column.ui.fk; - if (idType) { - buffer.push(` ${columnName}: ID${column.option.notNull ? '!' : ''}`); - } else { - const primitiveType = getPrimitiveType(column.dataType, database); - buffer.push( - ` ${columnName}: ${convertTypeMap[primitiveType]}${ - column.option.notNull ? '!' : '' - }` - ); - } - } -} - -function formatRelation( - table: Table, - buffer: string[], - relationships: Relationship[], - tables: Table[], - tableCase: NameCase, - columnCase: NameCase -) { - relationships - .filter(relationship => relationship.end.tableId === table.id) - .forEach(relationship => { - const startTable = getData(tables, relationship.start.tableId); - if (startTable) { - const typeName = getNameCase(startTable.name, tableCase); - const fieldName = getNameCase(startTable.name, columnCase); - if (startTable.comment.trim() !== '') { - buffer.push(` # ${startTable.comment}`); - } - buffer.push(` ${fieldName}: ${typeName}`); - } - }); - relationships - .filter(relationship => relationship.start.tableId === table.id) - .forEach(relationship => { - const endTable = getData(tables, relationship.end.tableId); - if (endTable) { - const typeName = getNameCase(endTable.name, tableCase); - const fieldName = getNameCase(endTable.name, columnCase); - if (endTable.comment.trim() !== '') { - buffer.push(` # ${endTable.comment}`); - } - if (oneRelationshipTypes.includes(relationship.relationshipType)) { - buffer.push(` ${fieldName}: ${typeName}`); - } else if (nRelationshipTypes.includes(relationship.relationshipType)) { - buffer.push( - ` ${getNameCase(`${fieldName}List`, columnCase)}: [${typeName}!]!` - ); - } - } - }); -} diff --git a/packages-legacy/vuerd/src/core/generator/code/helper.ts b/packages-legacy/vuerd/src/core/generator/code/helper.ts deleted file mode 100644 index 9d686c03..00000000 --- a/packages-legacy/vuerd/src/core/generator/code/helper.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { camelCase, pascalCase, snakeCase } from '@/core/helper'; -import { - databaseHints, - DataTypeHint, - PrimitiveType, -} from '@/core/sql/dataType'; -import { Database, NameCase } from '@@types/engine/store/canvas.state'; - -export function getPrimitiveType( - dataType: string, - database: Database -): PrimitiveType { - const dataTypeHints = getDataTypeHints(database); - for (const dataTypeHint of dataTypeHints) { - if ( - dataType - .toLocaleLowerCase() - .indexOf(dataTypeHint.name.toLocaleLowerCase()) === 0 - ) { - return dataTypeHint.primitiveType; - } - } - return 'string'; -} - -export function getDataTypeHints(database: Database): DataTypeHint[] { - for (const data of databaseHints) { - if (data.database === database) { - return data.dataTypeHints; - } - } - return []; -} - -export function getNameCase(name: string, nameCase: NameCase): string { - let changeName = name; - switch (nameCase) { - case 'camelCase': - changeName = camelCase(name); - break; - case 'pascalCase': - changeName = pascalCase(name); - break; - case 'snakeCase': - changeName = snakeCase(name); - break; - } - return changeName; -} diff --git a/packages-legacy/vuerd/src/core/generator/code/index.ts b/packages-legacy/vuerd/src/core/generator/code/index.ts deleted file mode 100644 index 90fa5f12..00000000 --- a/packages-legacy/vuerd/src/core/generator/code/index.ts +++ /dev/null @@ -1,112 +0,0 @@ -import { Store } from '@@types/engine/store'; -import { Table } from '@@types/engine/store/table.state'; - -import { - createCode as createCodeCsharp, - formatTable as formatTableCsharp, -} from './csharp'; -import { - createCode as createCodeGraphql, - formatTable as formatTableGraphql, -} from './graphql'; -import { - createCode as createCodeJava, - formatTable as formatTableJava, -} from './java'; -import { - createCode as createCodeJPA, - formatTable as formatTableJPA, -} from './JPA'; -import { - createCode as createCodeKotlin, - formatTable as formatTableKotlin, -} from './kotlin'; -import { - createCode as createCodeScla, - formatTable as formatTableScala, -} from './scala'; -import { - createCode as createCodeTypescript, - formatTable as formatTableTypescript, -} from './typescript'; - -export function createGeneratorCode(store: Store): string { - const { language } = store.canvasState; - switch (language) { - case 'GraphQL': - return createCodeGraphql(store); - case 'C#': - return createCodeCsharp(store); - case 'Java': - return createCodeJava(store); - case 'Kotlin': - return createCodeKotlin(store); - case 'TypeScript': - return createCodeTypescript(store); - case 'JPA': - return createCodeJPA(store); - case 'Scala': - return createCodeScla(store); - } - return ''; -} - -export function createGeneratorCodeTable(store: Store, table: Table): string { - const stringBuffer: string[] = ['']; - const { language, database, tableCase, columnCase } = store.canvasState; - const { tables } = store.tableState; - const { relationships } = store.relationshipState; - switch (language) { - case 'GraphQL': - formatTableGraphql( - table, - stringBuffer, - database, - relationships, - tables, - tableCase, - columnCase - ); - stringBuffer.push(''); - break; - case 'C#': - formatTableCsharp(table, stringBuffer, database, tableCase, columnCase); - stringBuffer.push(''); - break; - case 'Java': - formatTableJava(table, stringBuffer, database, tableCase, columnCase); - stringBuffer.push(''); - break; - case 'Kotlin': - formatTableKotlin(table, stringBuffer, database, tableCase, columnCase); - stringBuffer.push(''); - break; - case 'TypeScript': - formatTableTypescript( - table, - stringBuffer, - database, - tableCase, - columnCase - ); - stringBuffer.push(''); - break; - case 'JPA': - formatTableJPA( - table, - stringBuffer, - database, - relationships, - tables, - tableCase, - columnCase - ); - stringBuffer.push(''); - break; - case 'Scala': - formatTableScala(table, stringBuffer, database, tableCase, columnCase); - stringBuffer.push(''); - break; - } - return stringBuffer.join('\n'); -} diff --git a/packages-legacy/vuerd/src/core/generator/code/java.ts b/packages-legacy/vuerd/src/core/generator/code/java.ts deleted file mode 100644 index 86d574b0..00000000 --- a/packages-legacy/vuerd/src/core/generator/code/java.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { PrimitiveTypeMap } from '@/core/sql/dataType'; -import { orderByNameASC } from '@/engine/store/helper/table.helper'; -import { Store } from '@@types/engine/store'; -import { Database, NameCase } from '@@types/engine/store/canvas.state'; -import { Column, Table } from '@@types/engine/store/table.state'; - -import { getNameCase, getPrimitiveType } from './helper'; - -const convertTypeMap: PrimitiveTypeMap = { - int: 'Integer', - long: 'Long', - float: 'Float', - double: 'Double', - decimal: 'BigDecimal', - boolean: 'Boolean', - string: 'String', - lob: 'String', - date: 'LocalDate', - dateTime: 'LocalDateTime', - time: 'LocalTime', -}; - -export function createCode(store: Store): string { - const stringBuffer: string[] = ['']; - const { database, tableCase, columnCase } = store.canvasState; - const tables = orderByNameASC(store.tableState.tables); - - tables.forEach(table => { - formatTable(table, stringBuffer, database, tableCase, columnCase); - stringBuffer.push(''); - }); - - return stringBuffer.join('\n'); -} - -export function formatTable( - table: Table, - buffer: string[], - database: Database, - tableCase: NameCase, - columnCase: NameCase -) { - const tableName = getNameCase(table.name, tableCase); - if (table.comment.trim() !== '') { - buffer.push(`// ${table.comment}`); - } - buffer.push(`@Data`); - buffer.push(`public class ${tableName} {`); - table.columns.forEach(column => { - formatColumn(column, buffer, database, columnCase); - }); - buffer.push(`}`); -} - -function formatColumn( - column: Column, - buffer: string[], - database: Database, - columnCase: NameCase -) { - const columnName = getNameCase(column.name, columnCase); - const primitiveType = getPrimitiveType(column.dataType, database); - if (column.comment.trim() !== '') { - buffer.push(` // ${column.comment}`); - } - buffer.push(` private ${convertTypeMap[primitiveType]} ${columnName};`); -} diff --git a/packages-legacy/vuerd/src/core/generator/code/kotlin.ts b/packages-legacy/vuerd/src/core/generator/code/kotlin.ts deleted file mode 100644 index 9fd75b4d..00000000 --- a/packages-legacy/vuerd/src/core/generator/code/kotlin.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { PrimitiveType, PrimitiveTypeMap } from '@/core/sql/dataType'; -import { orderByNameASC } from '@/engine/store/helper/table.helper'; -import { Store } from '@@types/engine/store'; -import { Database, NameCase } from '@@types/engine/store/canvas.state'; -import { Column, Table } from '@@types/engine/store/table.state'; - -import { getNameCase, getPrimitiveType } from './helper'; - -const convertTypeMap: PrimitiveTypeMap = { - int: 'Int', - long: 'Long', - float: 'Float', - double: 'Double', - decimal: 'BigDecimal', - boolean: 'Boolean', - string: 'String', - lob: 'String', - date: 'LocalDate', - dateTime: 'LocalDateTime', - time: 'LocalTime', -}; - -export function createCode(store: Store): string { - const stringBuffer: string[] = ['']; - const { database, tableCase, columnCase } = store.canvasState; - const tables = orderByNameASC(store.tableState.tables); - - tables.forEach(table => { - formatTable(table, stringBuffer, database, tableCase, columnCase); - stringBuffer.push(''); - }); - - return stringBuffer.join('\n'); -} - -export function formatTable( - table: Table, - buffer: string[], - database: Database, - tableCase: NameCase, - columnCase: NameCase -) { - const tableName = getNameCase(table.name, tableCase); - if (table.comment.trim() !== '') { - buffer.push(`// ${table.comment}`); - } - buffer.push(`class ${tableName} {`); - table.columns.forEach(column => { - formatColumn(column, buffer, database, columnCase); - }); - buffer.push(`}`); -} - -function formatColumn( - column: Column, - buffer: string[], - database: Database, - columnCase: NameCase -) { - const columnName = getNameCase(column.name, columnCase); - const primitiveType = getPrimitiveType(column.dataType, database); - if (column.comment.trim() !== '') { - buffer.push(` // ${column.comment}`); - } - if ( - column.option.notNull && - primitiveType !== 'date' && - primitiveType !== 'dateTime' && - primitiveType !== 'time' - ) { - buffer.push( - ` var ${columnName}: ${convertTypeMap[primitiveType]} = ${getDefault( - primitiveType - )}` - ); - } else { - buffer.push( - ` var ${columnName}: ${convertTypeMap[primitiveType]}? = null` - ); - } -} - -function getDefault(primitiveType: PrimitiveType) { - switch (primitiveType) { - case 'int': - case 'long': - return 0; - case 'float': - return '0.0f'; - case 'double': - return '0.0'; - case 'boolean': - return false; - case 'string': - case 'lob': - return '""'; - case 'decimal': - return 'BigDecimal.ZERO'; - case 'date': - case 'dateTime': - case 'time': - return null; - } -} diff --git a/packages-legacy/vuerd/src/core/generator/code/scala.ts b/packages-legacy/vuerd/src/core/generator/code/scala.ts deleted file mode 100644 index 9ff5966e..00000000 --- a/packages-legacy/vuerd/src/core/generator/code/scala.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { PrimitiveTypeMap } from '@/core/sql/dataType'; -import { orderByNameASC } from '@/engine/store/helper/table.helper'; -import { Store } from '@@types/engine/store'; -import { Database, NameCase } from '@@types/engine/store/canvas.state'; -import { Column, Table } from '@@types/engine/store/table.state'; - -import { getNameCase, getPrimitiveType } from './helper'; - -const convertTypeMap: PrimitiveTypeMap = { - int: 'Int', - long: 'Long', - float: 'Float', - double: 'Double', - decimal: 'BigDecimal', - boolean: 'Boolean', - string: 'String', - lob: 'String', - date: 'LocalDate', - dateTime: 'LocalDateTime', - time: 'LocalTime', -}; - -export function createCode(store: Store): string { - const stringBuffer: string[] = ['']; - const { database, tableCase, columnCase } = store.canvasState; - const tables = orderByNameASC(store.tableState.tables); - - tables.forEach(table => { - formatTable(table, stringBuffer, database, tableCase, columnCase); - stringBuffer.push(''); - }); - - return stringBuffer.join('\n'); -} - -export function formatTable( - table: Table, - buffer: string[], - database: Database, - tableCase: NameCase, - columnCase: NameCase -) { - const tableName = getNameCase(table.name, tableCase); - if (table.comment.trim() !== '') { - buffer.push(`// ${table.comment}`); - } - buffer.push(`@Data`); - buffer.push(`case class ${tableName}(`); - table.columns.forEach((column, idx, array) => { - var notLastElem = true; - if (idx === array.length - 1) { - notLastElem = false; - } - formatColumn(column, buffer, database, columnCase, notLastElem); - }); - buffer.push(`)`); -} - -function formatColumn( - column: Column, - buffer: string[], - database: Database, - columnCase: NameCase, - addComma: boolean -) { - const columnName = getNameCase(column.name, columnCase); - const primitiveType = getPrimitiveType(column.dataType, database); - if (column.comment.trim() !== '') { - buffer.push(` // ${column.comment}`); - } - - buffer.push( - ` ${columnName}: ${convertTypeMap[primitiveType]}${addComma ? ',' : ''}` - ); -} diff --git a/packages-legacy/vuerd/src/core/generator/code/typescript.ts b/packages-legacy/vuerd/src/core/generator/code/typescript.ts deleted file mode 100644 index 245016bc..00000000 --- a/packages-legacy/vuerd/src/core/generator/code/typescript.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { PrimitiveTypeMap } from '@/core/sql/dataType'; -import { orderByNameASC } from '@/engine/store/helper/table.helper'; -import { Store } from '@@types/engine/store'; -import { Database, NameCase } from '@@types/engine/store/canvas.state'; -import { Column, Table } from '@@types/engine/store/table.state'; - -import { getNameCase, getPrimitiveType } from './helper'; - -const convertTypeMap: PrimitiveTypeMap = { - int: 'number', - long: 'number', - float: 'number', - double: 'number', - decimal: 'number', - boolean: 'boolean', - string: 'string', - lob: 'string', - date: 'string', - dateTime: 'string', - time: 'string', -}; - -export function createCode(store: Store): string { - const stringBuffer: string[] = ['']; - const { database, tableCase, columnCase } = store.canvasState; - const tables = orderByNameASC(store.tableState.tables); - - tables.forEach(table => { - formatTable(table, stringBuffer, database, tableCase, columnCase); - stringBuffer.push(''); - }); - - return stringBuffer.join('\n'); -} - -export function formatTable( - table: Table, - buffer: string[], - database: Database, - tableCase: NameCase, - columnCase: NameCase -) { - const tableName = getNameCase(table.name, tableCase); - if (table.comment.trim() !== '') { - buffer.push(`// ${table.comment}`); - } - buffer.push(`export interface ${tableName} {`); - table.columns.forEach(column => { - formatColumn(column, buffer, database, columnCase); - }); - buffer.push(`}`); -} - -function formatColumn( - column: Column, - buffer: string[], - database: Database, - columnCase: NameCase -) { - const columnName = getNameCase(column.name, columnCase); - const primitiveType = getPrimitiveType(column.dataType, database); - if (column.comment.trim() !== '') { - buffer.push(` // ${column.comment}`); - } - buffer.push( - ` ${columnName}: ${convertTypeMap[primitiveType]}${ - column.option.notNull ? '' : ' | null' - };` - ); -} diff --git a/packages-legacy/vuerd/src/core/helper/dom.helper.ts b/packages-legacy/vuerd/src/core/helper/dom.helper.ts deleted file mode 100644 index ab480872..00000000 --- a/packages-legacy/vuerd/src/core/helper/dom.helper.ts +++ /dev/null @@ -1,70 +0,0 @@ -import * as R from 'ramda'; - -export const setStyleMap = ( - el: HTMLElement, - styleMap: Partial -) => Object.assign(el.style, styleMap); - -export function onNumberOnly(event: Event) { - const input = event.target as HTMLInputElement; - input.value = input.value.replace(/[^0-9]/g, ''); -} - -export function onPreventDefault(event: Event) { - event.preventDefault(); - return event; -} - -export function onStopPropagation(event: Event) { - event.stopPropagation(); - return event; -} - -export function onStopImmediatePropagation(event: Event) { - event.stopImmediatePropagation(); - return event; -} - -export const onStopAll = R.pipe( - onPreventDefault, - onStopPropagation, - onStopImmediatePropagation -); - -export function markToHTML( - className: string, - target: string, - keyword: string -): string { - const match = new RegExp(keyword.split('').join('|'), 'i'); - const list = target.split(''); - const buffer: string[] = []; - - while (list.length) { - const cur = list.shift() as string; - - match.test(cur) - ? buffer.push(`${cur}`) - : buffer.push(cur); - } - - return buffer.join(''); -} - -export function lastCursorFocus(input: HTMLInputElement) { - const len = input.value.length; - input.selectionStart = len; - input.selectionEnd = len; - input.focus(); -} - -export function onInputClear(event: Event) { - const input = event.target as HTMLInputElement; - if (!input) return; - - input.value = ''; -} - -export function isMouseEvent(event: Event): event is MouseEvent { - return event instanceof MouseEvent; -} diff --git a/packages-legacy/vuerd/src/core/helper/dragSelect.helper.ts b/packages-legacy/vuerd/src/core/helper/dragSelect.helper.ts deleted file mode 100644 index a28a52fd..00000000 --- a/packages-legacy/vuerd/src/core/helper/dragSelect.helper.ts +++ /dev/null @@ -1,108 +0,0 @@ -import { SIZE_MENUBAR_HEIGHT } from '@/core/layout'; -import { Store } from '@@types/engine/store'; -import { Viewport } from '@@types/engine/store/editor.state'; -import { Point } from '@@types/engine/store/relationship.state'; - -interface PointToPoint { - x1: number; - y1: number; - x2: number; - y2: number; -} - -interface Rect { - x: number; - y: number; - w: number; - h: number; -} - -export function getOverlapPosition( - dragRect: Rect, - rect: Rect -): PointToPoint | null { - if ( - dragRect.x > rect.x + rect.w || - dragRect.x + dragRect.w < rect.x || - dragRect.y > rect.y + rect.h || - dragRect.y + dragRect.h < rect.y - ) - return null; - - const target: PointToPoint = { x1: 0, y1: 0, x2: 0, y2: 0 }; - target.x1 = Math.max(dragRect.x, rect.x); - target.y1 = Math.max(dragRect.y, rect.y); - target.x2 = Math.min(dragRect.x + dragRect.w, rect.x + rect.w) - rect.x; - target.y2 = Math.min(dragRect.y + dragRect.h, rect.y + rect.h) - rect.y; - - return target; -} - -export function getZoomViewport( - width: number, - height: number, - zoomLevel: number -): Rect { - const viewport: Rect = { x: 0, y: 0, w: 0, h: 0 }; - - viewport.w = width * zoomLevel; - viewport.h = height * zoomLevel; - viewport.x = (width - viewport.w) / 2; - viewport.y = (height - viewport.h) / 2; - - return viewport; -} - -export const getAbsolutePosition = ( - overlapPosition: PointToPoint, - zoomViewport: Rect, - zoomLevel: number -): PointToPoint => ({ - x1: (overlapPosition.x1 - zoomViewport.x) / zoomLevel, - y1: (overlapPosition.y1 - zoomViewport.y) / zoomLevel, - x2: overlapPosition.x2 / zoomLevel, - y2: overlapPosition.y2 / zoomLevel, -}); - -export function getViewport(store: Store): Viewport { - return { - width: store.editorState.viewport.width, - height: store.editorState.viewport.height - SIZE_MENUBAR_HEIGHT, - }; -} - -export function getAbsoluteZoomPoint( - { x, y }: Point, - width: number, - height: number, - zoomLevel: number -) { - const zoomViewport = getZoomViewport(width, height, zoomLevel); - const zoomX = x * zoomLevel; - const zoomY = y * zoomLevel; - const absoluteZoomX = zoomViewport.x + zoomX; - const absoluteZoomY = zoomViewport.y + zoomY; - - return { x: absoluteZoomX, y: absoluteZoomY }; -} - -export function getAbsolutePoint( - point: Point, - width: number, - height: number, - zoomLevel: number -): Point { - const { x, y } = point; - const { x: absoluteZoomX, y: absoluteZoomY } = getAbsoluteZoomPoint( - point, - width, - height, - zoomLevel - ); - const diffZoomX = (x - absoluteZoomX) / zoomLevel; - const diffZoomY = (y - absoluteZoomY) / zoomLevel; - const absoluteX = x + diffZoomX; - const absoluteY = y + diffZoomY; - - return { x: absoluteX, y: absoluteY }; -} diff --git a/packages-legacy/vuerd/src/core/helper/editor.helper.ts b/packages-legacy/vuerd/src/core/helper/editor.helper.ts deleted file mode 100644 index 56af4ae0..00000000 --- a/packages-legacy/vuerd/src/core/helper/editor.helper.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { fromEvent, Subject } from 'rxjs'; - -import { getTextWidth as getTinyTextWidth } from '@/core/helper/text.helper'; -import { IHelper } from '@/internal-types/helper'; - -import { onInputClear } from './dom.helper'; -import { createSubscriptionHelper } from './index'; - -const TEXT_PADDING = 2; - -export function createHelper(): IHelper { - let ghostText: HTMLSpanElement | null = null; - let ghostInput: HTMLInputElement | null = null; - const subscriptionHelper = createSubscriptionHelper(); - const keydown$ = new Subject(); - - const setGhostText = (ghost: HTMLSpanElement) => { - ghostText = ghost; - }; - - const setGhostInput = (ghost: HTMLInputElement) => { - ghostInput = ghost; - subscriptionHelper.push( - fromEvent(ghostInput, 'input').subscribe(onInputClear) - ); - }; - - const getTextWidth = (value: string) => - getTinyTextWidth(value) + TEXT_PADDING; - - const getFastTextWidth = (value: string) => value.length * 10 + TEXT_PADDING; - - const getTextWidthLegacy = (value: string) => { - if (!ghostText) return getFastTextWidth(value); - - ghostText.innerText = value; - return ghostText.offsetWidth + TEXT_PADDING; - }; - - const focus = () => { - if (!ghostInput) return; - ghostInput.focus(); - }; - - const blur = () => { - if (!ghostInput) return; - ghostInput.blur(); - }; - - const destroy = () => subscriptionHelper.destroy(); - - return { - keydown$, - setGhostText, - setGhostInput, - getTextWidth, - getTextWidthLegacy, - getFastTextWidth, - focus, - blur, - destroy, - }; -} diff --git a/packages-legacy/vuerd/src/core/helper/event.helper.ts b/packages-legacy/vuerd/src/core/helper/event.helper.ts deleted file mode 100644 index cd2bb6bc..00000000 --- a/packages-legacy/vuerd/src/core/helper/event.helper.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { fromEvent, merge } from 'rxjs'; -import { filter, map, takeUntil } from 'rxjs/operators'; - -import { GlobalEventObservable } from '@/internal-types/event.helper'; - -export type DragMove = { - event: MouseEvent | TouchEvent; - movementX: number; - movementY: number; - x: number; - y: number; -}; - -export function createGlobalEventObservable(): GlobalEventObservable { - const mousedown$ = fromEvent(window, 'mousedown'); - const mousemove$ = fromEvent(window, 'mousemove'); - const mouseup$ = fromEvent(window, 'mouseup'); - const touchstart$ = fromEvent(window, 'touchstart'); - const touchmove$ = fromEvent(window, 'touchmove'); - const touchend$ = fromEvent(window, 'touchend'); - - let touchX = 0; - let touchY = 0; - const subscription = touchstart$.subscribe(event => { - touchX = event.touches[0].clientX; - touchY = event.touches[0].clientY; - }); - - const move$ = merge( - mousemove$.pipe( - map(event => { - const movementX = event.movementX; - const movementY = event.movementY; - return { - event, - movementX, - movementY, - x: event.clientX, - y: event.clientY, - }; - }) - ), - touchmove$.pipe( - filter(event => event.touches.length === 1), - map(event => { - const movementX = event.touches[0].clientX - touchX; - const movementY = event.touches[0].clientY - touchY; - touchX = event.touches[0].clientX; - touchY = event.touches[0].clientY; - return { - event, - movementX, - movementY, - x: event.touches[0].clientX, - y: event.touches[0].clientY, - }; - }) - ) - ); - const moveStart$ = merge(mousedown$, touchstart$); - const moveEnd$ = merge(mouseup$, touchend$); - const drag$ = move$.pipe(takeUntil(moveEnd$)); - - return { - mousedown$, - mouseup$, - mousemove$, - touchstart$, - touchend$, - touchmove$, - moveStart$, - moveEnd$, - move$, - drag$, - destroy() { - subscription.unsubscribe(); - }, - }; -} diff --git a/packages-legacy/vuerd/src/core/helper/eventBus.helper.ts b/packages-legacy/vuerd/src/core/helper/eventBus.helper.ts deleted file mode 100644 index 2929caad..00000000 --- a/packages-legacy/vuerd/src/core/helper/eventBus.helper.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { Observable } from 'rxjs'; - -export function createEventBus() { - const bus = document.createElement('div'); - - const on = (eventName: string) => - new Observable(subscriber => { - const handler = (event: any) => subscriber.next(event.detail); - - bus.addEventListener(eventName, handler); - - return () => bus.removeEventListener(eventName, handler); - }); - - const emit = (eventName: string, detail?: any) => { - bus.dispatchEvent( - new CustomEvent(eventName, { - detail, - }) - ); - }; - - return { - on, - emit, - }; -} - -enum BalanceRange { - move = 'BalanceRange.move', -} - -enum Drawer { - openTableProperties = 'Drawer.openTableProperties', - close = 'Drawer.close', -} - -enum Contextmenu { - close = 'Contextmenu.close', -} - -enum ColorPicker { - close = 'ColorPicker.close', - open = 'ColorPicker.open', -} - -enum ToastBar { - add = 'ToastBar.add', -} - -enum Editor { - change = 'Editor.change', -} - -enum Liquibase { - progress = 'Liquibase.liquibase-progress', - progressEnd = 'Liquibase.liquibase-progress-end', -} - -export const Bus = { - BalanceRange, - Drawer, - Contextmenu, - Liquibase, - ColorPicker, - ToastBar, - Editor, -}; diff --git a/packages-legacy/vuerd/src/core/helper/index.ts b/packages-legacy/vuerd/src/core/helper/index.ts deleted file mode 100644 index f03fb731..00000000 --- a/packages-legacy/vuerd/src/core/helper/index.ts +++ /dev/null @@ -1,98 +0,0 @@ -import { camelCase, snakeCase, upperFirst } from 'lodash-es'; -import * as R from 'ramda'; -import { Subscription } from 'rxjs'; - -type TypeofName = - | 'object' - | 'function' - | 'string' - | 'undefined' - | 'number' - | 'boolean'; - -export { camelCase, snakeCase }; -export { v4 as uuid } from 'uuid'; -export const pascalCase = R.pipe( - camelCase, - upperFirst -); - -type Callback = () => void; - -export function createSubscriptionHelper() { - const subscriptions: Array = []; - const push = (...args: Array) => - subscriptions.push(...args); - const destroy = () => { - while (subscriptions.length) { - const f = subscriptions.shift() as Callback | Subscription; - isFunction(f) ? (f as Callback)() : (f as Subscription).unsubscribe(); - } - }; - - return { - push, - destroy, - }; -} - -export const cloneDeep = (value: any) => JSON.parse(JSON.stringify(value)); -export const isArray = (value: any) => Array.isArray(value); -export const isEmpty = (value: any) => isNull(value) || isUndefined(value); - -const isTypeof = R.curry( - (name: TypeofName, value: any) => typeof value === name -); -export const isObject = (value: any) => !!value && isTypeof('object', value); -export const isFunction = isTypeof('function'); -export const isString = isTypeof('string'); -export const isUndefined = isTypeof('undefined'); -export const isNumber = isTypeof('number'); -export const isBoolean = isTypeof('boolean'); -export const isNull = (value: any) => value === null; - -export const isRegExp = R.curry((exclude: RegExp[], key: string) => - exclude.some(regexp => regexp.test(key)) -); - -export const noop = () => {}; - -export const getData = (list: Array, id: string) => - list.find(data => data.id === id); - -export const getIndex = ( - list: Array, - id: string -) => R.findIndex(R.propEq('id', id))(list); - -export const range = (a: number, b: number) => - a < b ? R.range(a, b + 1) : R.range(b, a + 1); - -export function* flat(iterator: any[]): Generator { - for (const value of iterator) { - if (value && value[Symbol.iterator]) yield* flat(value); - else yield value; - } -} - -export const createBalanceRange = (min: number, max: number) => (num: number) => - Math.min(Math.max(num, min), max); - -export function autoName( - list: T[], - id: string, - name: string, - num = 1 -): string { - let result = true; - for (const value of list) { - if (name === value.name && value.id !== id && name !== '') { - result = false; - break; - } - } - if (result) { - return name; - } - return autoName(list, id, name.replace(/[0-9]/g, '') + num, num + 1); -} diff --git a/packages-legacy/vuerd/src/core/helper/text.helper.ts b/packages-legacy/vuerd/src/core/helper/text.helper.ts deleted file mode 100644 index d9dc8faf..00000000 --- a/packages-legacy/vuerd/src/core/helper/text.helper.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { SIZE_FONT } from '@/core/layout'; - -const canvas = document.createElement('canvas'); -const ctx = canvas.getContext('2d') as CanvasRenderingContext2D; -ctx.font = `${SIZE_FONT}px 'Noto Sans', sans-serif`; - -export const getTextWidth = (value: string) => ctx.measureText(value).width; diff --git a/packages-legacy/vuerd/src/core/highlight.ts b/packages-legacy/vuerd/src/core/highlight.ts deleted file mode 100644 index 22cee47e..00000000 --- a/packages-legacy/vuerd/src/core/highlight.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { AtomOneDarkStyle } from '@/components/css/highlight/atom-one-dark.style'; -import { AtomOneLightStyle } from '@/components/css/highlight/atom-one-light.style'; -import { GithubGistStyle } from '@/components/css/highlight/github-gist.style'; -import { MonokaiSublimeStyle } from '@/components/css/highlight/monokai-sublime.style'; -import { VS2015Style } from '@/components/css/highlight/vs2015.style'; -import { HighlightTheme } from '@@types/engine/store/canvas.state'; - -export { hljs } from '@/core/config/highlight.config'; - -export type HighlightKey = - | 'sql' - | 'csharp' - | 'java' - | 'kotlin' - | 'typescript' - | 'graphql' - | 'scala'; - -export type LanguageMap = Record; - -export type HighlightThemeMap = Record; - -export const languageMap: LanguageMap = { - GraphQL: 'graphql', - 'C#': 'csharp', - Java: 'java', - Kotlin: 'kotlin', - TypeScript: 'typescript', - JPA: 'java', - Scala: 'scala', -}; - -export const highlightThemeMap: HighlightThemeMap = { - AtomOneDark: AtomOneDarkStyle, - AtomOneLight: AtomOneLightStyle, - MonokaiSublime: MonokaiSublimeStyle, - GithubGist: GithubGistStyle, - VS2015: VS2015Style, -}; diff --git a/packages-legacy/vuerd/src/core/history.ts b/packages-legacy/vuerd/src/core/history.ts deleted file mode 100644 index 0c7761ab..00000000 --- a/packages-legacy/vuerd/src/core/history.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { Command, CommandKey, History } from '@/internal-types/history'; - -export function createHistory(effect: () => void): History { - let commands: Command[] = []; - let index = -1; - let limit = 0; - let run = false; - - const hasUndo = () => index !== -1; - const hasRedo = () => index < commands.length - 1; - const setLimit = (newLimit: number) => (limit = newLimit); - - const execute = (command: Command, key: CommandKey) => { - run = true; - command[key](); - run = false; - }; - - const push = (command: Command) => { - if (run) return; - - commands.splice(index + 1, commands.length - index); - commands.push(command); - - if (limit !== 0 && commands.length > limit) { - commands = commands.slice(commands.length - limit, commands.length); - } - - index = commands.length - 1; - effect(); - }; - - const undo = () => { - if (!hasUndo()) return; - - const command = commands[index]; - execute(command, 'undo'); - index--; - effect(); - }; - - const redo = () => { - if (!hasRedo()) return; - - const command = commands[index + 1]; - execute(command, 'redo'); - index++; - effect(); - }; - - const clear = () => { - const prevSize = commands.length; - commands = []; - index = -1; - prevSize > 0 && effect(); - }; - - return { - hasUndo, - hasRedo, - push, - undo, - redo, - clear, - setLimit, - }; -} diff --git a/packages-legacy/vuerd/src/core/hooks/ERDEditorDrawer.hook.ts b/packages-legacy/vuerd/src/core/hooks/ERDEditorDrawer.hook.ts deleted file mode 100644 index 738619ee..00000000 --- a/packages-legacy/vuerd/src/core/hooks/ERDEditorDrawer.hook.ts +++ /dev/null @@ -1,114 +0,0 @@ -import { beforeMount, html, observable } from '@vuerd/lit-observable'; - -import { Bus } from '@/core/helper/eventBus.helper'; -import { - drawEndRelationship, - filterActiveEnd, - findActiveEnd, -} from '@/engine/command/editor.cmd.helper'; -import { selectEndMemo } from '@/engine/command/memo.cmd.helper'; -import { - selectEndTable$, - selectTable$, -} from '@/engine/command/table.cmd.helper'; -import { IERDEditorContext } from '@/internal-types/ERDEditorContext'; -import { ERDEditorProps } from '@@types/components/ERDEditorElement'; - -import { useUnmounted } from './unmounted.hook'; - -interface DrawerState { - help: boolean; - setting: boolean; - tableProperties: boolean; - tree: boolean; -} - -type DrawerKey = keyof DrawerState; - -export function useERDEditorDrawer( - props: ERDEditorProps, - { eventBus, store }: IERDEditorContext -) { - const state = observable({ - help: false, - setting: false, - tableProperties: false, - tree: false, - }); - const { unmountedGroup } = useUnmounted(); - let tableId = ''; - - const createOpen = (key: DrawerKey) => () => { - Object.keys(state).forEach(stateKey => { - if (stateKey === key) return; - - state[stateKey as DrawerKey] = false; - }); - - store.dispatch(findActiveEnd(), filterActiveEnd()); - state[key] = !state[key]; - }; - const createClose = (key: DrawerKey) => () => (state[key] = false); - - const openHelp = createOpen('help'); - const closeHelp = createClose('help'); - const openSetting = createOpen('setting'); - const closeSetting = createClose('setting'); - const openTableProperties = createOpen('tableProperties'); - const closeTableProperties = createClose('tableProperties'); - - const closeDrawer = () => { - if (state.tableProperties && tableId) { - store.dispatch(selectTable$(store, false, tableId)); - } - - closeHelp(); - closeSetting(); - closeTableProperties(); - tableId = ''; - }; - - beforeMount(() => - unmountedGroup.push( - eventBus.on(Bus.Drawer.openTableProperties).subscribe(data => { - store.dispatch( - selectEndMemo(), - drawEndRelationship(), - selectEndTable$() - ); - tableId = data.tableId; - openTableProperties(); - }), - eventBus.on(Bus.Drawer.close).subscribe(closeDrawer) - ) - ); - - return { - drawerTpl: () => html` - - - - - `, - closeDrawer, - openHelp, - closeHelp, - openSetting, - closeSetting, - openTableProperties, - closeTableProperties, - }; -} diff --git a/packages-legacy/vuerd/src/core/hooks/ERDEditorElement.hook.ts b/packages-legacy/vuerd/src/core/hooks/ERDEditorElement.hook.ts deleted file mode 100644 index 44b5ea06..00000000 --- a/packages-legacy/vuerd/src/core/hooks/ERDEditorElement.hook.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { beforeMount } from '@vuerd/lit-observable'; -import { DDLParser } from '@vuerd/sql-ddl-parser'; - -import { createJsonStringify } from '@/core/file'; -import { isArray, isString } from '@/core/helper'; -import { Bus } from '@/core/helper/eventBus.helper'; -import { useUnmounted } from '@/core/hooks/unmounted.hook'; -import { loadKeymap } from '@/core/keymap'; -import { createJson } from '@/core/parser/ParserToJson'; -import { createDDL } from '@/core/sql/ddl'; -import { loadTheme } from '@/core/theme'; -import { - clear, - initLoadJson$, - loadJson$, -} from '@/engine/command/editor.cmd.helper'; -import { sortTable } from '@/engine/command/table.cmd.helper'; -import { databaseList } from '@/engine/store/canvas.state'; -import { IERDEditorContext } from '@/internal-types/ERDEditorContext'; -import { ERDEditorElement } from '@@types/components/ERDEditorElement'; -import { ExtensionConfig } from '@@types/core/extension'; -import { Keymap } from '@@types/core/keymap'; -import { PanelConfig } from '@@types/core/panel'; -import { Theme } from '@@types/core/theme'; -import { Database } from '@@types/engine/store/canvas.state'; - -export function useERDEditorElement( - context: IERDEditorContext, - ctx: ERDEditorElement, - { - setFocus, - }: { - setFocus: () => void; - } -) { - const { store, helper, eventBus } = context; - const { editorState } = store; - const { unmountedGroup } = useUnmounted(); - - Object.defineProperty(ctx, 'value', { - get() { - const { store } = context; - return createJsonStringify(store, 2); - }, - set(json: string) { - const { store } = context; - isString(json) && json.trim() - ? store.dispatch(loadJson$(json)) - : store.dispatch(clear()); - }, - }); - - ctx.focus = () => { - helper.focus(); - setFocus(); - }; - - ctx.blur = () => { - helper.blur(); - setFocus(); - }; - - ctx.clear = () => { - store.dispatch(clear()); - }; - - ctx.initLoadJson = (json: string) => { - if (isString(json) && json.trim()) { - store.dispatch(initLoadJson$(json)); - } - }; - - ctx.loadSQLDDL = (sql: string) => { - if (isString(sql) && sql.trim()) { - const statements = DDLParser(sql); - // @ts-ignore - const json = createJson(statements, helper, store.canvasState.database); - store.dispatch(loadJson$(json), sortTable()); - } - }; - - ctx.getSQLDDL = (database?: Database) => { - return database && databaseList.includes(database) - ? createDDL(store, database) - : createDDL(store); - }; - - ctx.setTheme = (theme: Partial) => loadTheme(context.theme, theme); - - ctx.setKeymap = (keymap: Partial) => - loadKeymap(context.keymap, keymap); - - ctx.extension = (config: Partial) => { - isArray(config.panels) && - editorState.panels.push(...(config.panels as PanelConfig[])); - isArray(config.excludePanel) && - (editorState.excludePanel = config.excludePanel as RegExp[]); - }; - - const emitChange = () => - editorState.readonly || ctx.dispatchEvent(new CustomEvent('change')); - - beforeMount(() => - unmountedGroup.push( - store.change$.subscribe(emitChange), - eventBus.on(Bus.Editor.change).subscribe(emitChange) - ) - ); -} diff --git a/packages-legacy/vuerd/src/core/hooks/ERDEditorGhost.hook.ts b/packages-legacy/vuerd/src/core/hooks/ERDEditorGhost.hook.ts deleted file mode 100644 index fad83f0d..00000000 --- a/packages-legacy/vuerd/src/core/hooks/ERDEditorGhost.hook.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { html, mounted, observable, query } from '@vuerd/lit-observable'; -import { fromEvent, merge } from 'rxjs'; -import { throttleTime } from 'rxjs/operators'; - -import { IERDEditorContext } from '@/internal-types/ERDEditorContext'; - -import { useUnmounted } from './unmounted.hook'; - -const FOCUS_TIME = 50; - -export function useERDEditorGhost( - { helper, globalEvent: { moveStart$ } }: IERDEditorContext, - ctx: HTMLElement -) { - const editorRef = query('.vuerd-editor'); - const ghostTextRef = query('.vuerd-ghost-text-helper'); - const ghostInputRef = query('.vuerd-ghost-focus-helper'); - const state = observable({ focus: false }); - const { unmountedGroup } = useUnmounted(); - let timerId: any = null; - - const setFocus = () => { - state.focus = document.activeElement === ctx && document.hasFocus(); - }; - - const onFocus = () => { - setTimeout(() => { - document.activeElement !== ctx && helper.focus(); - setFocus(); - }, 0); - }; - - mounted(() => { - helper.setGhostText(ghostTextRef.value); - helper.setGhostInput(ghostInputRef.value); - helper.focus(); - setFocus(); - - timerId = setInterval(() => setFocus(), 200); - - unmountedGroup.push( - merge( - fromEvent(editorRef.value, 'mousedown'), - fromEvent(editorRef.value, 'touchstart'), - fromEvent(editorRef.value, 'vuerd-contextmenu-mousedown'), - fromEvent(editorRef.value, 'vuerd-contextmenu-touchstart'), - fromEvent(editorRef.value, 'vuerd-input-blur') - ) - .pipe(throttleTime(FOCUS_TIME)) - .subscribe(onFocus), - moveStart$ - .pipe(throttleTime(FOCUS_TIME)) - .subscribe(() => setTimeout(setFocus, 0)), - () => clearInterval(timerId) - ); - }); - - return { - ghostTpl: html` - - - `, - ghostState: state, - setFocus, - onFocus, - }; -} diff --git a/packages-legacy/vuerd/src/core/hooks/ERDKeymap.hook.ts b/packages-legacy/vuerd/src/core/hooks/ERDKeymap.hook.ts deleted file mode 100644 index d63d60d3..00000000 --- a/packages-legacy/vuerd/src/core/hooks/ERDKeymap.hook.ts +++ /dev/null @@ -1,240 +0,0 @@ -import { beforeMount } from '@vuerd/lit-observable'; - -import { relationshipMenus } from '@/core/contextmenu/drawRelationship.menu'; -import { Bus } from '@/core/helper/eventBus.helper'; -import { keymapMatchAndStop } from '@/core/keymap'; -import { movementZoomCanvas$ } from '@/engine/command/canvas.cmd.helper.gen'; -import { - addColumn$, - changeColumnAutoIncrement, - changeColumnNotNull, - changeColumnPrimaryKey$, - changeColumnUnique, - removeColumn$, -} from '@/engine/command/column.cmd.helper'; -import { - copyColumn, - drawEndRelationship, - drawStartRelationship$, - editTable, - editTableEnd, - findActive$, - findActiveEnd, - focusMoveTable, - focusMoveTable$, - pasteColumn$, - selectAllColumn, -} from '@/engine/command/editor.cmd.helper'; -import { - addMemo$, - removeMemo, - selectAllMemo, - selectEndMemo, -} from '@/engine/command/memo.cmd.helper'; -import { - addTable$, - removeTable, - selectAllTable, - selectEndTable$, - selectTable$, -} from '@/engine/command/table.cmd.helper'; -import { moveKeys } from '@/engine/store/editor.state'; -import { BatchCommand } from '@@types/engine/command'; -import { FocusType, MoveKey } from '@@types/engine/store/editor.state'; - -import { useContext } from './context.hook'; -import { useUnmounted } from './unmounted.hook'; - -const changeColumnMap = { - columnNotNull: changeColumnNotNull, - columnUnique: changeColumnUnique, - columnAutoIncrement: changeColumnAutoIncrement, -}; - -const changeColumnKeys: FocusType[] = [ - 'columnNotNull', - 'columnUnique', - 'columnAutoIncrement', -]; - -export function useERDKeymap(ctx: HTMLElement) { - const contextRef = useContext(ctx); - const { unmountedGroup } = useUnmounted(); - - const onKeydown = (event: KeyboardEvent) => { - const { keymap, store, eventBus } = contextRef.value; - const { tableState, memoState, editorState } = store; - - if (!editorState.focusTable || !editorState.focusTable.edit) { - keymapMatchAndStop(event, keymap.addTable) && - store.dispatch(addTable$(store)); - - keymapMatchAndStop(event, keymap.addColumn) && - tableState.tables.some(table => table.ui.active) && - store.dispatch(addColumn$(store)); - - keymapMatchAndStop(event, keymap.addMemo) && - store.dispatch(addMemo$(store)); - - keymapMatchAndStop(event, keymap.selectAllTable) && - store.dispatch(selectAllTable(), selectAllMemo()); - - relationshipMenus.forEach( - relationshipMenu => - keymapMatchAndStop( - event, - (keymap as any)[relationshipMenu.keymapName] - ) && - store.dispatch( - drawStartRelationship$(store, relationshipMenu.relationshipType) - ) - ); - - if ( - keymapMatchAndStop(event, keymap.removeTable) && - (store.tableState.tables.some(table => table.ui.active) || - store.memoState.memos.some(memo => memo.ui.active)) - ) { - const commands: BatchCommand = []; - - tableState.tables.some(table => table.ui.active) && - commands.push(removeTable(store)); - - memoState.memos.some(memo => memo.ui.active) && - commands.push(removeMemo(store)); - - store.dispatch(...commands); - } - - if ( - keymapMatchAndStop(event, keymap.tableProperties) && - store.tableState.tables.some(table => table.ui.active) - ) { - const table = store.tableState.tables.find(table => table.ui.active); - if (!table) return; - - eventBus.emit(Bus.Drawer.openTableProperties, { - tableId: editorState.focusTable - ? editorState.focusTable.table.id - : table.id, - }); - } - - if (keymapMatchAndStop(event, keymap.find)) { - if (editorState.findActive) { - store.dispatch(findActiveEnd()); - } else { - store.dispatch(findActive$()); - } - - eventBus.emit(Bus.Drawer.close); - } - - keymapMatchAndStop(event, keymap.zoomIn) && - store.dispatch(movementZoomCanvas$(store, 0.1)); - keymapMatchAndStop(event, keymap.zoomOut) && - store.dispatch(movementZoomCanvas$(store, -0.1)); - } - - if (editorState.focusTable && !editorState.focusTable.edit) { - keymapMatchAndStop(event, keymap.selectAllColumn) && - store.dispatch(selectAllColumn()); - - editorState.focusTable.selectColumnIds.length && - keymapMatchAndStop(event, keymap.removeColumn) && - store.dispatch( - removeColumn$( - store, - editorState.focusTable.table.id, - editorState.focusTable.selectColumnIds - ) - ); - - editorState.focusTable.selectColumnIds.length && - keymapMatchAndStop(event, keymap.copyColumn) && - store.dispatch( - copyColumn( - editorState.focusTable.table.id, - editorState.focusTable.selectColumnIds - ) - ); - - keymapMatchAndStop(event, keymap.pasteColumn) && - store.dispatch(pasteColumn$(store)); - - editorState.focusTable.columnId && - keymapMatchAndStop(event, keymap.primaryKey) && - store.dispatch( - changeColumnPrimaryKey$( - store, - editorState.focusTable.table.id, - editorState.focusTable.columnId - ) - ); - - event.key !== 'Tab' && - moveKeys.includes(event.key as MoveKey) && - store.dispatch(focusMoveTable(event.key as MoveKey, event.shiftKey)); - } - - if (editorState.focusTable && event.key === 'Tab') { - event.preventDefault(); - store.dispatch( - focusMoveTable$(store, event.key as MoveKey, event.shiftKey) - ); - - setTimeout(() => { - if ( - !editorState.focusTable || - changeColumnKeys.includes(editorState.focusTable.focusType) - ) - return; - - store.dispatch(editTable()); - }, 0); - } - - if (editorState.focusTable && keymapMatchAndStop(event, keymap.edit)) { - const focusTable = editorState.focusTable; - - if (focusTable.edit) { - store.dispatch(editTableEnd()); - } else if ( - focusTable.columnId && - changeColumnKeys.includes(focusTable.focusType) - ) { - const changeColumn = (changeColumnMap as any)[focusTable.focusType]; - - store.dispatch( - changeColumn(store, focusTable.table.id, focusTable.columnId) - ); - } else { - store.dispatch(editTable()); - } - } - - if (keymapMatchAndStop(event, keymap.stop)) { - const commands: BatchCommand = [drawEndRelationship(), findActiveEnd()]; - - if (editorState.findActive) { - const table = store.tableState.tables.find(table => table.ui.active); - - if (table) { - commands.push(selectTable$(store, false, table.id)); - } - } else { - commands.push(selectEndMemo(), selectEndTable$()); - } - - store.dispatch(...commands); - } - - keymapMatchAndStop(event, keymap.undo) && store.undo(); - keymapMatchAndStop(event, keymap.redo) && store.redo(); - }; - - beforeMount(() => { - const { helper } = contextRef.value; - unmountedGroup.push(helper.keydown$.subscribe(onKeydown)); - }); -} diff --git a/packages-legacy/vuerd/src/core/hooks/alert.hook.ts b/packages-legacy/vuerd/src/core/hooks/alert.hook.ts deleted file mode 100644 index 35bc2ea9..00000000 --- a/packages-legacy/vuerd/src/core/hooks/alert.hook.ts +++ /dev/null @@ -1,43 +0,0 @@ -import '@/components/Alert'; - -import { html, observable } from '@vuerd/lit-observable'; - -export type showAlertDef = (message: string) => void; - -export function useAlert() { - var timer: ReturnType | null = null; - - const state = observable({ - message: '', - visible: false, - }); - - const showAlert: showAlertDef = (message: string): void => { - state.message = message; - state.visible = true; - - if (timer) clearTimeout(timer); - timer = setTimeout(() => { - state.visible = false; - timer = null; - }, 6000); - }; - - const onClose = (): void => { - state.visible = false; - }; - - return { - showAlert, - alertTpl() { - return state.visible - ? html` - - ` - : null; - }, - }; -} diff --git a/packages-legacy/vuerd/src/core/hooks/colorPicker.hook.ts b/packages-legacy/vuerd/src/core/hooks/colorPicker.hook.ts deleted file mode 100644 index dede7c7f..00000000 --- a/packages-legacy/vuerd/src/core/hooks/colorPicker.hook.ts +++ /dev/null @@ -1,101 +0,0 @@ -// @ts-ignore -import ColorPickerUI from '@easylogic/colorpicker'; -import { createPopper } from '@popperjs/core'; -import { - beforeMount, - closestElement, - mounted, - query, - unmounted, -} from '@vuerd/lit-observable'; - -import { Bus } from '@/core/helper/eventBus.helper'; -import { useContext } from '@/core/hooks/context.hook'; -import { useUnmounted } from '@/core/hooks/unmounted.hook'; - -interface Props { - color: string; - id?: string; -} - -export function useColorPicker( - selector: string, - ctx: HTMLElement, - props: Props -) { - const elementRef = query(selector); - const { unmountedGroup } = useUnmounted(); - const contextRef = useContext(ctx); - - let colorPicker: any = null; - let instance: any = null; - let toggle = false; - let container: Element | null = null; - - const onShow = (id?: string) => { - if (id && id !== props.id) return; - - colorPicker = ColorPickerUI.create({ - type: 'sketch', - position: 'inline', - container, - color: props.color || '', - onChange: (color: string) => { - props.color = color; - }, - }); - const tooltip = colorPicker.$root.el; - - instance = createPopper(elementRef.value, tooltip, { - placement: 'bottom', - modifiers: [ - { - name: 'offset', - options: { - offset: [0, 10], - }, - }, - ], - }); - - tooltip.setAttribute('data-show', ''); - toggle = true; - }; - - const onHide = () => { - instance?.destroy(); - colorPicker?.$root.el.remove(); - instance = null; - colorPicker = null; - toggle = false; - }; - - const onClick = () => { - const { eventBus } = contextRef.value; - - if (toggle) { - onHide(); - } else { - eventBus.emit(Bus.ColorPicker.close); - onShow(); - } - }; - - beforeMount(() => { - const { eventBus } = contextRef.value; - unmountedGroup.push( - eventBus.on(Bus.ColorPicker.close).subscribe(onHide), - eventBus.on(Bus.ColorPicker.open).subscribe(onShow) - ); - }); - - mounted(() => { - container = closestElement('.vuerd-editor', ctx); - elementRef.value.addEventListener('click', onClick); - }); - - unmounted(() => { - elementRef.value?.removeEventListener('click', onClick); - onHide(); - }); -} diff --git a/packages-legacy/vuerd/src/core/hooks/columnHint.hook.ts b/packages-legacy/vuerd/src/core/hooks/columnHint.hook.ts deleted file mode 100644 index 9ff7ebdb..00000000 --- a/packages-legacy/vuerd/src/core/hooks/columnHint.hook.ts +++ /dev/null @@ -1,178 +0,0 @@ -import { beforeMount, observable, query, watch } from '@vuerd/lit-observable'; -import * as R from 'ramda'; - -import { IndexAddColumnProps } from '@/components/drawer/tablePropertiesDrawer/indexes/IndexAddColumn'; -import { getData } from '@/core/helper'; -import { lastCursorFocus, markToHTML } from '@/core/helper/dom.helper'; -import { addIndexColumn } from '@/engine/command/index.cmd.helper'; - -import { useContext } from './context.hook'; -import { useUnmounted } from './unmounted.hook'; - -export interface Hint { - id: string; - name: string; - html: string; - active: boolean; -} - -export interface HintState { - value: string; - hints: Hint[]; - isFilter: boolean; - focus: boolean; -} - -const findIndex = R.findIndex(R.propEq('active', true)); - -export function useColumnHint(props: IndexAddColumnProps, ctx: HTMLElement) { - const contextRef = useContext(ctx); - const { unmountedGroup } = useUnmounted(); - const state = observable({ - value: '', - hints: [], - isFilter: true, - focus: false, - }); - const inputRef = query('input'); - - const getActiveIndex = () => findIndex(state.hints); - - const setHints = () => { - if (!state.isFilter) return; - - const columns = props.table.columns; - - state.hints = - state.value.trim().length < 1 - ? [] - : columns - .filter( - column => - column.name.toLowerCase().indexOf(state.value.toLowerCase()) !== - -1 - ) - .map(column => { - return { - id: column.id, - name: column.name, - html: markToHTML( - 'vuerd-index-add-column-hint-mark', - column.name, - state.value - ), - active: false, - }; - }); - }; - - const activeEnd = () => { - state.hints.forEach(hint => (hint.active = false)); - }; - - const onSelectHint = (hint: Hint) => { - const { store } = contextRef.value; - const { indexes } = store.tableState; - const columns = props.table.columns; - activeEnd(); - state.isFilter = false; - lastCursorFocus(inputRef.value); - const indexModel = getData(indexes, props.indexId); - const targetColumn = getData(columns, hint.id); - if ( - targetColumn && - indexModel && - !indexModel.columns.some(column => column.id === targetColumn.id) - ) { - store.dispatch(addIndexColumn(props.indexId, targetColumn.id)); - } - }; - - const onArrowUp = (event: KeyboardEvent) => { - state.hints.length !== 0 && event.preventDefault(); - const index = getActiveIndex(); - - if (index > 0) { - state.hints[index].active = false; - state.hints[index - 1].active = true; - } else if (state.hints.length) { - index === 0 && (state.hints[index].active = false); - state.hints[state.hints.length - 1].active = true; - } - }; - - const onArrowDown = (event: KeyboardEvent) => { - state.hints.length !== 0 && event.preventDefault(); - const index = getActiveIndex(); - - if (index !== -1 && index !== state.hints.length - 1) { - state.hints[index].active = false; - state.hints[index + 1].active = true; - } else if (state.hints.length) { - index === state.hints.length - 1 && (state.hints[index].active = false); - state.hints[0].active = true; - } - }; - - const onArrowLeft = () => activeEnd(); - - const onArrowRight = (event: KeyboardEvent) => { - const index = getActiveIndex(); - if (index < 0) return; - event.preventDefault(); - const { store } = contextRef.value; - const { indexes } = store.tableState; - const columns = props.table.columns; - state.isFilter = false; - const indexModel = getData(indexes, props.indexId); - const targetColumn = getData(columns, state.hints[index].id); - if ( - targetColumn && - indexModel && - !indexModel.columns.some(column => column.id === targetColumn.id) - ) { - store.dispatch(addIndexColumn(props.indexId, targetColumn.id)); - } - }; - - const arrowMap = { - ArrowUp: onArrowUp, - ArrowDown: onArrowDown, - ArrowLeft: onArrowLeft, - ArrowRight: onArrowRight, - }; - - const onKeydown = (event: KeyboardEvent) => { - switch (event.key) { - case 'ArrowUp': - case 'ArrowDown': - case 'ArrowLeft': - case 'ArrowRight': - arrowMap[event.key](event); - break; - } - }; - - const onInput = (event: Event) => { - const input = event.target as HTMLInputElement; - state.value = input.value; - state.isFilter = true; - }; - - beforeMount(() => - unmountedGroup.push( - watch(state, propName => { - if (propName !== 'value') return; - - setHints(); - }) - ) - ); - - return { - hintState: state, - onSelectHint, - onKeydown, - onInput, - }; -} diff --git a/packages-legacy/vuerd/src/core/hooks/context.hook.ts b/packages-legacy/vuerd/src/core/hooks/context.hook.ts deleted file mode 100644 index 88a9c9d7..00000000 --- a/packages-legacy/vuerd/src/core/hooks/context.hook.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { beforeMount } from '@vuerd/lit-observable'; - -import { getVuerdContext } from '@/components/ERDEditorProvider'; -import { IERDEditorContext } from '@/internal-types/ERDEditorContext'; - -export function useContext(ctx: Element) { - const ref: { value: IERDEditorContext | null } = { value: null }; - - beforeMount(() => (ref.value = getVuerdContext(ctx))); - - return ref as { value: IERDEditorContext }; -} diff --git a/packages-legacy/vuerd/src/core/hooks/dataTypeHint.hook.ts b/packages-legacy/vuerd/src/core/hooks/dataTypeHint.hook.ts deleted file mode 100644 index 7e4020de..00000000 --- a/packages-legacy/vuerd/src/core/hooks/dataTypeHint.hook.ts +++ /dev/null @@ -1,181 +0,0 @@ -import { beforeMount, observable, watch } from '@vuerd/lit-observable'; -import * as R from 'ramda'; - -import { ColumnDataTypeProps } from '@/components/editor/table/column/ColumnDataType'; -import { markToHTML } from '@/core/helper/dom.helper'; -import { databaseHints } from '@/core/sql/dataType'; -import { changeColumnDataType } from '@/engine/command/column.cmd.helper'; - -import { useContext } from './context.hook'; -import { useUnmounted } from './unmounted.hook'; - -export interface Hint { - name: string; - html: string; - active: boolean; -} - -export interface HintState { - hints: Hint[]; - isFilter: boolean; -} - -const findIndex = R.findIndex(R.propEq('active', true)); - -export function useDataTypeHint(props: ColumnDataTypeProps, ctx: HTMLElement) { - const contextRef = useContext(ctx); - const { unmountedGroup } = useUnmounted(); - const state = observable({ - hints: [], - isFilter: true, - }); - - const getDataTypeHints = () => { - const { - store: { canvasState }, - } = contextRef.value; - const databaseHint = databaseHints.find( - databaseHint => databaseHint.database === canvasState.database - ); - return databaseHint ? databaseHint.dataTypeHints : []; - }; - - const getActiveIndex = () => findIndex(state.hints); - - const setHints = () => { - if (!state.isFilter) return; - - const dataTypeHints = getDataTypeHints(); - - state.hints = - props.value.trim() === '' - ? dataTypeHints.map(dataTypeHint => ({ - name: dataTypeHint.name, - html: dataTypeHint.name, - active: false, - })) - : dataTypeHints - .filter( - dataTypeHint => - dataTypeHint.name - .toLowerCase() - .indexOf(props.value.toLowerCase()) !== -1 - ) - .map(dataTypeHint => { - return { - name: dataTypeHint.name, - html: markToHTML( - 'vuerd-data-type-hint-mark', - dataTypeHint.name, - props.value - ), - active: false, - }; - }); - }; - - const activeEnd = () => { - state.hints.forEach(hint => (hint.active = false)); - }; - - const onSelectHint = (hint: Hint) => { - const { store, helper } = contextRef.value; - activeEnd(); - state.isFilter = false; - store.dispatch( - changeColumnDataType(helper, props.tableId, props.columnId, hint.name) - ); - }; - - const onArrowUp = (event: KeyboardEvent) => { - state.hints.length !== 0 && event.preventDefault(); - const index = getActiveIndex(); - - if (index > 0) { - state.hints[index].active = false; - state.hints[index - 1].active = true; - } else if (state.hints.length) { - index === 0 && (state.hints[index].active = false); - state.hints[state.hints.length - 1].active = true; - } - }; - - const onArrowDown = (event: KeyboardEvent) => { - state.hints.length !== 0 && event.preventDefault(); - const index = getActiveIndex(); - - if (index !== -1 && index !== state.hints.length - 1) { - state.hints[index].active = false; - state.hints[index + 1].active = true; - } else if (state.hints.length) { - index === state.hints.length - 1 && (state.hints[index].active = false); - state.hints[0].active = true; - } - }; - - const onArrowLeft = () => activeEnd(); - - const onArrowRight = (event: KeyboardEvent) => { - const index = getActiveIndex(); - if (index < 0) return; - event.preventDefault(); - const { store, helper } = contextRef.value; - - state.isFilter = false; - store.dispatch( - changeColumnDataType( - helper, - props.tableId, - props.columnId, - state.hints[index].name - ) - ); - }; - - const arrowMap = { - ArrowUp: onArrowUp, - ArrowDown: onArrowDown, - ArrowLeft: onArrowLeft, - ArrowRight: onArrowRight, - }; - - const onKeydown = (event: KeyboardEvent) => { - switch (event.key) { - case 'ArrowUp': - case 'ArrowDown': - case 'ArrowLeft': - case 'ArrowRight': - arrowMap[event.key](event); - break; - } - }; - - const onInput = () => (state.isFilter = true); - - beforeMount(() => { - const { - store: { canvasState }, - } = contextRef.value; - - unmountedGroup.push( - watch(props, propName => { - if (propName !== 'value') return; - - setHints(); - }), - watch(canvasState, propName => { - if (propName !== 'database') return; - - state.isFilter = true; - setHints(); - }) - ); - }); - - return { - hintState: state, - onSelectHint, - onKeydown, - onInput, - }; -} diff --git a/packages-legacy/vuerd/src/core/hooks/drawerAnimation.hook.ts b/packages-legacy/vuerd/src/core/hooks/drawerAnimation.hook.ts deleted file mode 100644 index 7729d035..00000000 --- a/packages-legacy/vuerd/src/core/hooks/drawerAnimation.hook.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { Easing, Tween } from '@tweenjs/tween.js'; -import { observable } from '@vuerd/lit-observable'; - -import { DrawerProps } from '@/components/drawer/Drawer'; - -const MAX_WIDTH = 800; -const ANIMATION_TIME = 300; - -export function useDrawerAnimation(props: DrawerProps, ctx: HTMLElement) { - const state = observable({ right: 0, visible: false }); - let openTween: Tween<{ right: number }> | null = null; - let closeTween: Tween<{ right: number }> | null = null; - - const getWidth = () => { - let width = props.width / 2; - if (width > MAX_WIDTH) { - width = MAX_WIDTH; - } - return width; - }; - - const onOpen = () => { - if (openTween) return; - - closeTween?.stop(); - closeTween = null; - state.visible = true; - state.right = state.right === 0 ? -1 * getWidth() : state.right; - openTween = new Tween(state) - .to({ right: 0 }, ANIMATION_TIME) - .easing(Easing.Quadratic.Out) - .onComplete(() => (openTween = null)) - .start(); - }; - - const onClose = () => { - if (closeTween) return; - - openTween?.stop(); - openTween = null; - closeTween = new Tween(state) - .to({ right: -1 * getWidth() }, ANIMATION_TIME) - .easing(Easing.Quadratic.In) - .onComplete(() => { - closeTween = null; - state.visible = false; - ctx.dispatchEvent(new CustomEvent('close')); - }) - .start(); - }; - - return { - drawerState: state, - getWidth, - onOpen, - onClose, - }; -} diff --git a/packages-legacy/vuerd/src/core/hooks/flipAnimation.hook.ts b/packages-legacy/vuerd/src/core/hooks/flipAnimation.hook.ts deleted file mode 100644 index d9a3fb28..00000000 --- a/packages-legacy/vuerd/src/core/hooks/flipAnimation.hook.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { beforeUpdate, updated } from '@vuerd/lit-observable'; - -import { FlipAnimation } from '@/core/flipAnimation'; - -export function useFlipAnimation( - ctx: HTMLElement, - selector: string, - animationName: string -) { - const flipAnimation = new FlipAnimation( - ctx.shadowRoot ? ctx.shadowRoot : ctx, - selector, - animationName - ); - - beforeUpdate(() => flipAnimation.snapshot()); - updated(() => flipAnimation.play()); -} diff --git a/packages-legacy/vuerd/src/core/hooks/hasTable.hook.ts b/packages-legacy/vuerd/src/core/hooks/hasTable.hook.ts deleted file mode 100644 index 01aa3d6d..00000000 --- a/packages-legacy/vuerd/src/core/hooks/hasTable.hook.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { TableProps } from '@/components/editor/table/Table'; -import { useContext } from '@/core/hooks/context.hook'; -import { - isDraggableColumn, - isEdit, - isFocus, - isSelectColumn, -} from '@/engine/store/helper/editor.helper'; -import { FocusType } from '@@types/engine/store/editor.state'; - -export function useHasTable(props: TableProps, ctx: HTMLElement) { - const contextRef = useContext(ctx); - - const getFocusTable = () => contextRef.value.store.editorState.focusTable; - - const hasFocusState = (focusType: FocusType, columnId?: string) => - isFocus(getFocusTable(), focusType, props.table.id, columnId); - - const hasEdit = (focusType: FocusType, columnId?: string) => - isEdit(getFocusTable(), focusType, props.table.id, columnId); - - const hasSelectColumn = (columnId: string) => - isSelectColumn(getFocusTable(), props.table.id, columnId); - - const hasDraggableColumn = (columnId: string) => { - const draggableColumn = contextRef.value.store.editorState.draggableColumn; - return isDraggableColumn(draggableColumn, props.table.id, columnId); - }; - - return { - hasFocusState, - hasEdit, - hasSelectColumn, - hasDraggableColumn, - }; -} diff --git a/packages-legacy/vuerd/src/core/hooks/menubarPanels.hook.ts b/packages-legacy/vuerd/src/core/hooks/menubarPanels.hook.ts deleted file mode 100644 index 2ae2c67b..00000000 --- a/packages-legacy/vuerd/src/core/hooks/menubarPanels.hook.ts +++ /dev/null @@ -1,88 +0,0 @@ -import { html } from '@vuerd/lit-observable'; -import { classMap } from 'lit-html/directives/class-map'; - -import { isRegExp } from '@/core/helper'; -import { contextPanelConfig } from '@/core/panel'; -import { changeCanvasType } from '@/engine/command/canvas.cmd.helper'; -import { IIcon } from '@/internal-types/panel'; -import { PanelConfig } from '@@types/core/panel'; - -import { useContext } from './context.hook'; - -interface Menu { - title: string; - canvasType: string; - icon: IIcon; -} - -const ERD = { - title: 'Entity Relationship Diagram', - canvasType: 'ERD', - icon: { - prefix: 'fas', - name: 'project-diagram', - size: 18, - }, -}; - -const panelToMenu = (panel: PanelConfig): Menu => ({ - title: panel.name ?? '', - canvasType: panel.key, - icon: Object.assign( - { - size: 18, - }, - panel.icon - ), -}); - -export function useMenubarPanels(ctx: HTMLElement) { - const contextRef = useContext(ctx); - - const onChangeCanvasType = (canvasType: string) => { - const { store } = contextRef.value; - - if (canvasType === store.canvasState.canvasType) return; - - store.dispatch(changeCanvasType(canvasType)); - }; - - const getMenus = () => { - const { editorState } = contextRef.value.store; - const menus: Menu[] = [ERD]; - [...contextPanelConfig.panels, ...editorState.panels] - .filter( - panel => - !isRegExp(contextPanelConfig.exclude, panel.key) && - !isRegExp(editorState.excludePanel, panel.key) - ) - .forEach(panel => menus.push(panelToMenu(panel))); - - return menus; - }; - - return { - panelMenusTpl: () => { - const { canvasState } = contextRef.value.store; - - return getMenus().map( - menu => html` -
    onChangeCanvasType(menu.canvasType)} - > - -
    - ` - ); - }, - }; -} diff --git a/packages-legacy/vuerd/src/core/hooks/mousePosition.hook.ts b/packages-legacy/vuerd/src/core/hooks/mousePosition.hook.ts deleted file mode 100644 index e9354de9..00000000 --- a/packages-legacy/vuerd/src/core/hooks/mousePosition.hook.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { query } from '@vuerd/lit-observable'; - -export function useMousePosition(selector: string) { - const elementRef = query(selector); - - const getPosition = (event: WheelEvent | MouseEvent) => { - const { x, y } = elementRef.value.getBoundingClientRect(); - - return { - x: event.clientX - x, - y: event.clientY - y, - }; - }; - - return { - getPosition, - }; -} diff --git a/packages-legacy/vuerd/src/core/hooks/panelView.hook.ts b/packages-legacy/vuerd/src/core/hooks/panelView.hook.ts deleted file mode 100644 index d835d607..00000000 --- a/packages-legacy/vuerd/src/core/hooks/panelView.hook.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { - beforeFirstUpdate, - beforeUpdate, - html, - observable, -} from '@vuerd/lit-observable'; - -import { isRegExp } from '@/core/helper'; -import { SIZE_MENUBAR_HEIGHT } from '@/core/layout'; -import { contextPanelConfig } from '@/core/panel'; -import { IERDEditorContext } from '@/internal-types/ERDEditorContext'; -import { ERDEditorProps } from '@@types/components/ERDEditorElement'; - -export function usePanelView( - props: ERDEditorProps, - { store: { editorState, canvasState } }: IERDEditorContext -) { - const state = observable({ count: 0 }); - const data = { - isPanel: false, - canvasType: '', - }; - - const hasPanel = () => { - const canvasType = canvasState.canvasType; - const panels = [...contextPanelConfig.panels, ...editorState.panels].filter( - panel => - !isRegExp(contextPanelConfig.exclude, panel.key) && - !isRegExp(editorState.excludePanel, panel.key) - ); - return ( - canvasType !== 'ERD' && panels.some(panel => panel.key === canvasType) - ); - }; - - const renderPanel = () => - queueMicrotask(() => { - data.isPanel = true; - state.count++; - }); - - beforeFirstUpdate(() => state.count); - beforeUpdate(() => state.count); - - return { - hasPanel, - panelTpl() { - const width = props.width; - const height = props.height - SIZE_MENUBAR_HEIGHT; - const canvasType = canvasState.canvasType; - const panels = [ - ...contextPanelConfig.panels, - ...editorState.panels, - ].filter( - panel => - !isRegExp(contextPanelConfig.exclude, panel.key) && - !isRegExp(editorState.excludePanel, panel.key) - ); - const isPanel = hasPanel(); - - data.isPanel = isPanel; - if (isPanel && data.canvasType != canvasType) { - data.isPanel = false; - renderPanel(); - } - data.canvasType = canvasType; - - return data.isPanel - ? html` - panel.key === canvasType)} - > - ` - : null; - }, - }; -} diff --git a/packages-legacy/vuerd/src/core/hooks/prompt.hook.ts b/packages-legacy/vuerd/src/core/hooks/prompt.hook.ts deleted file mode 100644 index d810f593..00000000 --- a/packages-legacy/vuerd/src/core/hooks/prompt.hook.ts +++ /dev/null @@ -1,42 +0,0 @@ -import '@/components/Prompt'; - -import { html, observable } from '@vuerd/lit-observable'; - -export type showPromptDef = ( - prompt: string, - callback: (reply: string) => void -) => void; - -export function usePrompt() { - const state = observable({ - prompt: '', - callback: (reply: string) => {}, - visible: false, - }); - - const showPrompt: showPromptDef = ( - prompt: string, - callback: (reply: string) => void - ): void => { - state.prompt = prompt; - state.callback = callback; - state.visible = true; - }; - - return { - showPrompt, - promptTpl() { - return state.visible - ? html` - { - state.visible = false; - state.callback(message); - }} - > - ` - : null; - }, - }; -} diff --git a/packages-legacy/vuerd/src/core/hooks/renderTrigger.hook.ts b/packages-legacy/vuerd/src/core/hooks/renderTrigger.hook.ts deleted file mode 100644 index 54861853..00000000 --- a/packages-legacy/vuerd/src/core/hooks/renderTrigger.hook.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { - beforeFirstUpdate, - beforeUpdate, - observable, -} from '@vuerd/lit-observable'; - -export function useRenderTrigger() { - const state = observable({ count: 0 }); - - const renderTrigger = () => state.count++; - - beforeFirstUpdate(() => state.count); - beforeUpdate(() => state.count); - - return { - renderTrigger, - }; -} diff --git a/packages-legacy/vuerd/src/core/hooks/resizeMemo.hook.ts b/packages-legacy/vuerd/src/core/hooks/resizeMemo.hook.ts deleted file mode 100644 index b4903aa6..00000000 --- a/packages-legacy/vuerd/src/core/hooks/resizeMemo.hook.ts +++ /dev/null @@ -1,169 +0,0 @@ -import { MemoProps } from '@/components/editor/memo/Memo'; -import { SIZE_MEMO_HEIGHT, SIZE_MEMO_WIDTH } from '@/core/layout'; -import { resizeMemo } from '@/engine/command/memo.cmd.helper'; -import { Move } from '@/internal-types/event.helper'; - -import { useContext } from './context.hook'; - -type Direction = 'left' | 'right' | 'top' | 'bottom'; -export type Position = - | 'left' - | 'right' - | 'top' - | 'bottom' - | 'lt' - | 'rt' - | 'lb' - | 'rb'; - -interface ResizeMemo { - change: boolean; - top: number; - left: number; - width: number; - height: number; -} - -export function useResizeMemo(props: MemoProps, ctx: Element) { - const contextRef = useContext(ctx); - - let clientX = 0; - let clientY = 0; - - const resizeWidth = ( - { movementX, x }: Move, - direction: Direction - ): ResizeMemo => { - const ui = Object.assign({ change: false }, props.memo.ui); - const mouseDirection: Direction = movementX < 0 ? 'left' : 'right'; - const width = - direction === 'left' ? ui.width - movementX : ui.width + movementX; - - switch (mouseDirection) { - case 'left': - if (SIZE_MEMO_WIDTH < width && x < clientX) { - direction === 'left' && (ui.left += movementX); - clientX += movementX; - ui.width = width; - ui.change = true; - } - break; - case 'right': - if (SIZE_MEMO_WIDTH < width && x > clientX) { - direction === 'left' && (ui.left += movementX); - clientX += movementX; - ui.width = width; - ui.change = true; - } - break; - } - return ui; - }; - - const resizeHeight = ( - { movementY, y }: Move, - direction: Direction - ): ResizeMemo => { - const ui = Object.assign({ change: false }, props.memo.ui); - const mouseDirection: Direction = movementY < 0 ? 'top' : 'bottom'; - const height = - direction === 'top' ? ui.height - movementY : ui.height + movementY; - - switch (mouseDirection) { - case 'top': - if (SIZE_MEMO_HEIGHT < height && y < clientY) { - direction === 'top' && (ui.top += movementY); - clientY += movementY; - ui.height = height; - ui.change = true; - } - break; - case 'bottom': - if (SIZE_MEMO_HEIGHT < height && y > clientY) { - direction === 'top' && (ui.top += movementY); - clientY += movementY; - ui.height = height; - ui.change = true; - } - break; - } - return ui; - }; - - const onMousemoveSash = (move: Move, position: Position) => { - move.event.preventDefault(); - const { store } = contextRef.value; - let verticalUI: ResizeMemo | null = null; - let horizontalUI: ResizeMemo | null = null; - - switch (position) { - case 'left': - case 'right': - verticalUI = resizeWidth(move, position); - break; - case 'top': - case 'bottom': - horizontalUI = resizeHeight(move, position); - break; - case 'lt': - verticalUI = resizeWidth(move, 'left'); - horizontalUI = resizeHeight(move, 'top'); - break; - case 'rt': - verticalUI = resizeWidth(move, 'right'); - horizontalUI = resizeHeight(move, 'top'); - break; - case 'lb': - verticalUI = resizeWidth(move, 'left'); - horizontalUI = resizeHeight(move, 'bottom'); - break; - case 'rb': - verticalUI = resizeWidth(move, 'right'); - horizontalUI = resizeHeight(move, 'bottom'); - break; - } - - if (verticalUI?.change && horizontalUI?.change) { - store.dispatch( - resizeMemo( - props.memo.id, - horizontalUI.top, - verticalUI.left, - verticalUI.width, - horizontalUI.height - ) - ); - } else if (verticalUI?.change) { - store.dispatch( - resizeMemo( - props.memo.id, - verticalUI.top, - verticalUI.left, - verticalUI.width, - verticalUI.height - ) - ); - } else if (horizontalUI?.change) { - store.dispatch( - resizeMemo( - props.memo.id, - horizontalUI.top, - horizontalUI.left, - horizontalUI.width, - horizontalUI.height - ) - ); - } - }; - - const onMousedownSash = (event: MouseEvent, position: Position) => { - const { drag$ } = contextRef.value.globalEvent; - clientX = event.clientX; - clientY = event.clientY; - drag$.subscribe(move => onMousemoveSash(move, position)); - }; - - return { - onMousedownSash, - }; -} diff --git a/packages-legacy/vuerd/src/core/hooks/tableHint.hook.ts b/packages-legacy/vuerd/src/core/hooks/tableHint.hook.ts deleted file mode 100644 index ed3b03df..00000000 --- a/packages-legacy/vuerd/src/core/hooks/tableHint.hook.ts +++ /dev/null @@ -1,195 +0,0 @@ -import { beforeMount, observable, query, watch } from '@vuerd/lit-observable'; -import * as R from 'ramda'; - -import { getData } from '@/core/helper'; -import { lastCursorFocus, markToHTML } from '@/core/helper/dom.helper'; -import { SIZE_START_X, SIZE_START_Y } from '@/core/layout'; -import { moveCanvas } from '@/engine/command/canvas.cmd.helper'; -import { selectTable } from '@/engine/command/table.cmd.helper'; -import { Table } from '@@types/engine/store/table.state'; - -import { useContext } from './context.hook'; -import { useUnmounted } from './unmounted.hook'; - -export interface Hint { - id: string; - name: string; - html: string; - active: boolean; -} - -export interface HintState { - value: string; - hints: Hint[]; - isFilter: boolean; - focus: boolean; -} - -const findIndex = R.findIndex(R.propEq('active', true)); - -export function useTableHint(ctx: HTMLElement) { - const contextRef = useContext(ctx); - const { unmountedGroup } = useUnmounted(); - const state = observable({ - value: '', - hints: [], - isFilter: true, - focus: false, - }); - const inputRef = query('input'); - - const getActiveIndex = () => findIndex(state.hints); - - const setHints = () => { - if (!state.isFilter) return; - - const { - store: { - tableState: { tables }, - }, - } = contextRef.value; - - state.hints = - state.value.trim().length < 1 - ? [] - : tables - .filter( - table => - table.name.toLowerCase().indexOf(state.value.toLowerCase()) !== - -1 - ) - .map(column => { - return { - id: column.id, - name: column.name, - html: markToHTML( - 'vuerd-find-table-hint-mark', - column.name, - state.value - ), - active: false, - }; - }); - }; - - const activeEnd = () => { - state.hints.forEach(hint => (hint.active = false)); - }; - - const moveCanvasFindTable = (table: Table) => { - const { store } = contextRef.value; - - store.dispatch( - moveCanvas( - (table.ui.top - SIZE_START_Y) * -1, - (table.ui.left - SIZE_START_X) * -1 - ), - selectTable(store, false, table.id) - ); - }; - - const onSelectHint = (hint: Hint) => { - activeEnd(); - state.isFilter = false; - lastCursorFocus(inputRef.value); - - const { tables } = contextRef.value.store.tableState; - const table = getData(tables, hint.id); - - if (table) { - moveCanvasFindTable(table); - } - }; - - const onArrowUp = (event: KeyboardEvent) => { - state.hints.length !== 0 && event.preventDefault(); - const index = getActiveIndex(); - - if (index > 0) { - state.hints[index].active = false; - state.hints[index - 1].active = true; - } else if (state.hints.length) { - index === 0 && (state.hints[index].active = false); - state.hints[state.hints.length - 1].active = true; - } - }; - - const onArrowDown = (event: KeyboardEvent) => { - state.hints.length !== 0 && event.preventDefault(); - const index = getActiveIndex(); - - if (index !== -1 && index !== state.hints.length - 1) { - state.hints[index].active = false; - state.hints[index + 1].active = true; - } else if (state.hints.length) { - index === state.hints.length - 1 && (state.hints[index].active = false); - state.hints[0].active = true; - } - }; - - const onArrowLeft = () => activeEnd(); - - const onArrowRight = (event: KeyboardEvent) => { - const index = getActiveIndex(); - if (index < 0) return; - event.preventDefault(); - state.isFilter = false; - - const { tables } = contextRef.value.store.tableState; - const table = getData(tables, state.hints[index].id); - - if (table) { - moveCanvasFindTable(table); - } - }; - - const arrowMap = { - ArrowUp: onArrowUp, - ArrowDown: onArrowDown, - ArrowLeft: onArrowLeft, - ArrowRight: onArrowRight, - }; - - const onKeydown = (event: KeyboardEvent) => { - switch (event.key) { - case 'ArrowUp': - case 'ArrowDown': - case 'ArrowLeft': - case 'ArrowRight': - arrowMap[event.key](event); - break; - case 'Enter': - arrowMap.ArrowRight(event); - break; - } - }; - - const onInput = (event: Event) => { - const input = event.target as HTMLInputElement; - state.value = input.value; - state.isFilter = true; - }; - - const initHints = () => { - state.isFilter = true; - setHints(); - }; - - beforeMount(() => - unmountedGroup.push( - watch(state, propName => { - if (propName !== 'value') return; - - setHints(); - }) - ) - ); - - return { - hintState: state, - onSelectHint, - onKeydown, - onInput, - initHints, - }; -} diff --git a/packages-legacy/vuerd/src/core/hooks/tooltip.hook.ts b/packages-legacy/vuerd/src/core/hooks/tooltip.hook.ts deleted file mode 100644 index c82519f3..00000000 --- a/packages-legacy/vuerd/src/core/hooks/tooltip.hook.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { - closestElement, - mounted, - queryAll, - unmounted, -} from '@vuerd/lit-observable'; -import tippy, { - createSingleton, - CreateSingletonInstance, - Instance, - Props, -} from 'tippy.js'; - -import { flat, isArray } from '@/core/helper'; - -export function useTooltip( - selectors: string[], - ctx: HTMLElement, - options: Partial = {} -) { - const elementsRefs = selectors.map(selector => - queryAll>(selector) - ); - let singleton: CreateSingletonInstance | null = null; - let instances: Instance[] | null = null; - - const createTooltip = () => { - const root = closestElement('.vuerd-editor', ctx); - const elements = [ - ...flat( - elementsRefs.map(ref => ref.value).filter(elements => isArray(elements)) - ), - ]; - - instances = tippy(elements, { - appendTo: root ?? 'parent', - trigger: 'manual', - }); - - singleton = createSingleton( - instances, - Object.assign( - { - appendTo: root ?? 'parent', - delay: [500, 100], - moveTransition: 'transform 0.4s cubic-bezier(0.22, 1, 0.36, 1)', - }, - options - ) - ); - }; - - const destroyTooltip = () => { - singleton?.destroy(); - instances?.forEach(instance => instance.destroy()); - singleton = null; - instances = null; - }; - - const resetTooltip = () => { - destroyTooltip(); - createTooltip(); - }; - - mounted(createTooltip); - unmounted(destroyTooltip); - - return { - resetTooltip, - }; -} diff --git a/packages-legacy/vuerd/src/core/hooks/unmounted.hook.ts b/packages-legacy/vuerd/src/core/hooks/unmounted.hook.ts deleted file mode 100644 index cbf5a780..00000000 --- a/packages-legacy/vuerd/src/core/hooks/unmounted.hook.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { unmounted } from '@vuerd/lit-observable'; -import { Subscription } from 'rxjs'; - -import { isFunction } from '@/core/helper'; - -type Callback = () => void; - -export function useUnmounted() { - const unmountedGroup: Array = []; - - unmounted(() => { - while (unmountedGroup.length) { - const f = unmountedGroup.pop() as Callback | Subscription; - isFunction(f) ? (f as Callback)() : (f as Subscription).unsubscribe(); - } - }); - - return { - unmountedGroup, - }; -} diff --git a/packages-legacy/vuerd/src/core/icon.ts b/packages-legacy/vuerd/src/core/icon.ts deleted file mode 100644 index a05f5a5c..00000000 --- a/packages-legacy/vuerd/src/core/icon.ts +++ /dev/null @@ -1,132 +0,0 @@ -import { - faCheck, - faChevronRight, - faCode, - faCog, - faColumns, - faEye, - faEyeSlash, - faFileCode, - faFileExport, - faFileImage, - faFileImport, - faFilter, - faKey, - faList, - faMousePointer, - faPalette, - faPlus, - faProjectDiagram, - faQuestion, - faRedoAlt, - faSearch, - faStickyNote, - faSyncAlt, - faTable, - faTimes, - faTree, - faUndoAlt, -} from '@fortawesome/free-solid-svg-icons'; -import { - mdiAtom, - mdiCodeBrackets, - mdiCodeJson, - mdiDatabase, - mdiDatabaseExport, - mdiDatabaseImport, - mdiDotsVertical, - mdiFormatLetterCase, - mdiPalette, - mdiTableCog, - mdiVectorLine, - mdiXml, -} from '@mdi/js'; -import { observable } from '@vuerd/lit-observable'; - -import { IconDefinition } from '@@types/core/icon'; -import { RelationshipType } from '@@types/engine/store/relationship.state'; - -export const createMDI = (name: string, icon: string): IconDefinition => ({ - prefix: 'mdi', - iconName: name, - icon: [24, 24, , , icon], -}); - -const icons = [ - faKey, - faTable, - faStickyNote, - faPlus, - faTimes, - faChevronRight, - faCheck, - faList, - faRedoAlt, - faUndoAlt, - faSearch, - faFilter, - faQuestion, - faProjectDiagram, - faFileImage, - faFileExport, - faEye, - faEyeSlash, - faFileImport, - faFileCode, - faCog, - faMousePointer, - faCode, - faSyncAlt, - faTree, - faPalette, - faColumns, - createMDI('code-json', mdiCodeJson), - createMDI('database', mdiDatabase), - createMDI('database-import', mdiDatabaseImport), - createMDI('database-export', mdiDatabaseExport), - createMDI('palette', mdiPalette), - createMDI('format-letter-case', mdiFormatLetterCase), - createMDI('table-cog', mdiTableCog), - createMDI('code-brackets', mdiCodeBrackets), - createMDI('xml', mdiXml), - createMDI('dots-vertical', mdiDotsVertical), - createMDI('vector-line', mdiVectorLine), - createMDI('atom', mdiAtom), -] as IconDefinition[]; - -const iconMap: Record = observable({}); - -const setIconMap = (newIcons: IconDefinition[]) => - newIcons.reduce>((acc, cur) => { - acc[`${cur.prefix}-${cur.iconName}`] = cur; - return acc; - }, iconMap); - -setIconMap(icons); - -export const getIcon = ( - prefix: string, - iconName: string -): IconDefinition | undefined => iconMap[`${prefix}-${iconName}`]; - -export const addIcon = (...newIcons: IconDefinition[]) => { - icons.push(...newIcons); - setIconMap(newIcons); -}; - -const base64Icons: Record = { - ZeroOneN: - 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Q0RFRDI1RjI0ODY0MTFFN0JEQTA4NTA5QjY4NEI4MzAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Q0RFRDI1RjM0ODY0MTFFN0JEQTA4NTA5QjY4NEI4MzAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCQTE2QzQzRDQ4NjQxMUU3QkRBMDg1MDlCNjg0QjgzMCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCQTE2QzQzRTQ4NjQxMUU3QkRBMDg1MDlCNjg0QjgzMCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PnTT5ywAAAJMSURBVHja7Fc9T2JBFB3MZq1IqLSgsRM6G6TcAmK7VNoRK4yBxE6XP/CsNxBohc6G5w+AoCU0aEWpBfAD4AeM55AZMjvvg2dClsRwkxOeb+7ce+6dmTPPmJRSbNP2xJZtR2DrBH6k0+ndEkSxBHAD9AGpMAJc4Lfh1zDGn4GLgHglNb8kqANhSKVSTiaTkY7jyMFgILWNx2PZ7XZluVyW8BkBJWA1PhwO+f7ZinUO9DmH8xl3XfIGnefzuQwzBsvlcjKIAH4PWAh9zCLq9Xp48mq16knGwASTmkaShULBQ0B1ZlSr1TyFtFqtwOS3xWLxH2eyZctUUOKVFTGRtslk4iHAODZZ/k2yLDKIwLsZjJ2gM3Bo+V0wieu6vsvCCu0ucS+RPHC1vId8kp+YrWRwvHsIWaosO7Nun3DDqn1yD+zr+RQiz3WYz+dXz6iCP82g84lKB4jxF0Rv0G7P+Gw2E6ha9Ho9/eoPsRJAucbUzl53Wi79NmwU25QSJuLx+ObugkqlInD+l8+oTsAny1aHxDlKJpOBgzhBot1ui8Vi4R3cwCY8jbIJeap4JOHvAmd6flDQj+l06ncMD/yktdPp+AoW59nEeBqUnjjAzyACd7YQUcnUxL7CyJZWk7QWIs6xdcLQg6cvSzETEl+Q4iyXkAWZBHU3/stlpLvKpaWkm0sb5Tq+19exqfvWdbyU1gjX8SGLIlnKNJ9jPGYRP0gugQLwS717Az6AB+DJ+CC5Vs8vSkEffeIdK79mVALf95swtvvXbEdg2wQ+BRgAvLABcxKvek4AAAAASUVORK5CYII=', - ZeroOne: - 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QkExNkM0M0I0ODY0MTFFN0JEQTA4NTA5QjY4NEI4MzAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QkExNkM0M0M0ODY0MTFFN0JEQTA4NTA5QjY4NEI4MzAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCQTE2QzQzOTQ4NjQxMUU3QkRBMDg1MDlCNjg0QjgzMCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCQTE2QzQzQTQ4NjQxMUU3QkRBMDg1MDlCNjg0QjgzMCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PomEhhsAAAKSSURBVHja7FexbhpBED0ipFRI7ixBQwlV0nCUWKJIydEkFSRpHCGQ0iXgBqfBbQrAShXzA4BLJJCdEip3UDoSUFvwAZv30B5a1ncHBiSk2CONdrU3O/N2dt6w+IQQxiHllXFgeQFwcAD+aDT6zDPwBNsjaAoaVtbuoNcee46hOSi5/hd6pRv41vUBXJFJJ4FA4FMymTRCodDy22g0Mnq93gOml8Ph8Mxhb71QKOQYYzqdGq1W6zPsVkHwo5tGIpFvsVhMNJtN4Saz2UwUi0UB299QU9u/tBsMBrS51WN4BrcsS4zHY7GJEKQOYmsAMIzz5GrwyWQiSqWSwDXQkchms6LRaCwyoIPYB4Ar3NdyM+cEhPXv0LC0OYH+ZJZUEASG9fdbA2AAnlI9uQwedwF7waC29Pt92t5sCoCN6FzSZCmsdluq1aoxn8+LqN6+E0uwXoKPKNiQ4j7TNA0w5gRLZRdWraz7QZOyTkU6saXb7XL4taZH3IGSKRs4asVA5s5Vg2AwaOTz+QSmCZ2GniLTuI6uFpyLbcRfq9UeHYcZwL0v5mw8SFsYqb73yMBb9Tel3W4zA4s5gC1G2Yget2Lc8Q99MZ1Ol20AmLMOTjE9c7nT1xgstW4qlQrrhn7LNgACgp8/mN56dkKk84hVb1OLo+T+qUv66wi4QlnSeNc+cAG0y81IvyDfZaf7CE1Av5JubE6qSLDxXQEc05ib9HbLvp/JZARPTc6rQjDMyL5+Cz7wKkDDjapZD74zAOngHbRN57wGJyFAmfa6w/71ndCruyBoB0MHlf4FxZUDJd+o7wF8Z7Vfy/dAx8HFJWies1ng+CABqqe8oMIOL6KHDV5ElPt9APj/HqW+l/+Gzx7APwEGACfjkeXK58xsAAAAAElFTkSuQmCC', - ZeroN: - 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDc5MkNFMEM0ODY0MTFFN0JEQTA4NTA5QjY4NEI4MzAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDc5MkNFMEQ0ODY0MTFFN0JEQTA4NTA5QjY4NEI4MzAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NzkyQ0UwQTQ4NjQxMUU3QkRBMDg1MDlCNjg0QjgzMCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NzkyQ0UwQjQ4NjQxMUU3QkRBMDg1MDlCNjg0QjgzMCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PpR0ImIAAALlSURBVHja7Fe/jxJBGF0MyVUk2HgJFJ6NQqUNWEoCkfKWxusozxBI7Eiw8ardKy/hxyVWQqcF8AdA9Eqg8DqwuwJI7Aj8AeN7OEuGhd09tCBRvuTLzA4z37z53rxvF58QQtunPdD2bAcA/mg0+p9nYMf5Qfhz5fnmbwH47iND0PQaTS4QCOiRSGQ1PhgMZmja8OvhcNi/z4aIdc5Ycs1HjQCcHJu9hH/KZrOi0+kIu83nc9FsNkUymRSYZ3jEegqv6bousLHI5/NcU3RbkIa3W62W8DICKZVKDFhziFWMxWKiXq+v1ozHY8Exv0OajpmmSqVyitOtxrvdrjYajZZ90KGlUiktFAot+4ZhcDiHtTOc8L1KHWLoAKiFw+FVrOl0+rvjgNjA5msnJA3MCPxC+hX8DhuvzZN0kDqDfTt1nCPT/w1+tm3zIFPDidYC8oZxc8vcI6ZdBUHKMPadY1YMy0gBY6uxfHhIMBEKAw+BvIUMLB+q1aqG/iXSWnKg6wjND9DzmHQsFgttMploqlpIm2maWr/fv8bj5zUZMrV2KWYymaXTyDMCPgGAOxdpXRQKhQ9I7cZv2FSzDrPVvG44TiLc5CWp0Mnrn5gfxWQDFG8r02nddpwwiAzMXOrLC6d3CtNPWhxLMSjYKKcYe0XZ0OLxOOVHOX1xA6Bybj8MKWg0GjdOFNjTeUL5WNbr9UjDV3jcIf3nVIllrHK8V2xVYxypphr8kbXeidO2ql+WWwnijQrU0rq6mdT4W/gta4ldiuVy2ZJi0Q1AmoHVxTyBDL50/m7XOkETvIxxTL1zHpSwBoJlWBa2mtvNNpky+wmcjJvIk6Vtcc5Y9QjeHovxveRlbiun9tLKVFul1S2W+kJiywx4fg9AXmm+UDD5lIqg3HizwftSYgBHmV1izhXGfnrEeobmHeLkuB7rIj4n+WyTGjwh2xP4rXR+kMx2/BBKyLWzXQD8mx+lvsNfswOAfQP4JcAAK/At0HQvwB8AAAAASUVORK5CYII=', - OneOnly: - 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUJCNTBCRDA0ODY0MTFFN0JEQTA4NTA5QjY4NEI4MzAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QkExNkM0MzQ0ODY0MTFFN0JEQTA4NTA5QjY4NEI4MzAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQkI1MEJDRTQ4NjQxMUU3QkRBMDg1MDlCNjg0QjgzMCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQkI1MEJDRjQ4NjQxMUU3QkRBMDg1MDlCNjg0QjgzMCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pur5d4QAAAE1SURBVHjaYvz//z/DQAImhgEGow4YcAewaGpqjvAQoJI5CUAsD2VPB+JXULY4EGcCMSivPwTiBRgOuH79OkU2A6MwITAwcL6UlBSYP3XqVHGgmVlQufqcnJxMUFnz7NkzhvXr1zMA5VAdAZKkBGtoaBw4derUfxgA8v8jycHFQWpAatH1j2bDUQeACqIGaDahGgClfmLlWIDZpJ7SKhmWBUEgOzsbRDVgUwOUswcy7ZHFGf8PcIOABVhwUGwIsCBiQCqIUOSgIQIviNABI7BwaKDQfodFixbZm5qawuIYRDVC5ephJe3p06cZ4uLiDgKZB0ZLwtGCaNg1SBYAs5c9MJExIDVI4GxgtgQ1SBiePn3KgK1BAsqG1GoRKSA54CVaiwgEHtDSAUM3DTCO9g1HvAMAAgwAvvwYPnW1JuQAAAAASUVORK5CYII=', - OneN: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QkExNkM0Mzc0ODY0MTFFN0JEQTA4NTA5QjY4NEI4MzAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QkExNkM0Mzg0ODY0MTFFN0JEQTA4NTA5QjY4NEI4MzAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCQTE2QzQzNTQ4NjQxMUU3QkRBMDg1MDlCNjg0QjgzMCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCQTE2QzQzNjQ4NjQxMUU3QkRBMDg1MDlCNjg0QjgzMCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pt+BFx8AAAIISURBVHja7Fc9TwJBEF0MLYkdBgot4QdwLSaQSAmNdkCrR61CI9Ud1oCUIB0NYElBtJU/QIkmQKIVgcpqfXPekQNBYu7WM4FJJvs1x87Ovnk7uDjnzEnZYw7LzgHHHXAFAoHtjoDbpt9JQw/1fgX6vsH+CDohdVnlgWAwmE4kElWfz6eNy+Vypd/vX6yx9aK58fv959PplM1mswNGDlhRYOip1+txQzDma+wuoYNSqaTZUYvxnXAHMJag1WQyyYfDITdLJBLhbpEAQ8gVj8eThTBc03weoWeqqrLRaFQREgHoKfQRG3Pc9cKpW60WD4VCZKPS90IiAJA1FEVhkiTN58bjMaNIwNl7yhQA9VlLQ4Qpj9a2J1GWZZbJZBbmkBkMoHtFt6pPxbBvTGNCHZWWNqX7xalXriHkdNfrqZg7XBC4KTxWhSJgENGy0Onb7faPj1He4v7H9Xo9DGRrg1QqpaWY2SEAj+Vyua+0W6ZpQWn4YjCeWYrFIq0NiBWN70U54CWajcfj3LxGQmxIrEjsSCwplIrRP6N1cMI3Qmo2mxohCa0HQDYNNCfASAG8z7rd7nwtGo3+TUECJz6gWfB/DAT1QCAlViSgYq5gBxXXQDZhQrqpIFnlSAdNBwx4BWwUsPk15m7tqgnTepVjOPC2wX5fr4hse4xqv7Sf/J+yfPffcOsd+BRgAOvawAWTC+PMAAAAAElFTkSuQmCC', - One: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUJCNTBCQ0M0ODY0MTFFN0JEQTA4NTA5QjY4NEI4MzAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUJCNTBCQ0Q0ODY0MTFFN0JEQTA4NTA5QjY4NEI4MzAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQkI1MEJDQTQ4NjQxMUU3QkRBMDg1MDlCNjg0QjgzMCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQkI1MEJDQjQ4NjQxMUU3QkRBMDg1MDlCNjg0QjgzMCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PnOhfCQAAADcSURBVHjaYvz//z/DQAImhgEGow4YcAewaGpqjvAQoJI5CUAsD2VPB+JXxGpkpLQcAEZhQmBg4HwpKSkwf+rUqdOvX7+eRbQBIAdQgjU0NA6cOnXqPwwA+f9J0T+aDUcdACqIGkBpkZqGAs2sJzobTpky5T+lWRGYDRmkpaXBbKB5JOll/D/ADQIWYMFBsSGgEEAqiEgLAWDB0UCh/Q6LFi2yNzU1hcU/iGocLQlHC6IR1SBZsH79entgQmRAapCQlA2p1SJSQHLAS3o3yRYM2TTAONo3HPEOAAgwAJh583IRUllDAAAAAElFTkSuQmCC', - N: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDc5MkNFMDg0ODY0MTFFN0JEQTA4NTA5QjY4NEI4MzAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDc5MkNFMDk0ODY0MTFFN0JEQTA4NTA5QjY4NEI4MzAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozNDQwRjc3NTQ4M0MxMUU3QkRBMDg1MDlCNjg0QjgzMCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozNDQwRjc3NjQ4M0MxMUU3QkRBMDg1MDlCNjg0QjgzMCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkbQDKwAAAGjSURBVHja7Jcxb4JQEMefLl272cjSUbYu0g+gSVemdpPZwKzRRSf4AGg70k8AfACTdqx+ibYJLp2MfoDr/wg0vJp2Al6TeskFeQ+4e/fufvdsEJFQKU2hWE4OKHeg0el0TlugQi6h5+kW1MkBXddbuMw0TRvu93txOBwumjUaH+Hy4jjOcLVaCcuyeHgmOAJVKpLcgAaDwYCSJKGi9Hq9yo273W6XwjCUDCP8NJlMCPP3VRm+hT6xETZWlCiKiJ3CvJfmX8mGW7wqDu16vZYMb7db4m3A/CP0On+HQTRHMpRVCiaS7Mq2bWlwuVyKxWLxjp/BEQkxQWWVYr/fF9/JipALrP5nFJPiA0EagbI+BsAI0zSlMV59HMe/NqN5mYg1DMPyPE+02+2vwc1mI6bTKTvzgNsP6Y0KSnAMfctySxLf97kKXqGj/PmqOJCWI7aDsHrJCaZhVo4BU7JqEt5Bn13XPQIS05GBVEcvOGPqsTE0IQnHtThQcOQGGnP4mYpZL/Bqc6CYpFkvGOcoVsEfPg3tVB7Jdn/nWH76b/jvHfgUYADeZNmzPgOYQQAAAABJRU5ErkJggg==', -}; - -export const getBase64Icon = (relationshipType: RelationshipType) => - base64Icons[relationshipType]; diff --git a/packages-legacy/vuerd/src/core/index.ts b/packages-legacy/vuerd/src/core/index.ts deleted file mode 100644 index d359066f..00000000 --- a/packages-legacy/vuerd/src/core/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export { extension } from './extension'; -export { setExportFileCallback, setImportFileCallback } from './file'; -export { addIcon } from './icon'; -export { observable, observer, watch } from '@vuerd/lit-observable'; diff --git a/packages-legacy/vuerd/src/core/keymap.ts b/packages-legacy/vuerd/src/core/keymap.ts deleted file mode 100644 index 6510ef3c..00000000 --- a/packages-legacy/vuerd/src/core/keymap.ts +++ /dev/null @@ -1,335 +0,0 @@ -import { isArray } from '@/core/helper'; -import { - Keymap, - KeymapKey, - KeymapOption, - MultipleKey, -} from '@@types/core/keymap'; - -export const createKeymap = (): Keymap => ({ - edit: [ - { - key: 'Enter', - }, - ], - stop: [ - { - key: 'Escape', - }, - ], - find: [ - { - ctrlKey: true, - key: 'F', - preventDefault: true, - stopPropagation: true, - }, - { - metaKey: true, - key: 'F', - preventDefault: true, - stopPropagation: true, - }, - ], - undo: [ - { - ctrlKey: true, - key: 'Z', - preventDefault: true, - }, - { - metaKey: true, - key: 'Z', - preventDefault: true, - }, - ], - redo: [ - { - ctrlKey: true, - shiftKey: true, - key: 'Z', - preventDefault: true, - }, - { - metaKey: true, - shiftKey: true, - key: 'Z', - preventDefault: true, - }, - ], - addTable: [ - { - altKey: true, - key: 'N', - preventDefault: true, - }, - ], - addColumn: [ - { - altKey: true, - key: 'Enter', - preventDefault: true, - }, - ], - addMemo: [ - { - altKey: true, - key: 'M', - preventDefault: true, - }, - ], - removeTable: [ - { - ctrlKey: true, - key: 'Delete', - preventDefault: true, - }, - { - ctrlKey: true, - key: 'Backspace', - preventDefault: true, - }, - { - metaKey: true, - key: 'Delete', - preventDefault: true, - }, - { - metaKey: true, - key: 'Backspace', - preventDefault: true, - }, - ], - removeColumn: [ - { - altKey: true, - key: 'Delete', - preventDefault: true, - }, - { - altKey: true, - key: 'Backspace', - preventDefault: true, - }, - ], - primaryKey: [ - { - altKey: true, - key: 'K', - preventDefault: true, - }, - ], - selectAllTable: [ - { - ctrlKey: true, - altKey: true, - key: 'A', - preventDefault: true, - }, - { - metaKey: true, - altKey: true, - key: 'A', - preventDefault: true, - }, - ], - selectAllColumn: [ - { - altKey: true, - key: 'A', - preventDefault: true, - }, - ], - copyColumn: [ - { - ctrlKey: true, - key: 'C', - }, - { - metaKey: true, - key: 'C', - }, - ], - pasteColumn: [ - { - ctrlKey: true, - key: 'V', - }, - { - metaKey: true, - key: 'V', - }, - ], - relationshipZeroOne: [ - { - ctrlKey: true, - altKey: true, - key: '1', - preventDefault: true, - }, - { - metaKey: true, - altKey: true, - key: '1', - preventDefault: true, - }, - ], - relationshipZeroN: [ - { - ctrlKey: true, - altKey: true, - key: '2', - preventDefault: true, - }, - { - metaKey: true, - altKey: true, - key: '2', - preventDefault: true, - }, - ], - relationshipOneOnly: [ - { - ctrlKey: true, - altKey: true, - key: '3', - preventDefault: true, - }, - { - metaKey: true, - altKey: true, - key: '3', - preventDefault: true, - }, - ], - relationshipOneN: [ - { - ctrlKey: true, - altKey: true, - key: '4', - preventDefault: true, - }, - { - metaKey: true, - altKey: true, - key: '4', - preventDefault: true, - }, - ], - tableProperties: [ - { - altKey: true, - key: 'Space', - preventDefault: true, - }, - { - ctrlKey: true, - key: 'Space', - preventDefault: true, - }, - ], - zoomIn: [ - { - ctrlKey: true, - key: 'Equal', - preventDefault: true, - stopPropagation: true, - }, - { - metaKey: true, - key: 'Equal', - preventDefault: true, - stopPropagation: true, - }, - ], - zoomOut: [ - { - ctrlKey: true, - key: 'Minus', - preventDefault: true, - stopPropagation: true, - }, - { - metaKey: true, - key: 'Minus', - preventDefault: true, - stopPropagation: true, - }, - ], -}); - -const multipleKeys: MultipleKey[] = [ - 'altKey', - 'metaKey', - 'ctrlKey', - 'shiftKey', -]; - -const keyEquals = (event: KeyboardEvent, key: string) => - event.key.toUpperCase() === key.toUpperCase() || - event.code.toUpperCase() === key.toUpperCase() || - event.code.toUpperCase() === `Key${key}`.toUpperCase() || - event.code.toUpperCase() === `Digit${key}`.toUpperCase(); - -export const getKeymap = ( - event: KeyboardEvent, - keymapOptions: KeymapOption[] -) => - keymapOptions.find(keymapOption => { - const isMultipleKey = multipleKeys.every( - multipleKey => !!keymapOption[multipleKey] === event[multipleKey] - ); - - return keymapOption.key - ? isMultipleKey && keyEquals(event, keymapOption.key) - : isMultipleKey; - }); - -export const keymapMatch = ( - event: KeyboardEvent, - keymapOptions: KeymapOption[] -) => !!getKeymap(event, keymapOptions); - -export function keymapMatchAndStop( - event: KeyboardEvent, - keymapOptions: KeymapOption[] -): boolean { - const current = getKeymap(event, keymapOptions); - - current?.preventDefault && event.preventDefault(); - current?.stopPropagation && event.stopPropagation(); - - return !!current; -} - -export function keymapOptionToString(keymapOption?: KeymapOption): string { - if (!keymapOption) return ''; - - const result: string[] = []; - - if (keymapOption.metaKey) { - result.push('Cmd'); - } - if (keymapOption.ctrlKey) { - result.push('Ctrl'); - } - if (keymapOption.altKey) { - result.push('Alt'); - } - if (keymapOption.shiftKey) { - result.push('Shift'); - } - if (keymapOption.key) { - result.push(keymapOption.key); - } - - return result.join(' + '); -} - -export const keymapOptionsToString = (keymapOptions: KeymapOption[]) => - keymapOptions.map(option => keymapOptionToString(option)).join(', '); - -export const loadKeymap = (keymap: Keymap, newKeymap: Partial) => - (Object.keys(keymap) as KeymapKey[]) - .filter(key => isArray(newKeymap[key])) - .forEach(key => (keymap[key] = newKeymap[key] as KeymapOption[])); diff --git a/packages-legacy/vuerd/src/core/layout.ts b/packages-legacy/vuerd/src/core/layout.ts deleted file mode 100644 index 4a55163c..00000000 --- a/packages-legacy/vuerd/src/core/layout.ts +++ /dev/null @@ -1,36 +0,0 @@ -const RATIO_WIDTH = 16; -const RATIO_HEIGHT = 9; -export const DEFAULT_WIDTH = 1200; -export const DEFAULT_HEIGHT = (DEFAULT_WIDTH / RATIO_WIDTH) * RATIO_HEIGHT; -export const SIZE_FONT = 13; -export const SIZE_MIN_WIDTH = 60; -export const SIZE_BORDER_BOTTOM = 1.5; -export const SIZE_COLUMN_OPTION_AI = 15; -export const SIZE_COLUMN_OPTION_UQ = 22; -export const SIZE_COLUMN_OPTION_NN = 34; -export const SIZE_COLUMN_CLOSE = 9; -export const SIZE_COLUMN_KEY = 12; -export const SIZE_COLUMN_MARGIN_RIGHT = 5; -export const SIZE_INPUT_EDIT_HEIGHT = 19; -export const SIZE_COLUMN_HEIGHT = SIZE_INPUT_EDIT_HEIGHT + SIZE_BORDER_BOTTOM; -export const SIZE_TABLE_BORDER = 1; -export const SIZE_TABLE_PADDING = 10; -export const SIZE_TABLE_HEADER_HEIGHT = 47; -export const SIZE_TABLE_HEADER_BODY_HEIGHT = 30; -export const SIZE_MARGIN_BOTTOM = 3; -export const SIZE_START_X = 200; -export const SIZE_START_Y = 100; -export const SIZE_START_ADD = 50; -export const SIZE_MEMO_WIDTH = 127; -export const SIZE_MEMO_HEIGHT = 100; -export const SIZE_MEMO_PADDING = 10; -export const SIZE_SASH = 5; -export const SIZE_CONTEXTMENU_HEIGHT = 40; -export const SIZE_MINIMAP_WIDTH = 150; -export const SIZE_MINIMAP_MARGIN = 20; -export const SIZE_MENUBAR_HEIGHT = 30; -export const SIZE_CANVAS_MIN = 2000; -export const SIZE_CANVAS_MAX = 20000; -export const SIZE_CANVAS_ZOOM_MAX = 1; -export const SIZE_CANVAS_ZOOM_MIN = 0.1; -export const SIZE_MAX_WIDTH_COMMENT = 120; diff --git a/packages-legacy/vuerd/src/core/logger.ts b/packages-legacy/vuerd/src/core/logger.ts deleted file mode 100644 index 4eda0874..00000000 --- a/packages-legacy/vuerd/src/core/logger.ts +++ /dev/null @@ -1,6 +0,0 @@ -export class Logger { - static debug = (...args: any[]) => args.forEach(console.dir); - static log = console.log; - static warn = console.warn; - static error = console.error; -} diff --git a/packages-legacy/vuerd/src/core/migration/relationshipType.ts b/packages-legacy/vuerd/src/core/migration/relationshipType.ts deleted file mode 100644 index ee38b89b..00000000 --- a/packages-legacy/vuerd/src/core/migration/relationshipType.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { RelationshipType } from '@@types/engine/store/relationship.state'; - -const migrationRelationshipTypes = ['ZeroOneN', 'One', 'N']; - -const migrationRelationshipTypeMap = { - ZeroOneN: 'ZeroN', - One: 'OneOnly', - N: 'OneN', -}; - -export const migrationRelationshipType = ( - relationshipType: RelationshipType -) => - migrationRelationshipTypes.includes(relationshipType) - ? (migrationRelationshipTypeMap as any)[relationshipType] - : relationshipType; diff --git a/packages-legacy/vuerd/src/core/observable/fromDraggable.ts b/packages-legacy/vuerd/src/core/observable/fromDraggable.ts deleted file mode 100644 index 4d0c28bb..00000000 --- a/packages-legacy/vuerd/src/core/observable/fromDraggable.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { fromEvent, merge } from 'rxjs'; -import { debounceTime, takeUntil, throttleTime } from 'rxjs/operators'; - -export const fromDraggable = (elements: Element[]) => - merge( - ...elements.map(el => - fromEvent(el, 'dragover').pipe(throttleTime(300)) - ) - ).pipe( - debounceTime(50), - takeUntil(merge(...elements.map(el => fromEvent(el, 'dragend')))) - ); diff --git a/packages-legacy/vuerd/src/core/observable/fromShadowDraggable.ts b/packages-legacy/vuerd/src/core/observable/fromShadowDraggable.ts deleted file mode 100644 index 39443fb3..00000000 --- a/packages-legacy/vuerd/src/core/observable/fromShadowDraggable.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { fromEvent, merge } from 'rxjs'; -import { debounceTime, map, takeUntil, throttleTime } from 'rxjs/operators'; - -export const fromShadowDraggable = (elements: HTMLElement[]) => - merge( - ...elements.map(el => - fromEvent(el, 'dragover').pipe( - throttleTime(300), - map(() => el.dataset.id as string) - ) - ) - ).pipe( - debounceTime(50), - takeUntil(merge(...elements.map(el => fromEvent(el, 'dragend')))) - ); diff --git a/packages-legacy/vuerd/src/core/operators/commandsFilter.ts b/packages-legacy/vuerd/src/core/operators/commandsFilter.ts deleted file mode 100644 index f2da0551..00000000 --- a/packages-legacy/vuerd/src/core/operators/commandsFilter.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Observable } from 'rxjs'; - -import { notEmptyCommands } from '@/core/operators/notEmptyCommands'; -import { CommandKey, CommandTypeAll } from '@@types/engine/command'; - -export const commandsFilter = - (commandTypes: CommandKey[]) => - (source$: Observable>) => - new Observable>(subscriber => - source$.subscribe({ - next: commands => - subscriber.next( - commands.filter(command => commandTypes.includes(command.name)) - ), - error: value => subscriber.error(value), - complete: () => subscriber.complete(), - }) - ).pipe(notEmptyCommands); diff --git a/packages-legacy/vuerd/src/core/operators/groupByStreamCommands.ts b/packages-legacy/vuerd/src/core/operators/groupByStreamCommands.ts deleted file mode 100644 index 351f33b0..00000000 --- a/packages-legacy/vuerd/src/core/operators/groupByStreamCommands.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { Observable } from 'rxjs'; -import { buffer, debounceTime, groupBy, map, mergeMap } from 'rxjs/operators'; - -import { notEmptyCommands } from '@/core/operators/notEmptyCommands'; -import { streamCommandTypes } from '@/engine/command/helper'; -import { CommandTypeAll } from '@@types/engine/command'; - -const NONE_STREAM_KEY = '@@none-stream'; - -type Regroup = [string, Array | ReadonlyArray]; -type HasRegroup = [string, (type: string) => boolean]; - -const createToKey = - (has: (type: string) => boolean, hasRegroups: HasRegroup[]) => - (type: string) => { - const hasRegroup = hasRegroups.find(([, has]) => has(type)); - return hasRegroup ? hasRegroup[0] : has(type) ? type : NONE_STREAM_KEY; - }; - -export const groupByStreamCommands = (regroups: Regroup[] = []) => { - const has = arrayHas(streamCommandTypes); - const hasRegroups: HasRegroup[] = regroups.map(([key, types]) => [ - key, - arrayHas(types), - ]); - const toKey = createToKey(has, hasRegroups); - - return (source$: Observable>) => - new Observable>(subscriber => - source$.subscribe({ - next: commands => { - const group = commands.reduce( - (acc, command) => { - const key = toKey(command.name); - if (!acc[key]) { - acc[key] = []; - } - - acc[key].push(command); - return acc; - }, - {} as Record> - ); - - Object.values(group).forEach(commands => subscriber.next(commands)); - }, - error: value => subscriber.error(value), - complete: () => subscriber.complete(), - }) - ).pipe( - notEmptyCommands, - groupBy(commands => toKey(commands[0].name)), - mergeMap(group$ => - group$.key === NONE_STREAM_KEY - ? group$ - : group$.pipe( - buffer(group$.pipe(debounceTime(200))), - map(buff => buff.reduce((acc, cur) => acc.concat(cur), [])) - ) - ) - ); -}; - -function arrayHas(arr: Array | ReadonlyArray) { - const set = new Set(arr); - return (value: T): boolean => set.has(value); -} diff --git a/packages-legacy/vuerd/src/core/operators/ignoreEnterProcess.ts b/packages-legacy/vuerd/src/core/operators/ignoreEnterProcess.ts deleted file mode 100644 index b28bcb3e..00000000 --- a/packages-legacy/vuerd/src/core/operators/ignoreEnterProcess.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Observable } from 'rxjs'; -import { filter, groupBy, mergeMap, throttleTime } from 'rxjs/operators'; - -export const ignoreEnterProcess = (source$: Observable) => - new Observable(subscriber => - source$ - .pipe( - groupBy(event => event.code === 'Enter'), - mergeMap(group$ => - group$.key - ? group$.pipe( - filter(event => event.key !== 'Process'), - throttleTime(100) - ) - : group$ - ) - ) - .subscribe(subscriber) - ); diff --git a/packages-legacy/vuerd/src/core/operators/notEmptyCommands.ts b/packages-legacy/vuerd/src/core/operators/notEmptyCommands.ts deleted file mode 100644 index de38477a..00000000 --- a/packages-legacy/vuerd/src/core/operators/notEmptyCommands.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { filter } from 'rxjs/operators'; - -import { CommandTypeAll } from '@@types/engine/command'; - -export const notEmptyCommands = filter( - commands => !!commands.length -); diff --git a/packages-legacy/vuerd/src/core/operators/readonlyCommands.ts b/packages-legacy/vuerd/src/core/operators/readonlyCommands.ts deleted file mode 100644 index 6787ba00..00000000 --- a/packages-legacy/vuerd/src/core/operators/readonlyCommands.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Observable } from 'rxjs'; - -import { notEmptyCommands } from '@/core/operators/notEmptyCommands'; -import { readonlyCommandTypes } from '@/engine/command/helper'; -import { CommandTypeAll } from '@@types/engine/command'; -import { State } from '@@types/engine/store'; - -export const readonlyCommands = - ({ editorState }: State) => - (source$: Observable>) => - new Observable>(subscriber => - source$.subscribe({ - next: commands => - editorState.readonly - ? subscriber.next( - commands.filter(command => - readonlyCommandTypes.includes(command.name) - ) - ) - : subscriber.next(commands), - error: value => subscriber.error(value), - complete: () => subscriber.complete(), - }) - ).pipe(notEmptyCommands); diff --git a/packages-legacy/vuerd/src/core/panel.ts b/packages-legacy/vuerd/src/core/panel.ts deleted file mode 100644 index 9ef4f16d..00000000 --- a/packages-legacy/vuerd/src/core/panel.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { observable } from '@vuerd/lit-observable'; - -import { PanelConfig } from '@@types/core/panel'; - -export const contextPanelConfig = observable({ - panels: [] as PanelConfig[], - exclude: [] as RegExp[], -}); - -export const addPanel = (...newPanels: PanelConfig[]) => - contextPanelConfig.panels.push(...newPanels); - -export const setExcludePanel = (exclude: RegExp[]) => - (contextPanelConfig.exclude = exclude); diff --git a/packages-legacy/vuerd/src/core/parser/ParserToJson.ts b/packages-legacy/vuerd/src/core/parser/ParserToJson.ts deleted file mode 100644 index 2ece588e..00000000 --- a/packages-legacy/vuerd/src/core/parser/ParserToJson.ts +++ /dev/null @@ -1,660 +0,0 @@ -import { - AlterTableAddPrimaryKey, - AlterTableAddUnique, -} from '@vuerd/sql-ddl-parser'; - -import { getData, uuid } from '@/core/helper'; -import { - SIZE_CANVAS_MAX, - SIZE_CANVAS_MIN, - SIZE_MIN_WIDTH, -} from '@/core/layout'; -import { - AlterTableAddColumn, - AlterTableAddForeignKey, - AlterTableDropColumn, - AlterTableDropForeignKey, - Column, - CreateIndex, - CreateTable, - DropTable, - IndexColumn, - Statement, -} from '@/core/parser'; -import { createCanvasState } from '@/engine/store/canvas.state'; -import { createMemoState } from '@/engine/store/memo.state'; -import { createRelationshipState } from '@/engine/store/relationship.state'; -import { createTableState } from '@/engine/store/table.state'; -import { Helper } from '@@types/core/helper'; -import { ExportedStore } from '@@types/engine/store'; -import { CanvasState, Database } from '@@types/engine/store/canvas.state'; -import { MemoState } from '@@types/engine/store/memo.state'; -import { - Column as PureColumn, - PureTable, - Table, -} from '@@types/engine/store/table.state'; - -interface Shape { - tables: CreateTable[]; - indexes: CreateIndex[]; - primaryKeys: AlterTableAddPrimaryKey[]; - foreignKeys: AlterTableAddForeignKey[]; - dropForeignKeys: AlterTableDropForeignKey[]; - uniques: AlterTableAddUnique[]; - addColumns: AlterTableAddColumn[]; - dropColumns: AlterTableDropColumn[]; - dropTable: DropTable[]; -} - -/** - * Sorts statements and adds them to shape - * @param statements List of statements - * @param shape (optional) Already existing shape that will just add new statements to itself - * @returns Shape with sorted statements - */ -function reshape( - statements: Statement[], - shape: Shape = { - tables: [], - indexes: [], - primaryKeys: [], - foreignKeys: [], - dropForeignKeys: [], - uniques: [], - addColumns: [], - dropColumns: [], - dropTable: [], - } -): Shape { - statements.forEach(statement => { - switch (statement.type) { - case 'create.table': - const table = statement; - const duplicateTable = findByName(shape.tables, table.name); - if (!duplicateTable && table.name) { - shape.tables.push(table); - } - break; - case 'create.index': - const index = statement; - const duplicateIndex = findByName(shape.indexes, index.name); - if (!duplicateIndex && index.tableName && index.columns.length) { - shape.indexes.push(index); - } - break; - case 'alter.table.add.primaryKey': - const primaryKey = statement; - const duplicatePK = findByName(shape.primaryKeys, primaryKey.name); - if (!duplicatePK && primaryKey.name && primaryKey.columnNames.length) { - shape.primaryKeys.push(primaryKey); - } - break; - case 'alter.table.add.foreignKey': - const foreignKey = statement; - const duplicateFK = findByConstraintName( - shape.foreignKeys, - foreignKey.constraintName - ); - - if ( - !duplicateFK && - foreignKey.name && - foreignKey.columnNames.length && - foreignKey.refTableName && - foreignKey.refColumnNames.length && - foreignKey.columnNames.length === foreignKey.refColumnNames.length - ) { - shape.foreignKeys.push(foreignKey); - } - break; - case 'alter.table.add.unique': - const unique = statement; - const duplicateUnique = findByName(shape.uniques, unique.name); - if (!duplicateUnique && unique.name && unique.columnNames.length) { - shape.uniques.push(unique); - } - break; - case 'alter.table.add.column': - const addColumns = statement; - const duplicateAddColumns = findByName( - shape.addColumns, - addColumns.name - ); - if ( - !duplicateAddColumns && - addColumns.name && - addColumns.columns.length - ) { - shape.addColumns.push(addColumns); - } - break; - case 'alter.table.drop.column': - const dropColumns = statement; - const duplicateDropColumns = findByName( - shape.dropColumns, - dropColumns.name - ); - if ( - !duplicateDropColumns && - dropColumns.name && - dropColumns.columns.length - ) { - shape.dropColumns.push(dropColumns); - } - break; - case 'drop.table': - const dropTable = statement; - const duplicateDropTable = findByName(shape.dropTable, dropTable.name); - if (!duplicateDropTable && dropTable.name) { - shape.dropTable.push(dropTable); - } - break; - case 'alter.table.drop.foreignKey': - const dropForeignKey = statement; - const duplicateDropFK = findByName( - shape.dropForeignKeys, - dropForeignKey.name - ); - if ( - !duplicateDropFK && - dropForeignKey.name && - dropForeignKey.baseTableName - ) { - shape.dropForeignKeys.push(dropForeignKey); - } - break; - } - }); - - return shape; -} - -export function findByName( - list: T[], - name: string -): T | null { - for (const item of list) { - if (item.name.toUpperCase() === name.toUpperCase()) { - return item; - } - } - return null; -} - -export function findByConstraintName( - list: T[], - constraintName?: string -): T | null { - if (!constraintName) return null; - - for (const item of list) { - if (item.constraintName?.toUpperCase() === constraintName?.toUpperCase()) { - return item; - } - } - return null; -} - -/** - * Adds all statements to CreateTable[] - * @param shape Shape with all statements - * @returns Final list of CreateTable[] - */ -function mergeTable(shape: Shape): CreateTable[] { - const { - indexes, - primaryKeys, - foreignKeys, - uniques, - addColumns, - dropColumns, - dropForeignKeys, - dropTable, - } = shape; - var { tables } = shape; - - indexes.forEach(index => { - const table = findByName(tables, index.tableName); - if (table) { - table.indexes.push({ - name: index.name, - unique: index.unique, - columns: index.columns, - id: index.id, - }); - } - }); - primaryKeys.forEach(primaryKey => { - const table = findByName(tables, primaryKey.name); - if (table) { - primaryKey.columnNames.forEach(columnName => { - const column = findByName(table.columns, columnName); - if (column) { - column.primaryKey = true; - } - }); - } - }); - uniques.forEach(unique => { - const table = findByName(tables, unique.name); - if (table) { - unique.columnNames.forEach(columnName => { - const column = findByName(table.columns, columnName); - if (column) { - column.unique = true; - } - }); - } - }); - foreignKeys.forEach(foreignKey => { - const table = findByName(tables, foreignKey.name); - if (table) { - table.foreignKeys.push({ - columnNames: foreignKey.columnNames, - refTableName: foreignKey.refTableName, - refColumnNames: foreignKey.refColumnNames, - constraintName: foreignKey.constraintName, - visible: foreignKey.visible, - id: foreignKey.id, - }); - } - }); - - addColumns.forEach(addColumn => { - const table = findByName(tables, addColumn.name); - if (table) { - addColumn.columns.forEach(column => { - const duplicateColumn = findByName(table.columns, column.name); - if (!duplicateColumn) { - table.columns.push(column); - } - }); - } - }); - - dropColumns.forEach(dropColumn => { - const table = findByName(tables, dropColumn.name); - if (table) { - dropColumn.columns.forEach(columnToDrop => { - table.columns = table.columns.filter( - column => columnToDrop.name !== column.name - ); - }); - } - }); - - dropTable.forEach(dropTable => { - tables = tables.filter(table => table.name !== dropTable.name); - }); - - dropForeignKeys.forEach(dropForeignKey => { - const table = findByName(tables, dropForeignKey.baseTableName); - if (table) { - table.foreignKeys = table.foreignKeys.filter( - fk => fk.constraintName !== dropForeignKey.name - ); - } - }); - - return tables; -} - -/** - * Converts latest snapshot to shape, so there can be added more new statements - * @param snaphot Latest snapshot - * @returns Shape with all statements needed to replicate latest snapshot - */ -function snapshotToShape({ table, relationship }: ExportedStore): Shape { - const shape: Shape = { - tables: [], - indexes: [], - primaryKeys: [], - foreignKeys: [], - dropForeignKeys: [], - uniques: [], - addColumns: [], - dropColumns: [], - dropTable: [], - }; - - shape.tables.push( - ...table.tables.map(table => { - const columns: Column[] = table.columns.map(column => { - return { - name: column.name, - dataType: column.dataType, - default: column.default, - comment: column.comment, - primaryKey: column.option.primaryKey, - autoIncrement: column.option.autoIncrement, - unique: column.option.unique, - nullable: !column.option.notNull, - id: column.id, - }; - }); - var createTable: CreateTable = { - type: 'create.table', - id: table.id, - columns: columns, - comment: table.comment, - foreignKeys: [], - indexes: [], - name: table.name, - visible: table.visible, - }; - - return createTable; - }) - ); - - shape.indexes.push( - ...table.indexes.map(index => { - const indexedTable = getData(table.tables, index.tableId); - const indexedColumns: IndexColumn[] = []; - - if (indexedTable) { - index.columns.forEach(col => { - const column = getData(indexedTable.columns, col.id); - if (column) - indexedColumns.push({ name: column.name, sort: col.orderType }); - }); - } - - var createIndex: CreateIndex = { - type: 'create.index', - id: index.id, - name: index.name, - unique: index.unique, - tableName: indexedTable?.name || '', - columns: indexedColumns, - }; - - return createIndex; - }) - ); - - shape.foreignKeys.push( - ...relationship.relationships.map(relationship => { - const baseTable = getData(table.tables, relationship.end.tableId); - const baseColumnNames = relationship.end.columnIds.map(colId => { - return getData(baseTable?.columns || [], colId)?.name || ''; - }); - - const refTable = getData(table.tables, relationship.start.tableId); - const refColumnNames = relationship.start.columnIds.map(colId => { - return getData(refTable?.columns || [], colId)?.name || ''; - }); - - const fk: AlterTableAddForeignKey = { - type: 'alter.table.add.foreignKey', - id: relationship.id, - name: baseTable?.name || '', - columnNames: baseColumnNames, - refTableName: refTable?.name || '', - refColumnNames: refColumnNames, - constraintName: relationship.constraintName ?? '', - visible: relationship.visible, - }; - - return fk; - }) - ); - - return shape; -} - -export function createJsonFormat( - canvasSize: number, - database: Database, - originalCanvas?: CanvasState, - originalMemo?: MemoState -): ExportedStore { - const canvas: CanvasState = createCanvasState(); - canvas.width = canvasSize; - canvas.height = canvasSize; - canvas.database = database; - return { - canvas: originalCanvas ? originalCanvas : canvas, - table: createTableState(), - memo: originalMemo ? originalMemo : createMemoState(), - relationship: createRelationshipState(), - }; -} - -export function createJson( - statements: Statement[], - helper: Helper, - database: Database, - snapshot?: ExportedStore -): string { - var shape: Shape; - - if (snapshot) { - shape = snapshotToShape(snapshot); - shape = reshape(statements, shape); - } else { - shape = reshape(statements); - } - - const tables: CreateTable[] = mergeTable(shape); - - let canvasSize = tables.length * 100; - if (canvasSize < SIZE_CANVAS_MIN) { - canvasSize = SIZE_CANVAS_MIN; - } - if (canvasSize > SIZE_CANVAS_MAX) { - canvasSize = SIZE_CANVAS_MAX; - } - - var store: ExportedStore; - if (snapshot) { - store = createJsonFormat( - canvasSize, - database, - snapshot.canvas, - snapshot.memo - ); - } else { - store = createJsonFormat(canvasSize, database); - } - - tables.forEach(table => { - store.table.tables.push(createTable(helper, table, snapshot?.table.tables)); - }); - createRelationship(store, tables); - createIndex(store, tables); - - return JSON.stringify(store); -} - -function createTable( - helper: Helper, - table: CreateTable, - snapTables?: Table[] -): any { - const originalTable = findByName(snapTables || [], table.name); - - const newTable: PureTable = { - id: table.id || uuid(), - name: table.name, - comment: table.comment, - columns: [], - ui: originalTable - ? originalTable.ui - : { - active: false, - top: 0, - left: 0, - widthName: SIZE_MIN_WIDTH, - widthComment: SIZE_MIN_WIDTH, - zIndex: 2, - }, - visible: table.visible === undefined ? true : table.visible, - }; - - const widthName = helper.getFastTextWidth(newTable.name); - if (SIZE_MIN_WIDTH < widthName) { - newTable.ui.widthName = widthName; - } - const widthComment = helper.getFastTextWidth(newTable.comment); - if (SIZE_MIN_WIDTH < widthComment) { - newTable.ui.widthComment = widthComment; - } - - table.columns.forEach(column => { - newTable.columns.push(createColumn(helper, column)); - }); - - return newTable; -} - -export function createColumn(helper: Helper, column: Column): any { - const newColumn: PureColumn = { - id: column.id || uuid(), - name: column.name, - comment: column.comment, - dataType: column.dataType, - default: column.default, - option: { - autoIncrement: column.autoIncrement, - primaryKey: column.primaryKey, - unique: column.unique, - notNull: !column.nullable, - }, - ui: { - active: false, - pk: column.primaryKey, - fk: false, - pfk: false, - widthName: SIZE_MIN_WIDTH, - widthComment: SIZE_MIN_WIDTH, - widthDataType: SIZE_MIN_WIDTH, - widthDefault: SIZE_MIN_WIDTH, - }, - }; - - const widthName = helper.getFastTextWidth(newColumn.name); - if (SIZE_MIN_WIDTH < widthName) { - newColumn.ui.widthName = widthName; - } - const widthComment = helper.getFastTextWidth(newColumn.comment); - if (SIZE_MIN_WIDTH < widthComment) { - newColumn.ui.widthComment = widthComment; - } - const widthDataType = helper.getFastTextWidth(newColumn.dataType); - if (SIZE_MIN_WIDTH < widthDataType) { - newColumn.ui.widthDataType = widthDataType; - } - const widthDefault = helper.getFastTextWidth(newColumn.default); - if (SIZE_MIN_WIDTH < widthDefault) { - newColumn.ui.widthDefault = widthDefault; - } - - return newColumn; -} - -function createRelationship(data: ExportedStore, tables: CreateTable[]) { - tables.forEach(table => { - if (table.foreignKeys) { - const endTable = findByName(data.table.tables, table.name); - - if (endTable) { - table.foreignKeys.forEach(foreignKey => { - const startTable = findByName( - data.table.tables, - foreignKey.refTableName - ); - - if (startTable) { - const startColumns: any[] = []; - const endColumns: any[] = []; - - foreignKey.refColumnNames.forEach(refColumnName => { - const column = findByName(startTable.columns, refColumnName); - if (column) { - startColumns.push(column); - } - }); - - foreignKey.columnNames.forEach(columnName => { - const column = findByName(endTable.columns, columnName); - - if (column) { - endColumns.push(column); - if (column.ui.pk) { - column.ui.pk = false; - column.ui.pfk = true; - } else { - column.ui.fk = true; - } - } - }); - - if (startTable.visible && endTable.visible) { - foreignKey.visible = true; - } else { - foreignKey.visible = false; - } - - data.relationship.relationships.push({ - id: foreignKey.id || uuid(), - identification: !endColumns.some(column => !column.ui.pfk), - relationshipType: 'ZeroOneN', - start: { - tableId: startTable.id, - columnIds: startColumns.map(column => column.id), - x: 0, - y: 0, - direction: 'top', - }, - end: { - tableId: endTable.id, - columnIds: endColumns.map(column => column.id), - x: 0, - y: 0, - direction: 'top', - }, - constraintName: foreignKey.constraintName, - visible: foreignKey.visible, - }); - } - }); - } - } - }); -} - -function createIndex(data: ExportedStore, tables: CreateTable[]) { - tables.forEach(table => { - if (table.indexes) { - table.indexes.forEach(index => { - const targetTable = findByName(data.table.tables, table.name); - - if (targetTable) { - const indexColumns: any[] = []; - - index.columns.forEach(column => { - const targetColumn = findByName(targetTable.columns, column.name); - - if (targetColumn) { - indexColumns.push({ - id: targetColumn.id, - orderType: column.sort, - }); - } - }); - if (indexColumns.length !== 0) { - data.table.indexes.push({ - id: index.id || uuid(), - name: index.name, - tableId: targetTable.id, - columns: indexColumns, - unique: index.unique, - }); - } - } - }); - } - }); -} diff --git a/packages-legacy/vuerd/src/core/parser/index.d.ts b/packages-legacy/vuerd/src/core/parser/index.d.ts deleted file mode 100644 index f1b42fd2..00000000 --- a/packages-legacy/vuerd/src/core/parser/index.d.ts +++ /dev/null @@ -1,142 +0,0 @@ -export type SortType = 'ASC' | 'DESC'; - -export type TokenType = - | 'leftParen' - | 'rightParen' - | 'comma' - | 'period' - | 'equal' - | 'semicolon' - | 'keyword' - | 'string' - | 'doubleQuoteString' - | 'singleQuoteString' - | 'backtickString' - | 'unknown'; - -export interface Token { - type: TokenType; - value: string; -} - -export type Statement = - | CreateTable - | CreateIndex - | AlterTableAddPrimaryKey - | AlterTableAddForeignKey - | AlterTableDropForeignKey - | AlterTableAddUnique - | AlterTableAddColumn - | AlterTableDropColumn - | DropTable - | AlterTableAddUnique; - -export interface CreateTable { - type: 'create.table'; - name: string; - comment: string; - columns: Column[]; - indexes: Index[]; - foreignKeys: ForeignKey[]; - visible?: boolean; - id?: string; -} - -export interface DropTable { - type: 'drop.table'; - name: string; -} - -export interface Column { - name: string; - dataType: string; - default: string; - comment: string; - primaryKey: boolean; - autoIncrement: boolean; - unique: boolean; - nullable: boolean; - id?: string; -} - -export interface Index { - name: string; - unique: boolean; - columns: IndexColumn[]; - id?: string; -} - -export interface ForeignKey { - columnNames: string[]; - refTableName: string; - refColumnNames: string[]; - constraintName: string; - visible?: boolean; - id?: string; -} - -export interface CreateTableColumns { - columns: Column[]; - indexes: Index[]; - foreignKeys: ForeignKey[]; -} - -export interface CreateIndex { - type: 'create.index'; - name: string; - unique: boolean; - tableName: string; - columns: IndexColumn[]; - id?: string; -} -export interface IndexColumn { - name: string; - sort: SortType; -} - -export interface AlterTableAddUnique { - type: 'alter.table.add.unique'; - name: string; - columnNames: string[]; -} - -export interface AlterTableAddPrimaryKey { - type: 'alter.table.add.primaryKey'; - name: string; - columnNames: string[]; -} - -export interface AlterTableAddForeignKey { - type: 'alter.table.add.foreignKey'; - name: string; - columnNames: string[]; - refTableName: string; - refColumnNames: string[]; - constraintName: string; - visible?: boolean; - id?: string; -} - -export interface AlterTableDropForeignKey { - type: 'alter.table.drop.foreignKey'; - name: string; - baseTableName: string; -} - -export interface AlterTableAddColumn { - type: 'alter.table.add.column'; - name: string; - columns: Column[]; -} - -export interface AlterTableDropColumn { - type: 'alter.table.drop.column'; - name: string; - columns: Column[]; -} - -export interface AlterTableAddUnique { - type: 'alter.table.add.unique'; - name: string; - columnNames: string[]; -} diff --git a/packages-legacy/vuerd/src/core/sql/dataType/MSSQL.ts b/packages-legacy/vuerd/src/core/sql/dataType/MSSQL.ts deleted file mode 100644 index 26b31b73..00000000 --- a/packages-legacy/vuerd/src/core/sql/dataType/MSSQL.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { DataTypeHint } from '@/core/sql/dataType'; - -/** - * https://docs.microsoft.com/ko-kr/sql/t-sql/data-types/data-types-transact-sql?view=sql-server-ver15 - */ -export const MSSQLTypes: DataTypeHint[] = [ - { name: 'bigint', primitiveType: 'long' }, - { name: 'binary', primitiveType: 'lob' }, - { name: 'bit', primitiveType: 'int' }, - { name: 'char', primitiveType: 'string' }, - { name: 'date', primitiveType: 'date' }, - { name: 'datetime', primitiveType: 'dateTime' }, - { name: 'datetime2', primitiveType: 'dateTime' }, - { name: 'datetimeoffset', primitiveType: 'dateTime' }, - { name: 'decimal', primitiveType: 'decimal' }, - { name: 'float', primitiveType: 'double' }, - { name: 'geography', primitiveType: 'string' }, - { name: 'geometry', primitiveType: 'string' }, - { name: 'image', primitiveType: 'lob' }, - { name: 'int', primitiveType: 'int' }, - { name: 'money', primitiveType: 'double' }, - { name: 'nchar', primitiveType: 'string' }, - { name: 'ntext', primitiveType: 'lob' }, - { name: 'numeric', primitiveType: 'float' }, - { name: 'nvarchar', primitiveType: 'string' }, - { name: 'real', primitiveType: 'float' }, - { name: 'smalldatetime', primitiveType: 'dateTime' }, - { name: 'smallint', primitiveType: 'int' }, - { name: 'smallmoney', primitiveType: 'float' }, - { name: 'sql_variant', primitiveType: 'string' }, - { name: 'text', primitiveType: 'lob' }, - { name: 'time', primitiveType: 'time' }, - { name: 'tinyint', primitiveType: 'int' }, - { name: 'uniqueidentifier', primitiveType: 'string' }, - { name: 'varbinary', primitiveType: 'string' }, - { name: 'varchar', primitiveType: 'string' }, - { name: 'xml', primitiveType: 'lob' }, -]; diff --git a/packages-legacy/vuerd/src/core/sql/dataType/MariaDB.ts b/packages-legacy/vuerd/src/core/sql/dataType/MariaDB.ts deleted file mode 100644 index dc0f5676..00000000 --- a/packages-legacy/vuerd/src/core/sql/dataType/MariaDB.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { DataTypeHint } from '@/core/sql/dataType'; - -/** - * https://mariadb.com/kb/en/data-types/ - */ -export const MariaDBTypes: DataTypeHint[] = [ - { name: 'BIGINT', primitiveType: 'long' }, - { name: 'BINARY', primitiveType: 'string' }, - { name: 'BIT', primitiveType: 'int' }, - { name: 'BLOB', primitiveType: 'lob' }, - { name: 'BOOL', primitiveType: 'boolean' }, - { name: 'BOOLEAN', primitiveType: 'boolean' }, - { name: 'CHAR', primitiveType: 'string' }, - { name: 'DATE', primitiveType: 'date' }, - { name: 'DATETIME', primitiveType: 'dateTime' }, - { name: 'DEC', primitiveType: 'decimal' }, - { name: 'DECIMAL', primitiveType: 'decimal' }, - { name: 'DOUBLE PRECISION', primitiveType: 'double' }, - { name: 'DOUBLE', primitiveType: 'double' }, - { name: 'ENUM', primitiveType: 'string' }, - { name: 'FIXED', primitiveType: 'decimal' }, - { name: 'FLOAT', primitiveType: 'float' }, - { name: 'GEOMETRY', primitiveType: 'string' }, - { name: 'GEOMETRYCOLLECTION', primitiveType: 'string' }, - { name: 'INT', primitiveType: 'int' }, - { name: 'INTEGER', primitiveType: 'int' }, - { name: 'JSON', primitiveType: 'lob' }, - { name: 'LINESTRING', primitiveType: 'string' }, - { name: 'LONGBLOB', primitiveType: 'lob' }, - { name: 'LONGTEXT', primitiveType: 'lob' }, - { name: 'MEDIUMBLOB', primitiveType: 'lob' }, - { name: 'MEDIUMINT', primitiveType: 'int' }, - { name: 'MEDIUMTEXT', primitiveType: 'lob' }, - { name: 'MULTILINESTRING', primitiveType: 'string' }, - { name: 'MULTIPOINT', primitiveType: 'string' }, - { name: 'MULTIPOLYGON', primitiveType: 'string' }, - { name: 'NUMERIC', primitiveType: 'decimal' }, - { name: 'POINT', primitiveType: 'string' }, - { name: 'POLYGON', primitiveType: 'string' }, - { name: 'REAL', primitiveType: 'double' }, - { name: 'SET', primitiveType: 'string' }, - { name: 'SMALLINT', primitiveType: 'int' }, - { name: 'TEXT', primitiveType: 'lob' }, - { name: 'TIME', primitiveType: 'time' }, - { name: 'TIMESTAMP', primitiveType: 'dateTime' }, - { name: 'TINYBLOB', primitiveType: 'lob' }, - { name: 'TINYINT', primitiveType: 'int' }, - { name: 'TINYTEXT', primitiveType: 'lob' }, - { name: 'VARBINARY', primitiveType: 'string' }, - { name: 'VARCHAR', primitiveType: 'string' }, - { name: 'YEAR', primitiveType: 'int' }, -]; diff --git a/packages-legacy/vuerd/src/core/sql/dataType/MySQL.ts b/packages-legacy/vuerd/src/core/sql/dataType/MySQL.ts deleted file mode 100644 index 6788eb1b..00000000 --- a/packages-legacy/vuerd/src/core/sql/dataType/MySQL.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { DataTypeHint } from '@/core/sql/dataType'; - -/** - * https://dev.mysql.com/doc/refman/8.0/en/data-types.html - */ -export const MySQLTypes: DataTypeHint[] = [ - { name: 'BIGINT', primitiveType: 'long' }, - { name: 'BINARY', primitiveType: 'string' }, - { name: 'BIT', primitiveType: 'int' }, - { name: 'BLOB', primitiveType: 'lob' }, - { name: 'BOOL', primitiveType: 'boolean' }, - { name: 'BOOLEAN', primitiveType: 'boolean' }, - { name: 'CHAR', primitiveType: 'string' }, - { name: 'DATE', primitiveType: 'date' }, - { name: 'DATETIME', primitiveType: 'dateTime' }, - { name: 'DEC', primitiveType: 'decimal' }, - { name: 'DECIMAL', primitiveType: 'decimal' }, - { name: 'DOUBLE PRECISION', primitiveType: 'double' }, - { name: 'DOUBLE', primitiveType: 'double' }, - { name: 'ENUM', primitiveType: 'string' }, - { name: 'FLOAT', primitiveType: 'float' }, - { name: 'GEOMETRY', primitiveType: 'string' }, - { name: 'GEOMETRYCOLLECTION', primitiveType: 'string' }, - { name: 'INT', primitiveType: 'int' }, - { name: 'INTEGER', primitiveType: 'int' }, - { name: 'JSON', primitiveType: 'lob' }, - { name: 'LINESTRING', primitiveType: 'string' }, - { name: 'LONGBLOB', primitiveType: 'lob' }, - { name: 'LONGTEXT', primitiveType: 'lob' }, - { name: 'MEDIUMBLOB', primitiveType: 'lob' }, - { name: 'MEDIUMINT', primitiveType: 'int' }, - { name: 'MEDIUMTEXT', primitiveType: 'lob' }, - { name: 'MULTILINESTRING', primitiveType: 'string' }, - { name: 'MULTIPOINT', primitiveType: 'string' }, - { name: 'MULTIPOLYGON', primitiveType: 'string' }, - { name: 'NUMERIC', primitiveType: 'decimal' }, - { name: 'POINT', primitiveType: 'string' }, - { name: 'POLYGON', primitiveType: 'string' }, - { name: 'SET', primitiveType: 'string' }, - { name: 'SMALLINT', primitiveType: 'int' }, - { name: 'TEXT', primitiveType: 'lob' }, - { name: 'TIME', primitiveType: 'time' }, - { name: 'TIMESTAMP', primitiveType: 'dateTime' }, - { name: 'TINYBLOB', primitiveType: 'lob' }, - { name: 'TINYINT', primitiveType: 'int' }, - { name: 'TINYTEXT', primitiveType: 'lob' }, - { name: 'VARBINARY', primitiveType: 'string' }, - { name: 'VARCHAR', primitiveType: 'string' }, - { name: 'YEAR', primitiveType: 'int' }, -]; diff --git a/packages-legacy/vuerd/src/core/sql/dataType/Oracle.ts b/packages-legacy/vuerd/src/core/sql/dataType/Oracle.ts deleted file mode 100644 index 97c72c06..00000000 --- a/packages-legacy/vuerd/src/core/sql/dataType/Oracle.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { DataTypeHint } from '@/core/sql/dataType'; - -/** - * https://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#CNCPT012 - */ -export const OracleTypes: DataTypeHint[] = [ - { name: 'BFILE', primitiveType: 'lob' }, - { name: 'BINARY_DOUBLE', primitiveType: 'double' }, - { name: 'BINARY_FLOAT', primitiveType: 'float' }, - { name: 'BLOB', primitiveType: 'lob' }, - { name: 'CHAR', primitiveType: 'string' }, - { name: 'CLOB', primitiveType: 'lob' }, - { name: 'DATE', primitiveType: 'date' }, - { name: 'DATETIME', primitiveType: 'dateTime' }, - { name: 'LONG RAW', primitiveType: 'lob' }, - { name: 'LONG', primitiveType: 'lob' }, - { name: 'NCHAR', primitiveType: 'string' }, - { name: 'NCLOB', primitiveType: 'lob' }, - { name: 'NUMBER', primitiveType: 'long' }, - { name: 'NVARCHAR2', primitiveType: 'string' }, - { name: 'RAW', primitiveType: 'lob' }, - { name: 'TIMESTAMP WITH LOCAL TIME ZONE', primitiveType: 'dateTime' }, - { name: 'TIMESTAMP WITH TIME ZONE', primitiveType: 'dateTime' }, - { name: 'TIMESTAMP', primitiveType: 'dateTime' }, - { name: 'UriType', primitiveType: 'string' }, - { name: 'VARCHAR', primitiveType: 'string' }, - { name: 'VARCHAR2', primitiveType: 'string' }, - { name: 'XMLType', primitiveType: 'string' }, -]; diff --git a/packages-legacy/vuerd/src/core/sql/dataType/PostgreSQL.ts b/packages-legacy/vuerd/src/core/sql/dataType/PostgreSQL.ts deleted file mode 100644 index c7f006c7..00000000 --- a/packages-legacy/vuerd/src/core/sql/dataType/PostgreSQL.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { DataTypeHint } from '@/core/sql/dataType'; - -/** - * https://www.postgresql.org/docs/current/datatype.html - */ -export const PostgreSQLTypes: DataTypeHint[] = [ - { name: 'bigint', primitiveType: 'long' }, - { name: 'bigserial', primitiveType: 'long' }, - { name: 'bit varying', primitiveType: 'int' }, - { name: 'bit', primitiveType: 'int' }, - { name: 'bool', primitiveType: 'boolean' }, - { name: 'boolean', primitiveType: 'boolean' }, - { name: 'box', primitiveType: 'string' }, - { name: 'bytea', primitiveType: 'string' }, - { name: 'char', primitiveType: 'string' }, - { name: 'character varying', primitiveType: 'string' }, - { name: 'character', primitiveType: 'string' }, - { name: 'cidr', primitiveType: 'string' }, - { name: 'circle', primitiveType: 'string' }, - { name: 'date', primitiveType: 'date' }, - { name: 'decimal', primitiveType: 'decimal' }, - { name: 'double precision', primitiveType: 'double' }, - { name: 'float4', primitiveType: 'float' }, - { name: 'float8', primitiveType: 'double' }, - { name: 'inet', primitiveType: 'string' }, - { name: 'int', primitiveType: 'int' }, - { name: 'int2', primitiveType: 'int' }, - { name: 'int4', primitiveType: 'int' }, - { name: 'int8', primitiveType: 'long' }, - { name: 'integer', primitiveType: 'int' }, - { name: 'interval', primitiveType: 'time' }, - { name: 'json', primitiveType: 'lob' }, - { name: 'jsonb', primitiveType: 'lob' }, - { name: 'line', primitiveType: 'string' }, - { name: 'lseg', primitiveType: 'string' }, - { name: 'macaddr', primitiveType: 'string' }, - { name: 'macaddr8', primitiveType: 'string' }, - { name: 'money', primitiveType: 'double' }, - { name: 'numeric', primitiveType: 'decimal' }, - { name: 'path', primitiveType: 'string' }, - { name: 'pg_lsn', primitiveType: 'int' }, - { name: 'point', primitiveType: 'string' }, - { name: 'polygon', primitiveType: 'string' }, - { name: 'real', primitiveType: 'float' }, - { name: 'serial', primitiveType: 'int' }, - { name: 'serial2', primitiveType: 'int' }, - { name: 'serial4', primitiveType: 'int' }, - { name: 'serial8', primitiveType: 'long' }, - { name: 'smallint', primitiveType: 'int' }, - { name: 'smallserial', primitiveType: 'int' }, - { name: 'text', primitiveType: 'string' }, - { name: 'time with time zone', primitiveType: 'time' }, - { name: 'time', primitiveType: 'time' }, - { name: 'timestamp with time zone', primitiveType: 'dateTime' }, - { name: 'timestamp', primitiveType: 'dateTime' }, - { name: 'timestamptz', primitiveType: 'dateTime' }, - { name: 'timetz', primitiveType: 'time' }, - { name: 'tsquery', primitiveType: 'string' }, - { name: 'tsvector', primitiveType: 'string' }, - { name: 'txid_snapshot', primitiveType: 'string' }, - { name: 'uuid', primitiveType: 'string' }, - { name: 'varbit', primitiveType: 'int' }, - { name: 'varchar', primitiveType: 'string' }, - { name: 'xml', primitiveType: 'lob' }, -]; diff --git a/packages-legacy/vuerd/src/core/sql/dataType/SQLite.ts b/packages-legacy/vuerd/src/core/sql/dataType/SQLite.ts deleted file mode 100644 index 53f58b46..00000000 --- a/packages-legacy/vuerd/src/core/sql/dataType/SQLite.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { DataTypeHint } from '@/core/sql/dataType'; - -/** - * https://www.sqlite.org/datatype3.html - */ -export const SQLiteTypes: DataTypeHint[] = [ - { name: 'BLOB', primitiveType: 'lob' }, - { name: 'INTEGER', primitiveType: 'int' }, - { name: 'NUMERIC', primitiveType: 'decimal' }, - { name: 'REAL', primitiveType: 'double' }, - { name: 'TEXT', primitiveType: 'string' }, -]; diff --git a/packages-legacy/vuerd/src/core/sql/dataType/index.ts b/packages-legacy/vuerd/src/core/sql/dataType/index.ts deleted file mode 100644 index 3d5d79e4..00000000 --- a/packages-legacy/vuerd/src/core/sql/dataType/index.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { Database } from '@@types/engine/store/canvas.state'; - -import { MariaDBTypes } from './MariaDB'; -import { MSSQLTypes } from './MSSQL'; -import { MySQLTypes } from './MySQL'; -import { OracleTypes } from './Oracle'; -import { PostgreSQLTypes } from './PostgreSQL'; -import { SQLiteTypes } from './SQLite'; - -export type PrimitiveType = - | 'int' - | 'long' - | 'float' - | 'double' - | 'decimal' - | 'boolean' - | 'string' - | 'lob' - | 'date' - | 'dateTime' - | 'time'; - -export type PrimitiveTypeMap = Record; - -export interface DataTypeHint { - name: string; - primitiveType: PrimitiveType; -} - -export interface DatabaseHint { - database: Database; - dataTypeHints: DataTypeHint[]; -} - -export const databaseHints: DatabaseHint[] = [ - { - database: 'MariaDB', - dataTypeHints: MariaDBTypes, - }, - { - database: 'MSSQL', - dataTypeHints: MSSQLTypes, - }, - { - database: 'MySQL', - dataTypeHints: MySQLTypes, - }, - { - database: 'Oracle', - dataTypeHints: OracleTypes, - }, - { - database: 'PostgreSQL', - dataTypeHints: PostgreSQLTypes, - }, - { - database: 'SQLite', - dataTypeHints: SQLiteTypes, - }, -]; diff --git a/packages-legacy/vuerd/src/core/sql/ddl/MSSQL.ts b/packages-legacy/vuerd/src/core/sql/ddl/MSSQL.ts deleted file mode 100644 index 4c9f3450..00000000 --- a/packages-legacy/vuerd/src/core/sql/ddl/MSSQL.ts +++ /dev/null @@ -1,243 +0,0 @@ -import { autoName, getData, uuid } from '@/core/helper'; -import { orderByNameASC } from '@/engine/store/helper/table.helper'; -import { Store } from '@@types/engine/store'; - -import { - FormatColumnOptions, - FormatCommentOptions, - FormatIndexOptions, - formatNames, - FormatRelationOptions, - formatSize, - formatSpace, - FormatTableOptions, - getBracket, - KeyColumn, - Name, - primaryKey, - primaryKeyColumns, - unique, - uniqueColumns, -} from './helper'; - -export function createDDL({ - tableState, - relationshipState, - canvasState, -}: Store): string { - const fkNames: Name[] = []; - const indexNames: Name[] = []; - const stringBuffer: string[] = ['']; - const bracket = getBracket(canvasState.bracketType); - const tables = orderByNameASC(tableState.tables); - const relationships = relationshipState.relationships; - const indexes = tableState.indexes; - - tables.forEach(table => { - formatTable({ table, buffer: stringBuffer, bracket }); - stringBuffer.push(''); - // unique - if (unique(table.columns)) { - const uqColumns = uniqueColumns(table.columns); - uqColumns.forEach(column => { - stringBuffer.push(`ALTER TABLE ${bracket}${table.name}${bracket}`); - stringBuffer.push( - ` ADD CONSTRAINT ${bracket}UQ_${column.name}${bracket} UNIQUE (${bracket}${column.name}${bracket})\nGO` - ); - stringBuffer.push(''); - }); - } - formatComment({ table, buffer: stringBuffer, bracket }); - }); - relationships.forEach(relationship => { - formatRelation({ - tables, - relationship, - buffer: stringBuffer, - fkNames, - bracket, - }); - stringBuffer.push(''); - }); - - indexes.forEach(index => { - const table = getData(tables, index.tableId); - if (table) { - formatIndex({ table, index, buffer: stringBuffer, indexNames, bracket }); - stringBuffer.push(''); - } - }); - - return stringBuffer.join('\n'); -} - -export function formatTable({ table, buffer, bracket }: FormatTableOptions) { - buffer.push(`CREATE TABLE ${bracket}${table.name}${bracket}`); - buffer.push(`(`); - const pk = primaryKey(table.columns); - const spaceSize = formatSize(table.columns); - - table.columns.forEach((column, i) => { - if (pk) { - formatColumn({ column, isComma: true, spaceSize, buffer, bracket }); - } else { - formatColumn({ - column, - isComma: table.columns.length !== i + 1, - spaceSize, - buffer, - bracket, - }); - } - }); - // PK - if (pk) { - const pkColumns = primaryKeyColumns(table.columns); - buffer.push( - ` CONSTRAINT ${bracket}PK_${ - table.name - }${bracket} PRIMARY KEY (${formatNames(pkColumns, bracket)})` - ); - } - buffer.push(`)\nGO`); -} - -function formatColumn({ - column, - isComma, - spaceSize, - buffer, - bracket, -}: FormatColumnOptions) { - const stringBuffer: string[] = []; - stringBuffer.push( - ` ${bracket}${column.name}${bracket}` + - formatSpace(spaceSize.name - column.name.length) - ); - stringBuffer.push( - `${column.dataType}` + - formatSpace(spaceSize.dataType - column.dataType.length) - ); - if (column.option.notNull) { - stringBuffer.push(`NOT NULL`); - } - if (column.option.autoIncrement) { - stringBuffer.push(`IDENTITY(1,1)`); - } else { - if (column.default.trim() !== '') { - stringBuffer.push(`DEFAULT ${column.default}`); - } - } - buffer.push(stringBuffer.join(' ') + `${isComma ? ',' : ''}`); -} - -function formatComment({ table, buffer }: FormatCommentOptions) { - if (table.comment.trim() !== '') { - buffer.push(`EXECUTE sys.sp_addextendedproperty 'MS_Description',`); - buffer.push( - ` '${table.comment}', 'user', dbo, 'table', '${table.name}'\nGO` - ); - buffer.push(''); - } - table.columns.forEach(column => { - if (column.comment.trim() !== '') { - buffer.push(`EXECUTE sys.sp_addextendedproperty 'MS_Description',`); - buffer.push( - ` '${column.comment}', 'user', dbo, 'table', '${table.name}', 'column', '${column.name}'\nGO` - ); - buffer.push(''); - } - }); -} - -function formatRelation({ - tables, - relationship, - buffer, - fkNames, - bracket, -}: FormatRelationOptions) { - const startTable = getData(tables, relationship.start.tableId); - const endTable = getData(tables, relationship.end.tableId); - - if (startTable && endTable) { - buffer.push(`ALTER TABLE ${bracket}${endTable.name}${bracket}`); - - // FK - let fkName = `FK_${startTable.name}_TO_${endTable.name}`; - fkName = autoName(fkNames, '', fkName); - fkNames.push({ - id: uuid(), - name: fkName, - }); - - buffer.push(` ADD CONSTRAINT ${bracket}${fkName}${bracket}`); - - // key - const columns: KeyColumn = { - start: [], - end: [], - }; - relationship.end.columnIds.forEach(columnId => { - const column = getData(endTable.columns, columnId); - if (column) { - columns.end.push(column); - } - }); - relationship.start.columnIds.forEach(columnId => { - const column = getData(startTable.columns, columnId); - if (column) { - columns.start.push(column); - } - }); - - buffer.push(` FOREIGN KEY (${formatNames(columns.end, bracket)})`); - buffer.push( - ` REFERENCES ${bracket}${startTable.name}${bracket} (${formatNames( - columns.start, - bracket - )})\nGO` - ); - } -} - -export function formatIndex({ - table, - index, - buffer, - indexNames, - bracket, -}: FormatIndexOptions) { - const columnNames = index.columns - .map(indexColumn => { - const column = getData(table.columns, indexColumn.id); - if (column) { - return { - name: `${bracket}${column.name}${bracket} ${indexColumn.orderType}`, - }; - } - return null; - }) - .filter(columnName => columnName !== null) as { name: string }[]; - - if (columnNames.length !== 0) { - let indexName = index.name; - if (indexName.trim() === '') { - indexName = `IDX_${table.name}`; - indexName = autoName(indexNames, '', indexName); - indexNames.push({ - id: uuid(), - name: indexName, - }); - } - - if (index.unique) { - buffer.push(`CREATE UNIQUE INDEX ${bracket}${indexName}${bracket}`); - } else { - buffer.push(`CREATE INDEX ${bracket}${indexName}${bracket}`); - } - buffer.push( - ` ON ${bracket}${table.name}${bracket} (${formatNames(columnNames)})\nGO` - ); - } -} diff --git a/packages-legacy/vuerd/src/core/sql/ddl/MariaDB.ts b/packages-legacy/vuerd/src/core/sql/ddl/MariaDB.ts deleted file mode 100644 index 4a337635..00000000 --- a/packages-legacy/vuerd/src/core/sql/ddl/MariaDB.ts +++ /dev/null @@ -1,234 +0,0 @@ -import { autoName, getData, uuid } from '@/core/helper'; -import { orderByNameASC } from '@/engine/store/helper/table.helper'; -import { Store } from '@@types/engine/store'; - -import { - FormatColumnOptions, - FormatIndexOptions, - formatNames, - FormatRelationOptions, - formatSize, - formatSpace, - FormatTableOptions, - getBracket, - KeyColumn, - Name, - primaryKey, - primaryKeyColumns, - unique, - uniqueColumns, -} from './helper'; - -export function createDDL({ - tableState, - relationshipState, - canvasState, -}: Store): string { - const fkNames: Name[] = []; - const indexNames: Name[] = []; - const stringBuffer: string[] = ['']; - const bracket = getBracket(canvasState.bracketType); - const tables = orderByNameASC(tableState.tables); - const relationships = relationshipState.relationships; - const indexes = tableState.indexes; - - tables.forEach(table => { - formatTable({ table, buffer: stringBuffer, bracket }); - stringBuffer.push(''); - // unique - if (unique(table.columns)) { - const uqColumns = uniqueColumns(table.columns); - uqColumns.forEach(column => { - stringBuffer.push(`ALTER TABLE ${bracket}${table.name}${bracket}`); - stringBuffer.push( - ` ADD CONSTRAINT ${bracket}UQ_${column.name}${bracket} UNIQUE (${bracket}${column.name}${bracket});` - ); - stringBuffer.push(''); - }); - } - }); - relationships.forEach(relationship => { - formatRelation({ - tables, - relationship, - buffer: stringBuffer, - fkNames, - bracket, - }); - stringBuffer.push(''); - }); - - indexes.forEach(index => { - const table = getData(tables, index.tableId); - if (table) { - formatIndex({ - table, - index, - buffer: stringBuffer, - indexNames, - bracket, - }); - stringBuffer.push(''); - } - }); - - return stringBuffer.join('\n'); -} - -export function formatTable({ table, buffer, bracket }: FormatTableOptions) { - buffer.push(`CREATE TABLE ${bracket}${table.name}${bracket}`); - buffer.push(`(`); - const pk = primaryKey(table.columns); - const spaceSize = formatSize(table.columns); - - table.columns.forEach((column, i) => { - if (pk) { - formatColumn({ - column, - isComma: true, - spaceSize, - buffer, - bracket, - }); - } else { - formatColumn({ - column, - isComma: table.columns.length !== i + 1, - spaceSize, - buffer, - bracket, - }); - } - }); - if (pk) { - const pkColumns = primaryKeyColumns(table.columns); - buffer.push(` PRIMARY KEY (${formatNames(pkColumns, bracket)})`); - } - if (table.comment.trim() === '') { - buffer.push(`);`); - } else { - buffer.push(`) COMMENT '${table.comment}';`); - } -} - -function formatColumn({ - column, - isComma, - spaceSize, - buffer, - bracket, -}: FormatColumnOptions) { - const stringBuffer: string[] = []; - stringBuffer.push( - ` ${bracket}${column.name}${bracket}` + - formatSpace(spaceSize.name - column.name.length) - ); - stringBuffer.push( - `${column.dataType}` + - formatSpace(spaceSize.dataType - column.dataType.length) - ); - stringBuffer.push(`${column.option.notNull ? 'NOT NULL' : 'NULL '}`); - if (column.option.autoIncrement) { - stringBuffer.push(`AUTO_INCREMENT`); - } else { - if (column.default.trim() !== '') { - stringBuffer.push(`DEFAULT ${column.default}`); - } - } - if (column.comment.trim() !== '') { - stringBuffer.push(`COMMENT '${column.comment}'`); - } - buffer.push(stringBuffer.join(' ') + `${isComma ? ',' : ''}`); -} - -function formatRelation({ - tables, - relationship, - buffer, - fkNames, - bracket, -}: FormatRelationOptions) { - const startTable = getData(tables, relationship.start.tableId); - const endTable = getData(tables, relationship.end.tableId); - - if (startTable && endTable) { - buffer.push(`ALTER TABLE ${bracket}${endTable.name}${bracket}`); - - // FK - let fkName = `FK_${startTable.name}_TO_${endTable.name}`; - fkName = autoName(fkNames, '', fkName); - fkNames.push({ - id: uuid(), - name: fkName, - }); - - buffer.push(` ADD CONSTRAINT ${bracket}${fkName}${bracket}`); - - // key - const columns: KeyColumn = { - start: [], - end: [], - }; - relationship.end.columnIds.forEach(columnId => { - const column = getData(endTable.columns, columnId); - if (column) { - columns.end.push(column); - } - }); - relationship.start.columnIds.forEach(columnId => { - const column = getData(startTable.columns, columnId); - if (column) { - columns.start.push(column); - } - }); - - buffer.push(` FOREIGN KEY (${formatNames(columns.end, bracket)})`); - buffer.push( - ` REFERENCES ${bracket}${startTable.name}${bracket} (${formatNames( - columns.start, - bracket - )});` - ); - } -} - -export function formatIndex({ - table, - index, - buffer, - indexNames, - bracket, -}: FormatIndexOptions) { - const columnNames = index.columns - .map(indexColumn => { - const column = getData(table.columns, indexColumn.id); - if (column) { - return { - name: `${bracket}${column.name}${bracket} ${indexColumn.orderType}`, - }; - } - return null; - }) - .filter(columnName => columnName !== null) as { name: string }[]; - - if (columnNames.length !== 0) { - let indexName = index.name; - if (index.name.trim() === '') { - indexName = `IDX_${table.name}`; - indexName = autoName(indexNames, '', indexName); - indexNames.push({ - id: uuid(), - name: indexName, - }); - } - - if (index.unique) { - buffer.push(`CREATE UNIQUE INDEX ${bracket}${indexName}${bracket}`); - } else { - buffer.push(`CREATE INDEX ${bracket}${indexName}${bracket}`); - } - buffer.push( - ` ON ${bracket}${table.name}${bracket} (${formatNames(columnNames)});` - ); - } -} diff --git a/packages-legacy/vuerd/src/core/sql/ddl/MySQL.ts b/packages-legacy/vuerd/src/core/sql/ddl/MySQL.ts deleted file mode 100644 index eb86ebf5..00000000 --- a/packages-legacy/vuerd/src/core/sql/ddl/MySQL.ts +++ /dev/null @@ -1,235 +0,0 @@ -import { autoName, getData, uuid } from '@/core/helper'; -import { orderByNameASC } from '@/engine/store/helper/table.helper'; -import { Store } from '@@types/engine/store'; - -import { - FormatColumnOptions, - FormatIndexOptions, - formatNames, - FormatRelationOptions, - formatSize, - formatSpace, - FormatTableOptions, - getBracket, - KeyColumn, - Name, - primaryKey, - primaryKeyColumns, - unique, - uniqueColumns, -} from './helper'; - -export function createDDL({ - tableState, - relationshipState, - canvasState, -}: Store): string { - const fkNames: Name[] = []; - const indexNames: Name[] = []; - const stringBuffer: string[] = ['']; - const bracket = getBracket(canvasState.bracketType); - const tables = orderByNameASC(tableState.tables); - const relationships = relationshipState.relationships; - const indexes = tableState.indexes; - - tables.forEach(table => { - formatTable({ table, buffer: stringBuffer, bracket }); - stringBuffer.push(''); - // unique - if (unique(table.columns)) { - const uqColumns = uniqueColumns(table.columns); - uqColumns.forEach(column => { - stringBuffer.push(`ALTER TABLE ${bracket}${table.name}${bracket}`); - stringBuffer.push( - ` ADD CONSTRAINT ${bracket}UQ_${column.name}${bracket} UNIQUE (${bracket}${column.name}${bracket});` - ); - stringBuffer.push(''); - }); - } - }); - relationships.forEach(relationship => { - formatRelation({ - tables, - relationship, - buffer: stringBuffer, - fkNames, - bracket, - }); - stringBuffer.push(''); - }); - - indexes.forEach(index => { - const table = getData(tables, index.tableId); - if (table) { - formatIndex({ - table, - index, - buffer: stringBuffer, - indexNames, - bracket, - }); - stringBuffer.push(''); - } - }); - - return stringBuffer.join('\n'); -} - -export function formatTable({ table, buffer, bracket }: FormatTableOptions) { - buffer.push(`CREATE TABLE ${bracket}${table.name}${bracket}`); - buffer.push(`(`); - const pk = primaryKey(table.columns); - const spaceSize = formatSize(table.columns); - - table.columns.forEach((column, i) => { - if (pk) { - formatColumn({ - column, - isComma: true, - spaceSize, - buffer, - bracket, - }); - } else { - formatColumn({ - column, - isComma: table.columns.length !== i + 1, - spaceSize, - buffer, - bracket, - }); - } - }); - // PK - if (pk) { - const pkColumns = primaryKeyColumns(table.columns); - buffer.push(` PRIMARY KEY (${formatNames(pkColumns, bracket)})`); - } - if (table.comment.trim() === '') { - buffer.push(`);`); - } else { - buffer.push(`) COMMENT '${table.comment}';`); - } -} - -function formatColumn({ - column, - isComma, - spaceSize, - buffer, - bracket, -}: FormatColumnOptions) { - const stringBuffer: string[] = []; - stringBuffer.push( - ` ${bracket}${column.name}${bracket}` + - formatSpace(spaceSize.name - column.name.length) - ); - stringBuffer.push( - `${column.dataType}` + - formatSpace(spaceSize.dataType - column.dataType.length) - ); - stringBuffer.push(`${column.option.notNull ? 'NOT NULL' : 'NULL '}`); - if (column.option.autoIncrement) { - stringBuffer.push(`AUTO_INCREMENT`); - } else { - if (column.default.trim() !== '') { - stringBuffer.push(`DEFAULT ${column.default}`); - } - } - if (column.comment.trim() !== '') { - stringBuffer.push(`COMMENT '${column.comment}'`); - } - buffer.push(stringBuffer.join(' ') + `${isComma ? ',' : ''}`); -} - -function formatRelation({ - tables, - relationship, - buffer, - fkNames, - bracket, -}: FormatRelationOptions) { - const startTable = getData(tables, relationship.start.tableId); - const endTable = getData(tables, relationship.end.tableId); - - if (startTable && endTable) { - buffer.push(`ALTER TABLE ${bracket}${endTable.name}${bracket}`); - - // FK - let fkName = `FK_${startTable.name}_TO_${endTable.name}`; - fkName = autoName(fkNames, '', fkName); - fkNames.push({ - id: uuid(), - name: fkName, - }); - - buffer.push(` ADD CONSTRAINT ${bracket}${fkName}${bracket}`); - - // key - const columns: KeyColumn = { - start: [], - end: [], - }; - relationship.end.columnIds.forEach(columnId => { - const column = getData(endTable.columns, columnId); - if (column) { - columns.end.push(column); - } - }); - relationship.start.columnIds.forEach(columnId => { - const column = getData(startTable.columns, columnId); - if (column) { - columns.start.push(column); - } - }); - - buffer.push(` FOREIGN KEY (${formatNames(columns.end, bracket)})`); - buffer.push( - ` REFERENCES ${bracket}${startTable.name}${bracket} (${formatNames( - columns.start, - bracket - )});` - ); - } -} - -export function formatIndex({ - table, - index, - buffer, - indexNames, - bracket, -}: FormatIndexOptions) { - const columnNames = index.columns - .map(indexColumn => { - const column = getData(table.columns, indexColumn.id); - if (column) { - return { - name: `${bracket}${column.name}${bracket} ${indexColumn.orderType}`, - }; - } - return null; - }) - .filter(columnName => columnName !== null) as { name: string }[]; - - if (columnNames.length !== 0) { - let indexName = index.name; - if (index.name.trim() === '') { - indexName = `IDX_${table.name}`; - indexName = autoName(indexNames, '', indexName); - indexNames.push({ - id: uuid(), - name: indexName, - }); - } - - if (index.unique) { - buffer.push(`CREATE UNIQUE INDEX ${bracket}${indexName}${bracket}`); - } else { - buffer.push(`CREATE INDEX ${bracket}${indexName}${bracket}`); - } - buffer.push( - ` ON ${bracket}${table.name}${bracket} (${formatNames(columnNames)});` - ); - } -} diff --git a/packages-legacy/vuerd/src/core/sql/ddl/Oracle.ts b/packages-legacy/vuerd/src/core/sql/ddl/Oracle.ts deleted file mode 100644 index d2cbea9b..00000000 --- a/packages-legacy/vuerd/src/core/sql/ddl/Oracle.ts +++ /dev/null @@ -1,271 +0,0 @@ -import { autoName, getData, uuid } from '@/core/helper'; -import { orderByNameASC } from '@/engine/store/helper/table.helper'; -import { Store } from '@@types/engine/store'; - -import { - FormatColumnOptions, - FormatCommentOptions, - FormatIndexOptions, - formatNames, - FormatRelationOptions, - formatSize, - formatSpace, - FormatTableOptions, - getBracket, - KeyColumn, - Name, - primaryKey, - primaryKeyColumns, - unique, - uniqueColumns, -} from './helper'; - -export function createDDL({ - tableState, - relationshipState, - canvasState, -}: Store): string { - const fkNames: Name[] = []; - const aiNames: Name[] = []; - const trgNames: Name[] = []; - const indexNames: Name[] = []; - const stringBuffer: string[] = ['']; - const bracket = getBracket(canvasState.bracketType); - const tables = orderByNameASC(tableState.tables); - const relationships = relationshipState.relationships; - const indexes = tableState.indexes; - - tables.forEach(table => { - formatTable({ table, buffer: stringBuffer, bracket }); - stringBuffer.push(''); - // unique - if (unique(table.columns)) { - const uqColumns = uniqueColumns(table.columns); - uqColumns.forEach(column => { - stringBuffer.push(`ALTER TABLE ${bracket}${table.name}${bracket}`); - stringBuffer.push( - ` ADD CONSTRAINT ${bracket}UQ_${column.name}${bracket} UNIQUE (${bracket}${column.name}${bracket});` - ); - stringBuffer.push(''); - }); - } - // Sequence - table.columns.forEach(column => { - if (column.option.autoIncrement) { - let aiName = `SEQ_${table.name}`; - aiName = autoName(aiNames, '', aiName); - aiNames.push({ - id: uuid(), - name: aiName, - }); - - stringBuffer.push(`CREATE SEQUENCE ${aiName}`); - stringBuffer.push(`START WITH 1`); - stringBuffer.push(`INCREMENT BY 1;`); - stringBuffer.push(''); - - let trgName = `SEQ_TRG_${table.name}`; - trgName = autoName(aiNames, '', trgName); - trgNames.push({ - id: uuid(), - name: trgName, - }); - stringBuffer.push(`CREATE OR REPLACE TRIGGER ${trgName}`); - stringBuffer.push(`BEFORE INSERT ON ${table.name}`); - stringBuffer.push(`REFERENCING NEW AS NEW FOR EACH ROW`); - stringBuffer.push(`BEGIN`); - stringBuffer.push(` SELECT ${aiName}.NEXTVAL`); - stringBuffer.push(` INTO: NEW.${column.name}`); - stringBuffer.push(` FROM DUAL;`); - stringBuffer.push(`END;`); - stringBuffer.push(''); - } - }); - formatComment({ table, buffer: stringBuffer, bracket }); - }); - relationships.forEach(relationship => { - formatRelation({ - tables, - relationship, - buffer: stringBuffer, - fkNames, - bracket, - }); - stringBuffer.push(''); - }); - - indexes.forEach(index => { - const table = getData(tables, index.tableId); - if (table) { - formatIndex({ table, index, buffer: stringBuffer, indexNames, bracket }); - stringBuffer.push(''); - } - }); - - return stringBuffer.join('\n'); -} - -export function formatTable({ table, buffer, bracket }: FormatTableOptions) { - buffer.push(`CREATE TABLE ${bracket}${table.name}${bracket}`); - buffer.push(`(`); - const pk = primaryKey(table.columns); - const spaceSize = formatSize(table.columns); - - table.columns.forEach((column, i) => { - if (pk) { - formatColumn({ column, isComma: true, spaceSize, buffer, bracket }); - } else { - formatColumn({ - column, - isComma: table.columns.length !== i + 1, - spaceSize, - buffer, - bracket, - }); - } - }); - // PK - if (pk) { - const pkColumns = primaryKeyColumns(table.columns); - buffer.push( - ` CONSTRAINT ${bracket}PK_${ - table.name - }${bracket} PRIMARY KEY (${formatNames(pkColumns, bracket)})` - ); - } - buffer.push(`);`); -} - -function formatColumn({ - column, - isComma, - spaceSize, - buffer, - bracket, -}: FormatColumnOptions) { - const stringBuffer: string[] = []; - stringBuffer.push( - ` ${bracket}${column.name}${bracket}` + - formatSpace(spaceSize.name - column.name.length) - ); - stringBuffer.push( - `${column.dataType}` + - formatSpace(spaceSize.dataType - column.dataType.length) - ); - if (column.default.trim() !== '') { - stringBuffer.push(`DEFAULT ${column.default}`); - } - if (column.option.notNull) { - stringBuffer.push(`NOT NULL`); - } - buffer.push(stringBuffer.join(' ') + `${isComma ? ',' : ''}`); -} - -function formatComment({ table, buffer, bracket }: FormatCommentOptions) { - if (table.comment.trim() !== '') { - buffer.push( - `COMMENT ON TABLE ${bracket}${table.name}${bracket} IS '${table.comment}';` - ); - buffer.push(''); - } - table.columns.forEach(column => { - if (column.comment.trim() !== '') { - buffer.push( - `COMMENT ON COLUMN ${bracket}${table.name}${bracket}.${bracket}${column.name}${bracket} IS '${column.comment}';` - ); - buffer.push(''); - } - }); -} - -function formatRelation({ - tables, - relationship, - buffer, - fkNames, - bracket, -}: FormatRelationOptions) { - const startTable = getData(tables, relationship.start.tableId); - const endTable = getData(tables, relationship.end.tableId); - - if (startTable && endTable) { - buffer.push(`ALTER TABLE ${bracket}${endTable.name}${bracket}`); - - // FK - let fkName = `FK_${startTable.name}_TO_${endTable.name}`; - fkName = autoName(fkNames, '', fkName); - fkNames.push({ - id: uuid(), - name: fkName, - }); - - buffer.push(` ADD CONSTRAINT ${bracket}${fkName}${bracket}`); - - // key - const columns: KeyColumn = { - start: [], - end: [], - }; - relationship.end.columnIds.forEach(columnId => { - const column = getData(endTable.columns, columnId); - if (column) { - columns.end.push(column); - } - }); - relationship.start.columnIds.forEach(columnId => { - const column = getData(startTable.columns, columnId); - if (column) { - columns.start.push(column); - } - }); - - buffer.push(` FOREIGN KEY (${formatNames(columns.end, bracket)})`); - buffer.push( - ` REFERENCES ${bracket}${startTable.name}${bracket} (${formatNames( - columns.start, - bracket - )});` - ); - } -} - -export function formatIndex({ - table, - index, - buffer, - indexNames, - bracket, -}: FormatIndexOptions) { - const columnNames = index.columns - .map(indexColumn => { - const column = getData(table.columns, indexColumn.id); - if (column) { - return { - name: `${bracket}${column.name}${bracket} ${indexColumn.orderType}`, - }; - } - return null; - }) - .filter(columnName => columnName !== null) as { name: string }[]; - - if (columnNames.length !== 0) { - let indexName = index.name; - if (index.name.trim() === '') { - indexName = `IDX_${table.name}`; - indexName = autoName(indexNames, '', indexName); - indexNames.push({ - id: uuid(), - name: indexName, - }); - } - - if (index.unique) { - buffer.push(`CREATE UNIQUE INDEX ${bracket}${indexName}${bracket}`); - } else { - buffer.push(`CREATE INDEX ${bracket}${indexName}${bracket}`); - } - buffer.push( - ` ON ${bracket}${table.name}${bracket} (${formatNames(columnNames)});` - ); - } -} diff --git a/packages-legacy/vuerd/src/core/sql/ddl/PostgreSQL.ts b/packages-legacy/vuerd/src/core/sql/ddl/PostgreSQL.ts deleted file mode 100644 index 585f1371..00000000 --- a/packages-legacy/vuerd/src/core/sql/ddl/PostgreSQL.ts +++ /dev/null @@ -1,227 +0,0 @@ -import { autoName, getData, uuid } from '@/core/helper'; -import { orderByNameASC } from '@/engine/store/helper/table.helper'; -import { Store } from '@@types/engine/store'; - -import { - FormatColumnOptions, - FormatCommentOptions, - FormatIndexOptions, - formatNames, - FormatRelationOptions, - formatSize, - formatSpace, - FormatTableOptions, - getBracket, - KeyColumn, - Name, - primaryKey, - primaryKeyColumns, -} from './helper'; - -export function createDDL({ - tableState, - relationshipState, - canvasState, -}: Store): string { - const fkNames: Name[] = []; - const indexNames: Name[] = []; - const stringBuffer: string[] = ['']; - const bracket = getBracket(canvasState.bracketType); - const tables = orderByNameASC(tableState.tables); - const relationships = relationshipState.relationships; - const indexes = tableState.indexes; - - tables.forEach(table => { - formatTable({ table, buffer: stringBuffer, bracket }); - stringBuffer.push(''); - formatComment({ table, buffer: stringBuffer, bracket }); - }); - relationships.forEach(relationship => { - formatRelation({ - tables, - relationship, - buffer: stringBuffer, - fkNames, - bracket, - }); - stringBuffer.push(''); - }); - - indexes.forEach(index => { - const table = getData(tables, index.tableId); - if (table) { - formatIndex({ table, index, buffer: stringBuffer, indexNames, bracket }); - stringBuffer.push(''); - } - }); - - return stringBuffer.join('\n'); -} - -export function formatTable({ table, buffer, bracket }: FormatTableOptions) { - buffer.push(`CREATE TABLE ${bracket}${table.name}${bracket}`); - buffer.push(`(`); - const pk = primaryKey(table.columns); - const spaceSize = formatSize(table.columns); - - table.columns.forEach((column, i) => { - if (pk) { - formatColumn({ column, isComma: true, spaceSize, buffer, bracket }); - } else { - formatColumn({ - column, - isComma: table.columns.length !== i + 1, - spaceSize, - buffer, - bracket, - }); - } - }); - // PK - if (pk) { - const pkColumns = primaryKeyColumns(table.columns); - buffer.push(` PRIMARY KEY (${formatNames(pkColumns, bracket)})`); - } - buffer.push(`);`); -} - -function formatColumn({ - column, - isComma, - spaceSize, - buffer, - bracket, -}: FormatColumnOptions) { - const stringBuffer: string[] = []; - stringBuffer.push( - ` ${bracket}${column.name}${bracket}` + - formatSpace(spaceSize.name - column.name.length) - ); - stringBuffer.push( - `${column.dataType}` + - formatSpace(spaceSize.dataType - column.dataType.length) - ); - if (column.option.notNull) { - stringBuffer.push(`NOT NULL`); - } - if (column.option.autoIncrement) { - stringBuffer.push(`GENERATED ALWAYS AS IDENTITY`); - } else { - if (column.default.trim() !== '') { - stringBuffer.push(`DEFAULT ${column.default}`); - } - } - if (column.option.unique) { - stringBuffer.push(`UNIQUE`); - } - buffer.push(stringBuffer.join(' ') + `${isComma ? ',' : ''}`); -} - -function formatComment({ table, buffer, bracket }: FormatCommentOptions) { - if (table.comment.trim() !== '') { - buffer.push( - `COMMENT ON TABLE ${bracket}${table.name}${bracket} IS '${table.comment}';` - ); - buffer.push(''); - } - table.columns.forEach(column => { - if (column.comment.trim() !== '') { - buffer.push( - `COMMENT ON COLUMN ${bracket}${table.name}${bracket}.${bracket}${column.name}${bracket} IS '${column.comment}';` - ); - buffer.push(''); - } - }); -} - -function formatRelation({ - tables, - relationship, - buffer, - fkNames, - bracket, -}: FormatRelationOptions) { - const startTable = getData(tables, relationship.start.tableId); - const endTable = getData(tables, relationship.end.tableId); - - if (startTable && endTable) { - buffer.push(`ALTER TABLE ${bracket}${endTable.name}${bracket}`); - - // FK 중복 처리 - let fkName = `FK_${startTable.name}_TO_${endTable.name}`; - fkName = autoName(fkNames, '', fkName); - fkNames.push({ - id: uuid(), - name: fkName, - }); - - buffer.push(` ADD CONSTRAINT ${bracket}${fkName}${bracket}`); - - // key - const columns: KeyColumn = { - start: [], - end: [], - }; - relationship.end.columnIds.forEach(columnId => { - const column = getData(endTable.columns, columnId); - if (column) { - columns.end.push(column); - } - }); - relationship.start.columnIds.forEach(columnId => { - const column = getData(startTable.columns, columnId); - if (column) { - columns.start.push(column); - } - }); - - buffer.push(` FOREIGN KEY (${formatNames(columns.end, bracket)})`); - buffer.push( - ` REFERENCES ${bracket}${startTable.name}${bracket} (${formatNames( - columns.start, - bracket - )});` - ); - } -} - -export function formatIndex({ - table, - index, - buffer, - indexNames, - bracket, -}: FormatIndexOptions) { - const columnNames = index.columns - .map(indexColumn => { - const column = getData(table.columns, indexColumn.id); - if (column) { - return { - name: `${bracket}${column.name}${bracket} ${indexColumn.orderType}`, - }; - } - return null; - }) - .filter(columnName => columnName !== null) as { name: string }[]; - - if (columnNames.length !== 0) { - let indexName = index.name; - if (index.name.trim() === '') { - indexName = `IDX_${table.name}`; - indexName = autoName(indexNames, '', indexName); - indexNames.push({ - id: uuid(), - name: indexName, - }); - } - - if (index.unique) { - buffer.push(`CREATE UNIQUE INDEX ${bracket}${indexName}${bracket}`); - } else { - buffer.push(`CREATE INDEX ${bracket}${indexName}${bracket}`); - } - buffer.push( - ` ON ${bracket}${table.name}${bracket} (${formatNames(columnNames)});` - ); - } -} diff --git a/packages-legacy/vuerd/src/core/sql/ddl/SQLite.ts b/packages-legacy/vuerd/src/core/sql/ddl/SQLite.ts deleted file mode 100644 index 7c02fa85..00000000 --- a/packages-legacy/vuerd/src/core/sql/ddl/SQLite.ts +++ /dev/null @@ -1,243 +0,0 @@ -import { autoName, getData, uuid } from '@/core/helper'; -import { - orderByNameASC, - orderByRelationship, -} from '@/engine/store/helper/table.helper'; -import { Store } from '@@types/engine/store'; -import { Relationship } from '@@types/engine/store/relationship.state'; -import { Table } from '@@types/engine/store/table.state'; - -import { - FormatColumnOptions, - FormatIndexOptions, - formatNames, - formatSize, - formatSpace, - getBracket, - KeyColumn, - Name, - primaryKey, - primaryKeyColumns, -} from './helper'; - -export function createDDL({ - tableState, - relationshipState, - canvasState, -}: Store): string { - const indexNames: Name[] = []; - const stringBuffer: string[] = ['']; - const bracket = getBracket(canvasState.bracketType); - const relationships = relationshipState.relationships; - const indexes = tableState.indexes; - const tables = orderByRelationship( - orderByNameASC(tableState.tables), - relationships - ); - - tables.forEach(table => { - formatTable({ - table, - tables, - relationships: relationships.filter( - relationship => relationship.end.tableId === table.id - ), - buffer: stringBuffer, - bracket, - }); - stringBuffer.push(''); - }); - - indexes.forEach(index => { - const table = getData(tables, index.tableId); - if (table) { - formatIndex({ table, index, buffer: stringBuffer, indexNames, bracket }); - stringBuffer.push(''); - } - }); - - return stringBuffer.join('\n'); -} - -interface FormatTableOptions { - table: Table; - tables: Table[]; - relationships: Relationship[]; - buffer: string[]; - bracket: string; -} -export function formatTable({ - table, - tables, - relationships, - buffer, - bracket, -}: FormatTableOptions) { - if (table.comment.trim() !== '') { - buffer.push(`-- ${table.comment}`); - } - buffer.push(`CREATE TABLE ${bracket}${table.name}${bracket}`); - buffer.push(`(`); - const pk = primaryKey(table.columns); - const spaceSize = formatSize(table.columns); - - table.columns.forEach((column, i) => { - if (pk || relationships.length !== 0) { - formatColumn({ column, isComma: true, spaceSize, buffer, bracket }); - } else { - formatColumn({ - column, - isComma: table.columns.length !== i + 1, - spaceSize, - buffer, - bracket, - }); - } - }); - // PK - if (pk) { - const pkColumns = primaryKeyColumns(table.columns); - if (relationships.length !== 0) { - if (pkColumns.length === 1) { - const autoIncrement = pkColumns[0].option.autoIncrement - ? ' AUTOINCREMENT' - : ''; - buffer.push( - ` PRIMARY KEY (${formatNames(pkColumns, bracket)}${autoIncrement}),` - ); - } else { - buffer.push(` PRIMARY KEY (${formatNames(pkColumns, bracket)}),`); - } - } else { - if (pkColumns.length === 1) { - const autoIncrement = pkColumns[0].option.autoIncrement - ? ' AUTOINCREMENT' - : ''; - buffer.push( - ` PRIMARY KEY (${formatNames(pkColumns, bracket)}${autoIncrement})` - ); - } else { - buffer.push(` PRIMARY KEY (${formatNames(pkColumns, bracket)})`); - } - } - } - - relationships.forEach((relationship, i) => { - const startTable = getData(tables, relationship.start.tableId); - const endTable = getData(tables, relationship.end.tableId); - - if (startTable && endTable) { - // key - const columns: KeyColumn = { - start: [], - end: [], - }; - relationship.end.columnIds.forEach(columnId => { - const column = getData(endTable.columns, columnId); - if (column) { - columns.end.push(column); - } - }); - relationship.start.columnIds.forEach(columnId => { - const column = getData(startTable.columns, columnId); - if (column) { - columns.start.push(column); - } - }); - - if (relationships.length - 1 > i) { - buffer.push( - ` FOREIGN KEY (${formatNames( - columns.end, - bracket - )}) REFERENCES ${bracket}${startTable.name}${bracket} (${formatNames( - columns.start, - bracket - )}),` - ); - } else { - buffer.push( - ` FOREIGN KEY (${formatNames( - columns.end, - bracket - )}) REFERENCES ${bracket}${startTable.name}${bracket} (${formatNames( - columns.start, - bracket - )})` - ); - } - } - }); - - buffer.push(`);`); -} - -function formatColumn({ - column, - isComma, - spaceSize, - buffer, - bracket, -}: FormatColumnOptions) { - if (column.comment.trim() !== '') { - buffer.push(` -- ${column.comment}`); - } - const stringBuffer: string[] = []; - stringBuffer.push( - ` ${bracket}${column.name}${bracket}` + - formatSpace(spaceSize.name - column.name.length) - ); - stringBuffer.push( - `${column.dataType}` + - formatSpace(spaceSize.dataType - column.dataType.length) - ); - stringBuffer.push(`${column.option.notNull ? 'NOT NULL' : 'NULL '}`); - if (column.option.unique) { - stringBuffer.push(`UNIQUE`); - } - if (!column.option.autoIncrement && column.default.trim() !== '') { - stringBuffer.push(`DEFAULT ${column.default}`); - } - buffer.push(stringBuffer.join(' ') + `${isComma ? ',' : ''}`); -} - -export function formatIndex({ - table, - index, - buffer, - indexNames, - bracket, -}: FormatIndexOptions) { - const columnNames = index.columns - .map(indexColumn => { - const column = getData(table.columns, indexColumn.id); - if (column) { - return { - name: `${bracket}${column.name}${bracket} ${indexColumn.orderType}`, - }; - } - return null; - }) - .filter(columnName => columnName !== null) as { name: string }[]; - - if (columnNames.length !== 0) { - let indexName = index.name; - if (index.name.trim() === '') { - indexName = `IDX_${table.name}`; - indexName = autoName(indexNames, '', indexName); - indexNames.push({ - id: uuid(), - name: indexName, - }); - } - - if (index.unique) { - buffer.push(`CREATE UNIQUE INDEX ${bracket}${indexName}${bracket}`); - } else { - buffer.push(`CREATE INDEX ${bracket}${indexName}${bracket}`); - } - buffer.push( - ` ON ${bracket}${table.name}${bracket} (${formatNames(columnNames)});` - ); - } -} diff --git a/packages-legacy/vuerd/src/core/sql/ddl/helper.ts b/packages-legacy/vuerd/src/core/sql/ddl/helper.ts deleted file mode 100644 index 9d7f6fac..00000000 --- a/packages-legacy/vuerd/src/core/sql/ddl/helper.ts +++ /dev/null @@ -1,123 +0,0 @@ -import { bracketTypeMap } from '@/engine/store/canvas.state'; -import { BracketType } from '@@types/engine/store/canvas.state'; -import { Relationship } from '@@types/engine/store/relationship.state'; -import { Column, Index, Table } from '@@types/engine/store/table.state'; - -export interface FormatTableOptions { - table: Table; - buffer: string[]; - bracket: string; -} - -export interface FormatColumnOptions { - column: Column; - isComma: boolean; - spaceSize: MaxLength; - buffer: string[]; - bracket: string; -} - -export interface FormatRelationOptions { - tables: Table[]; - relationship: Relationship; - buffer: string[]; - fkNames: Name[]; - bracket: string; -} - -export interface FormatIndexOptions { - table: Table; - index: Index; - buffer: string[]; - indexNames: Name[]; - bracket: string; -} - -export interface FormatCommentOptions { - table: Table; - buffer: string[]; - bracket: string; -} - -export interface Name { - id: string; - name: string; -} - -export interface KeyColumn { - start: Column[]; - end: Column[]; -} - -export function formatNames< - T extends { - name: string; - }, ->(list: T[], backtick?: string, backtick2?: string): string { - const buf: string[] = []; - list.forEach((v, i) => { - if (backtick) { - if (backtick2) { - buf.push(`${backtick}${v.name}${backtick2}`); - } else { - buf.push(`${backtick}${v.name}${backtick}`); - } - } else { - buf.push(v.name); - } - if (list.length !== i + 1) { - buf.push(', '); - } - }); - return buf.join(''); -} - -export interface MaxLength { - name: number; - dataType: number; -} - -export function formatSize(columns: Column[]): MaxLength { - let name = 0; - let dataType = 0; - columns.forEach(column => { - if (name < column.name.length) { - name = column.name.length; - } - if (dataType < column.dataType.length) { - dataType = column.dataType.length; - } - }); - return { - name, - dataType, - }; -} - -export function formatSpace(size: number): string { - const buf: string[] = []; - for (let i = 0; i < size; i++) { - buf.push(' '); - } - return buf.join(''); -} - -export function primaryKey(columns: Column[]): boolean { - return columns.some(column => column.option.primaryKey); -} - -export function primaryKeyColumns(columns: Column[]): Column[] { - return columns.filter(column => column.option.primaryKey); -} - -export function unique(columns: Column[]): boolean { - return columns.some(column => column.option.unique); -} - -export function uniqueColumns(columns: Column[]): Column[] { - return columns.filter(column => column.option.unique); -} - -export function getBracket(bracketType: BracketType) { - return bracketTypeMap[bracketType] ?? ''; -} diff --git a/packages-legacy/vuerd/src/core/sql/ddl/index.ts b/packages-legacy/vuerd/src/core/sql/ddl/index.ts deleted file mode 100644 index 9ec092c6..00000000 --- a/packages-legacy/vuerd/src/core/sql/ddl/index.ts +++ /dev/null @@ -1,164 +0,0 @@ -import { Store } from '@@types/engine/store'; -import { Database } from '@@types/engine/store/canvas.state'; -import { Table } from '@@types/engine/store/table.state'; - -import { getBracket, Name } from './helper'; -import { - createDDL as createDDLMariaDB, - formatIndex as formatIndexMariaDB, - formatTable as formatTableMariaDB, -} from './MariaDB'; -import { - createDDL as createDDLMSSQL, - formatIndex as formatIndexMSSQL, - formatTable as formatTableMSSQL, -} from './MSSQL'; -import { - createDDL as createDDLMySQL, - formatIndex as formatIndexMySQL, - formatTable as formatTableMySQL, -} from './MySQL'; -import { - createDDL as createDDLOracle, - formatIndex as formatIndexOracle, - formatTable as formatTableOracle, -} from './Oracle'; -import { - createDDL as createDDLPostgreSQL, - formatIndex as formatIndexPostgreSQL, - formatTable as formatTablePostgreSQL, -} from './PostgreSQL'; -import { - createDDL as createDDLSQLite, - formatIndex as formatIndexSQLite, - formatTable as formatTableSQLite, -} from './SQLite'; - -export function createDDL(store: Store, database?: Database): string { - const currentDatabase = database ? database : store.canvasState.database; - switch (currentDatabase) { - case 'MariaDB': - return createDDLMariaDB(store); - case 'MSSQL': - return createDDLMSSQL(store); - case 'MySQL': - return createDDLMySQL(store); - case 'Oracle': - return createDDLOracle(store); - case 'PostgreSQL': - return createDDLPostgreSQL(store); - case 'SQLite': - return createDDLSQLite(store); - } - return ''; -} - -export function createDDLTable( - { canvasState, tableState, relationshipState }: Store, - table: Table -): string { - const stringBuffer: string[] = ['']; - const database = canvasState.database; - const indexNames: Name[] = []; - const indexes = tableState.indexes.filter( - index => index.tableId === table.id - ); - const relationships = relationshipState.relationships; - const tables = tableState.tables; - const bracket = getBracket(canvasState.bracketType); - switch (database) { - case 'MariaDB': - formatTableMariaDB({ table, buffer: stringBuffer, bracket }); - stringBuffer.push(''); - indexes.forEach(index => { - formatIndexMariaDB({ - table, - index, - buffer: stringBuffer, - indexNames, - bracket, - }); - stringBuffer.push(''); - }); - break; - case 'MSSQL': - formatTableMSSQL({ table, buffer: stringBuffer, bracket }); - stringBuffer.push(''); - indexes.forEach(index => { - formatIndexMSSQL({ - table, - index, - buffer: stringBuffer, - indexNames, - bracket, - }); - stringBuffer.push(''); - }); - break; - case 'MySQL': - formatTableMySQL({ table, buffer: stringBuffer, bracket }); - stringBuffer.push(''); - indexes.forEach(index => { - formatIndexMySQL({ - table, - index, - buffer: stringBuffer, - indexNames, - bracket, - }); - stringBuffer.push(''); - }); - break; - case 'Oracle': - formatTableOracle({ table, buffer: stringBuffer, bracket }); - stringBuffer.push(''); - indexes.forEach(index => { - formatIndexOracle({ - table, - index, - buffer: stringBuffer, - indexNames, - bracket, - }); - stringBuffer.push(''); - }); - break; - case 'PostgreSQL': - formatTablePostgreSQL({ table, buffer: stringBuffer, bracket }); - stringBuffer.push(''); - indexes.forEach(index => { - formatIndexPostgreSQL({ - table, - index, - buffer: stringBuffer, - indexNames, - bracket, - }); - stringBuffer.push(''); - }); - break; - case 'SQLite': - formatTableSQLite({ - table, - tables, - relationships: relationships.filter( - relationship => relationship.end.tableId === table.id - ), - buffer: stringBuffer, - bracket, - }); - stringBuffer.push(''); - indexes.forEach(index => { - formatIndexSQLite({ - table, - index, - buffer: stringBuffer, - indexNames, - bracket, - }); - stringBuffer.push(''); - }); - break; - } - return stringBuffer.join('\n'); -} diff --git a/packages-legacy/vuerd/src/core/tagged.ts b/packages-legacy/vuerd/src/core/tagged.ts deleted file mode 100644 index 05ab8b90..00000000 --- a/packages-legacy/vuerd/src/core/tagged.ts +++ /dev/null @@ -1,7 +0,0 @@ -export const css = (arr: TemplateStringsArray, ...values: any[]) => - arr - .reduce>((acc, cur, i) => { - i < values.length ? acc.push(cur, values[i] ?? '') : acc.push(cur); - return acc; - }, []) - .join(''); diff --git a/packages-legacy/vuerd/src/core/theme.ts b/packages-legacy/vuerd/src/core/theme.ts deleted file mode 100644 index 5e46ee36..00000000 --- a/packages-legacy/vuerd/src/core/theme.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { kebabCase } from 'lodash-es'; - -import { isString } from '@/core/helper'; -import { Theme, ThemeKey } from '@@types/core/theme'; - -export const createTheme = (): Theme => ({ - canvas: '#282828', - table: '#191919', - tableActive: '#14496d', - focus: '#00a9ff', - keyPK: '#B4B400', - keyFK: '#dda8b1', - keyPFK: '#60b9c4', - font: '#a2a2a2', - fontActive: 'white', - fontPlaceholder: '#6D6D6D', - contextmenu: '#191919', - contextmenuActive: '#383d41', - edit: '#ffc107', - columnSelect: '#232a2f', - columnActive: '#372908', - minimapShadow: 'black', - scrollbarThumb: '#6D6D6D', - scrollbarThumbActive: '#a2a2a2', - menubar: 'black', - visualization: '#191919', - diffAdd: '#74c56a2a', - diffModify: '#ebd4703d', - diffRemove: '#dda8b12a', -}); - -export const loadTheme = (theme: Theme, newTheme: Partial) => - (Object.keys(theme) as ThemeKey[]) - .filter(key => isString(newTheme[key])) - .forEach(key => (theme[key] = newTheme[key] as string)); - -export const themeToString = (theme: Theme) => - Object.keys(theme) - .map( - key => - `--vuerd-color-${kebabCase(key)}: var(--vuerd-theme-${kebabCase( - key - )}, ${theme[key as ThemeKey]});` - ) - .join(''); diff --git a/packages-legacy/vuerd/src/engine/command/canvas.cmd.helper.gen.ts b/packages-legacy/vuerd/src/engine/command/canvas.cmd.helper.gen.ts deleted file mode 100644 index bbce6da3..00000000 --- a/packages-legacy/vuerd/src/engine/command/canvas.cmd.helper.gen.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { round } from 'lodash-es'; - -import { getViewport, getZoomViewport } from '@/core/helper/dragSelect.helper'; -import { - moveCanvas, - movementCanvas, - movementZoomCanvas, - zoomCanvas, -} from '@/engine/command/canvas.cmd.helper'; -import { zoomBalanceRange } from '@/engine/store/helper/canvas.helper'; -import { Store } from '@@types/engine/store'; - -function zoomLevelInRange(zoom: number) { - return round(zoomBalanceRange(zoom), 2); -} - -function getMovementScrollTo(store: Store, nextZoomLevel: number) { - const viewport = getViewport(store); - const { - canvasState: { width, height, zoomLevel, scrollLeft, scrollTop }, - } = store; - - const zoomViewport = getZoomViewport(width, height, zoomLevel); - const nextZoomViewport = getZoomViewport(width, height, nextZoomLevel); - const x = (zoomViewport.w - nextZoomViewport.w) / 2; - const y = (zoomViewport.h - nextZoomViewport.h) / 2; - const centerX = width / 2; - const centerY = height / 2; - const viewportCenterX = scrollLeft * -1 + viewport.width / 2; - const viewportCenterY = scrollTop * -1 + viewport.height / 2; - const centerXRatio = (centerX - viewportCenterX) / centerX; - const centerYRatio = (centerY - viewportCenterY) / centerY; - const movementX = round(-1 * x * centerXRatio, 4); - const movementY = round(-1 * y * centerYRatio, 4); - - return { movementX, movementY }; -} - -export function* movementZoomCanvas$(store: Store, value: number) { - const nextZoomLevel = zoomLevelInRange(store.canvasState.zoomLevel + value); - const { movementX, movementY } = getMovementScrollTo(store, nextZoomLevel); - - yield movementZoomCanvas(value); - yield movementCanvas(movementX, movementY); -} - -export function* zoomCanvas$(store: Store, value: number) { - const nextZoomLevel = zoomLevelInRange(value); - const { movementX, movementY } = getMovementScrollTo(store, nextZoomLevel); - const { scrollTop, scrollLeft } = store.canvasState; - - yield zoomCanvas(value); - yield moveCanvas(scrollTop + movementY, scrollLeft + movementX); -} diff --git a/packages-legacy/vuerd/src/engine/command/canvas.cmd.helper.ts b/packages-legacy/vuerd/src/engine/command/canvas.cmd.helper.ts deleted file mode 100644 index 7483ae96..00000000 --- a/packages-legacy/vuerd/src/engine/command/canvas.cmd.helper.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { zoomBalanceRange } from '@/engine/store/helper/canvas.helper'; -import { Store } from '@@types/engine/store'; -import { - BracketType, - ColumnType, - Database, - HighlightTheme, - Language, - NameCase, - ShowKey, -} from '@@types/engine/store/canvas.state'; - -import { createCommand } from './helper'; - -export const moveCanvas = (scrollTop: number, scrollLeft: number) => - createCommand('canvas.move', { scrollTop, scrollLeft }); - -export const movementCanvas = (movementX: number, movementY: number) => - createCommand('canvas.movement', { movementX, movementY }); - -export const resizeCanvas = (width: number, height: number) => - createCommand('canvas.resize', { width, height }); - -export const zoomCanvas = (zoomLevel: number) => - createCommand('canvas.zoom', { - zoomLevel: zoomBalanceRange(zoomLevel), - }); - -export const movementZoomCanvas = (movementZoomLevel: number) => - createCommand('canvas.movementZoom', { - movementZoomLevel, - }); - -export const changeCanvasShow = ( - { canvasState: { show } }: Store, - showKey: ShowKey -) => createCommand('canvas.changeShow', { showKey, value: !show[showKey] }); - -export const changeDatabase = (database: Database) => - createCommand('canvas.changeDatabase', { database }); - -export const changeDatabaseName = (value: string) => - createCommand('canvas.changeDatabaseName', { value }); - -export const changeCanvasType = (canvasType: string) => - createCommand('canvas.changeCanvasType', { canvasType }); - -export const changeLanguage = (language: Language) => - createCommand('canvas.changeLanguage', { language }); - -export const changeTableCase = (nameCase: NameCase) => - createCommand('canvas.changeTableCase', { nameCase }); - -export const changeColumnCase = (nameCase: NameCase) => - createCommand('canvas.changeColumnCase', { nameCase }); - -export const changeRelationshipDataTypeSync = (value: boolean) => - createCommand('canvas.changeRelationshipDataTypeSync', { value }); - -export const changeRelationshipOptimization = (value: boolean) => - createCommand('canvas.changeRelationshipOptimization', { value }); - -export const moveColumnOrder = ( - columnType: ColumnType, - targetColumnType: ColumnType -) => createCommand('canvas.moveColumnOrder', { columnType, targetColumnType }); - -export const changeHighlightTheme = (highlightTheme: HighlightTheme) => - createCommand('canvas.changeHighlightTheme', { highlightTheme }); - -export const changeBracketType = (bracketType: BracketType) => - createCommand('canvas.changeBracketType', { bracketType }); - -export const changePluginSerialization = (key: string, value: string) => - createCommand('canvas.changePluginSerialization', { key, value }); diff --git a/packages-legacy/vuerd/src/engine/command/canvas.cmd.ts b/packages-legacy/vuerd/src/engine/command/canvas.cmd.ts deleted file mode 100644 index 3db780c7..00000000 --- a/packages-legacy/vuerd/src/engine/command/canvas.cmd.ts +++ /dev/null @@ -1,212 +0,0 @@ -import { round } from 'lodash-es'; - -import { createBalanceRange } from '@/core/helper'; -import { zoomBalanceRange } from '@/engine/store/helper/canvas.helper'; -import { ExecuteCommand } from '@/internal-types/command'; -import { - CanvasCommandMap, - ChangeBracketType, - ChangeCanvasShow, - ChangeCanvasType, - ChangeDatabase, - ChangeDatabaseName, - ChangeHighlightTheme, - ChangeLanguage, - ChangeNameCase, - ChangePluginSerialization, - ChangeRelationshipDataTypeSync, - ChangeRelationshipOptimization, - MoveCanvas, - MoveColumnOrder, - MovementCanvas, - MovementZoomCanvas, - ResizeCanvas, - ZoomCanvas, -} from '@@types/engine/command/canvas.cmd'; -import { State } from '@@types/engine/store'; - -export function executeMoveCanvas( - { canvasState, editorState: { viewport } }: State, - data: MoveCanvas -) { - const scrollTopBalanceRange = createBalanceRange( - viewport.height - canvasState.height, - 0 - ); - const scrollLeftBalanceRange = createBalanceRange( - viewport.width - canvasState.width, - 0 - ); - canvasState.scrollTop = scrollTopBalanceRange(data.scrollTop); - canvasState.scrollLeft = scrollLeftBalanceRange(data.scrollLeft); -} - -export function executeMovementCanvas( - { canvasState, editorState: { viewport } }: State, - data: MovementCanvas -) { - const scrollTopBalanceRange = createBalanceRange( - viewport.height - canvasState.height, - 0 - ); - const scrollLeftBalanceRange = createBalanceRange( - viewport.width - canvasState.width, - 0 - ); - canvasState.scrollTop = scrollTopBalanceRange( - canvasState.scrollTop + data.movementY - ); - canvasState.scrollLeft = scrollLeftBalanceRange( - canvasState.scrollLeft + data.movementX - ); -} - -export function executeResizeCanvas( - { canvasState }: State, - data: ResizeCanvas -) { - canvasState.width = data.width; - canvasState.height = data.height; -} - -export function executeZoomCanvas({ canvasState }: State, data: ZoomCanvas) { - canvasState.zoomLevel = round(zoomBalanceRange(data.zoomLevel), 2); -} - -export function executeMovementZoomCanvas( - { canvasState }: State, - data: MovementZoomCanvas -) { - canvasState.zoomLevel = round( - zoomBalanceRange(canvasState.zoomLevel + data.movementZoomLevel), - 2 - ); -} - -export function executeChangeCanvasShow( - { canvasState: { show } }: State, - data: ChangeCanvasShow -) { - show[data.showKey] = data.value; -} - -export function executeChangeDatabase( - { canvasState }: State, - data: ChangeDatabase -) { - canvasState.database = data.database; -} - -export function executeChangeDatabaseName( - { canvasState }: State, - data: ChangeDatabaseName -) { - canvasState.databaseName = data.value; -} - -export function executeChangeCanvasType( - { canvasState }: State, - data: ChangeCanvasType -) { - canvasState.canvasType = data.canvasType; -} - -export function executeChangeLanguage( - { canvasState }: State, - data: ChangeLanguage -) { - canvasState.language = data.language; -} - -export function executeChangeTableCase( - { canvasState }: State, - data: ChangeNameCase -) { - canvasState.tableCase = data.nameCase; -} - -export function executeChangeColumnCase( - { canvasState }: State, - data: ChangeNameCase -) { - canvasState.columnCase = data.nameCase; -} - -export function executeChangeRelationshipDataTypeSync( - { canvasState: { setting } }: State, - data: ChangeRelationshipDataTypeSync -) { - setting.relationshipDataTypeSync = data.value; -} - -export function executeChangeRelationshipOptimization( - { canvasState: { setting } }: State, - data: ChangeRelationshipOptimization -) { - setting.relationshipOptimization = data.value; -} - -export function executeMoveColumnOrder( - { - canvasState: { - setting: { columnOrder }, - }, - }: State, - data: MoveColumnOrder -) { - if (data.columnType === data.targetColumnType) return; - - const targetIndex = columnOrder.indexOf(data.targetColumnType); - const currentIndex = columnOrder.indexOf(data.columnType); - if (targetIndex === -1 || currentIndex === -1) return; - - columnOrder.splice(currentIndex, 1); - columnOrder.splice(targetIndex, 0, data.columnType); -} - -export function executeChangeHighlightTheme( - { canvasState }: State, - data: ChangeHighlightTheme -) { - canvasState.highlightTheme = data.highlightTheme; -} - -export function executeChangeBracketType( - { canvasState }: State, - data: ChangeBracketType -) { - canvasState.bracketType = data.bracketType; -} - -export function executeChangePluginSerialization( - { canvasState }: State, - data: ChangePluginSerialization -) { - canvasState.pluginSerializationMap[data.key] = data.value; -} - -export const executeCanvasCommandMap: Record< - keyof CanvasCommandMap, - ExecuteCommand -> = { - 'canvas.move': executeMoveCanvas, - 'canvas.movement': executeMovementCanvas, - 'canvas.resize': executeResizeCanvas, - 'canvas.zoom': executeZoomCanvas, - 'canvas.movementZoom': executeMovementZoomCanvas, - 'canvas.changeShow': executeChangeCanvasShow, - 'canvas.changeDatabase': executeChangeDatabase, - 'canvas.changeDatabaseName': executeChangeDatabaseName, - 'canvas.changeCanvasType': executeChangeCanvasType, - 'canvas.changeLanguage': executeChangeLanguage, - 'canvas.changeTableCase': executeChangeTableCase, - 'canvas.changeColumnCase': executeChangeColumnCase, - 'canvas.changeRelationshipDataTypeSync': - executeChangeRelationshipDataTypeSync, - 'canvas.changeRelationshipOptimization': - executeChangeRelationshipOptimization, - 'canvas.moveColumnOrder': executeMoveColumnOrder, - 'canvas.changeHighlightTheme': executeChangeHighlightTheme, - 'canvas.changeBracketType': executeChangeBracketType, - 'canvas.changePluginSerialization': executeChangePluginSerialization, -}; diff --git a/packages-legacy/vuerd/src/engine/command/column.cmd.helper.gen.ts b/packages-legacy/vuerd/src/engine/command/column.cmd.helper.gen.ts deleted file mode 100644 index a8dd15a8..00000000 --- a/packages-legacy/vuerd/src/engine/command/column.cmd.helper.gen.ts +++ /dev/null @@ -1,86 +0,0 @@ -import { createCommand } from '@/engine/command/helper'; -import { getRemoveFirstColumnId } from '@/engine/command/helper/editor.focus.helper'; -import { getColumn } from '@/engine/store/helper/column.helper'; -import { Store } from '@@types/engine/store'; -import { ColumnType } from '@@types/engine/store/canvas.state'; - -import { - addColumn, - changeColumnNotNull, - changeColumnPrimaryKey, - moveColumn, - removeColumn, -} from './column.cmd.helper'; -import { focusColumn, focusTable } from './editor.cmd.helper'; -import { selectTable } from './table.cmd.helper'; - -export function* addColumn$(store: Store, tableId?: string) { - const addColumnCmd = addColumn(store, tableId); - yield addColumnCmd; - const column = addColumnCmd.data[addColumnCmd.data.length - 1]; - yield focusColumn(column.tableId, column.id, 'columnName'); -} - -export function* removeColumn$( - { editorState }: Store, - tableId: string, - columnIds: string[] -) { - if (editorState.focusTable && editorState.focusTable.columnId) { - const columnId = getRemoveFirstColumnId(editorState.focusTable, columnIds); - - if (columnId) { - yield focusColumn( - editorState.focusTable.table.id, - columnId, - editorState.focusTable.focusType as ColumnType - ); - } else { - yield focusTable(editorState.focusTable.table.id, 'tableName'); - } - } - - yield removeColumn(tableId, columnIds); -} - -export function* changeColumnPrimaryKey$( - store: Store, - tableId: string, - columnId: string -) { - const { - tableState: { tables }, - } = store; - const changeColumnPrimaryKeyCmd = changeColumnPrimaryKey( - store, - tableId, - columnId - ); - - yield changeColumnPrimaryKeyCmd; - - const column = getColumn(tables, tableId, columnId); - if (!changeColumnPrimaryKeyCmd.data.value || !column || column.option.notNull) - return; - - yield changeColumnNotNull(store, tableId, columnId); -} - -export function* moveColumn$( - store: Store, - tableId: string, - columnIds: string[], - targetTableId: string, - targetColumnId: string -) { - yield moveColumn(tableId, columnIds, targetTableId, targetColumnId); - - if (tableId === targetTableId || columnIds.includes(targetColumnId)) return; - - yield createCommand('editor.draggableColumn', { - tableId: targetTableId, - columnIds, - }); - yield selectTable(store, false, targetTableId); - yield focusColumn(targetTableId, columnIds[0], 'columnName'); -} diff --git a/packages-legacy/vuerd/src/engine/command/column.cmd.helper.ts b/packages-legacy/vuerd/src/engine/command/column.cmd.helper.ts deleted file mode 100644 index 562dc536..00000000 --- a/packages-legacy/vuerd/src/engine/command/column.cmd.helper.ts +++ /dev/null @@ -1,216 +0,0 @@ -import { uuid } from '@/core/helper'; -import { SIZE_MIN_WIDTH } from '@/core/layout'; -import { getChangeOption } from '@/engine/store/helper/column.helper'; -import { Helper } from '@@types/core/helper'; -import { - AddCustomColumnUI, - AddCustomColumnValue, -} from '@@types/engine/command/column.cmd'; -import { Store } from '@@types/engine/store'; -import { Relationship } from '@@types/engine/store/relationship.state'; -import { Column, ColumnOption } from '@@types/engine/store/table.state'; - -import { createCommand } from './helper'; - -export * from './column.cmd.helper.gen'; - -export const addColumn = (store: Store, tableId?: string) => - createCommand( - 'column.add', - tableId - ? [ - { - id: uuid(), - tableId, - }, - ] - : store.tableState.tables - .filter(table => table.ui.active) - .map(table => { - return { - id: uuid(), - tableId: table.id, - }; - }) - ); - -export const addCustomColumn = ( - option: ColumnOption | null, - ui: AddCustomColumnUI | null, - value: AddCustomColumnValue | null, - tableIds: string[] -) => - createCommand( - 'column.addCustom', - tableIds.map(tableId => ({ - tableId, - id: uuid(), - option, - ui, - value, - })) - ); - -export const removeColumn = (tableId: string, columnIds: string[]) => - createCommand('column.remove', { - tableId, - columnIds, - }); - -export const removeOnlyColumn = (tableId: string, columnIds: string[]) => - createCommand('column.removeOnly', { - tableId, - columnIds, - }); - -export function changeColumnName( - helper: Helper, - tableId: string, - columnId: string, - value: string -) { - const width = helper.getTextWidth(value); - return createCommand('column.changeName', { - tableId, - columnId, - value, - width: width < SIZE_MIN_WIDTH ? SIZE_MIN_WIDTH : width, - }); -} - -export function changeColumnComment( - helper: Helper, - tableId: string, - columnId: string, - value: string -) { - const width = helper.getTextWidth(value); - return createCommand('column.changeComment', { - tableId, - columnId, - value, - width: width < SIZE_MIN_WIDTH ? SIZE_MIN_WIDTH : width, - }); -} - -export function changeColumnDataType( - helper: Helper, - tableId: string, - columnId: string, - value: string -) { - const width = helper.getTextWidth(value); - return createCommand('column.changeDataType', { - tableId, - columnId, - value, - width: width < SIZE_MIN_WIDTH ? SIZE_MIN_WIDTH : width, - }); -} - -export function changeColumnDefault( - helper: Helper, - tableId: string, - columnId: string, - value: string -) { - const width = helper.getTextWidth(value); - return createCommand('column.changeDefault', { - tableId, - columnId, - value, - width: width < SIZE_MIN_WIDTH ? SIZE_MIN_WIDTH : width, - }); -} - -export const changeColumnAutoIncrement = ( - { tableState: { tables } }: Store, - tableId: string, - columnId: string -) => - createCommand('column.changeAutoIncrement', { - tableId, - columnId, - value: getChangeOption(tables, tableId, columnId, 'autoIncrement'), - }); - -export const changeColumnPrimaryKey = ( - { tableState: { tables } }: Store, - tableId: string, - columnId: string -) => - createCommand('column.changePrimaryKey', { - tableId, - columnId, - value: getChangeOption(tables, tableId, columnId, 'primaryKey'), - }); - -export const changeColumnUnique = ( - { tableState: { tables } }: Store, - tableId: string, - columnId: string -) => - createCommand('column.changeUnique', { - tableId, - columnId, - value: getChangeOption(tables, tableId, columnId, 'unique'), - }); - -export const changeColumnNotNull = ( - { tableState: { tables } }: Store, - tableId: string, - columnId: string -) => - createCommand('column.changeNotNull', { - tableId, - columnId, - value: getChangeOption(tables, tableId, columnId, 'notNull'), - }); - -export const moveColumn = ( - tableId: string, - columnIds: string[], - targetTableId: string, - targetColumnId: string -) => - createCommand('column.move', { - tableId, - columnIds, - targetTableId, - targetColumnId, - }); - -export const activeColumn = ({ start, end }: Relationship) => - createCommand('column.active', [ - { - tableId: start.tableId, - columnIds: start.columnIds, - }, - { - tableId: end.tableId, - columnIds: end.columnIds, - }, - ]); - -export const activeEndColumn = ({ start, end }: Relationship) => - createCommand('column.activeEnd', [ - { - tableId: start.tableId, - columnIds: start.columnIds, - }, - { - tableId: end.tableId, - columnIds: end.columnIds, - }, - ]); - -export const loadColumn = ( - tableId: string, - columns: Column[], - indexList: number[] -) => - createCommand('column.load', { - tableId, - columns, - indexList, - }); diff --git a/packages-legacy/vuerd/src/engine/command/column.cmd.ts b/packages-legacy/vuerd/src/engine/command/column.cmd.ts deleted file mode 100644 index 64180408..00000000 --- a/packages-legacy/vuerd/src/engine/command/column.cmd.ts +++ /dev/null @@ -1,341 +0,0 @@ -import { getData, getIndex } from '@/core/helper'; -import { - commentWidthBalanceRange, - getColumn, - getDataTypeSyncColumns, -} from '@/engine/store/helper/column.helper'; -import { - removeValidColumnIndex, - removeValidColumnRelationship, - validIdentification, - validStartRelationship, -} from '@/engine/store/helper/valid.helper'; -import { ColumnModel } from '@/engine/store/models/column.model'; -import { ExecuteCommand } from '@/internal-types/command'; -import { - ActiveColumn, - AddColumn, - AddCustomColumn, - ChangeColumnOption, - ChangeColumnValue, - ColumnCommandMap, - LoadColumn, - MoveColumn, - RemoveColumn, -} from '@@types/engine/command/column.cmd'; -import { State } from '@@types/engine/store'; -import { Column } from '@@types/engine/store/table.state'; - -export function executeAddColumn( - { tableState: { tables } }: State, - data: AddColumn[] -) { - data.forEach((addColumn: AddColumn) => { - const table = getData(tables, addColumn.tableId); - - table && table.columns.push(new ColumnModel({ addColumn })); - }); -} - -export function executeAddCustomColumn( - { tableState: { tables } }: State, - data: AddCustomColumn[] -) { - data.forEach((addCustomColumn: AddCustomColumn) => { - const table = getData(tables, addCustomColumn.tableId); - if (!table) return; - - table.columns.push(new ColumnModel({ addCustomColumn })); - }); -} - -export function executeRemoveColumn(state: State, data: RemoveColumn) { - const { - tableState: { tables }, - } = state; - const table = getData(tables, data.tableId); - if (!table) return; - - for (let i = 0; i < table.columns.length; i++) { - const column = table.columns[i]; - - if (data.columnIds.includes(column.id)) { - table.columns.splice(i, 1); - i--; - } - } - - // TODO: Refactoring - removeValidColumnIndex(state, table, data.columnIds); - removeValidColumnRelationship(state, table, data.columnIds); - validIdentification(state); - validStartRelationship(state); -} - -export function executeRemoveOnlyColumn(state: State, data: RemoveColumn) { - const { - tableState: { tables }, - } = state; - const table = getData(tables, data.tableId); - if (!table) return; - - for (let i = 0; i < table.columns.length; i++) { - const column = table.columns[i]; - - if (data.columnIds.includes(column.id)) { - table.columns.splice(i, 1); - i--; - } - } -} - -export function executeChangeColumnName( - { tableState: { tables } }: State, - data: ChangeColumnValue -) { - const column = getColumn(tables, data.tableId, data.columnId); - if (!column) return; - - column.name = data.value; - column.ui.widthName = data.width; -} - -export function executeChangeColumnComment( - { tableState: { tables } }: State, - data: ChangeColumnValue -) { - const column = getColumn(tables, data.tableId, data.columnId); - if (!column) return; - - column.comment = data.value; - column.ui.widthComment = commentWidthBalanceRange(data.width); -} - -export function executeChangeColumnDataType( - { - canvasState: { setting }, - tableState: { tables }, - relationshipState: { relationships }, - }: State, - data: ChangeColumnValue -) { - const targetColumn = getColumn(tables, data.tableId, data.columnId); - if (!targetColumn) return; - - let columns: Column[] = [targetColumn]; - if (setting.relationshipDataTypeSync) { - columns = getDataTypeSyncColumns([targetColumn], tables, relationships); - } - - columns.forEach(column => { - column.dataType = data.value; - column.ui.widthDataType = data.width; - }); -} - -export function executeChangeColumnDefault( - { tableState: { tables } }: State, - data: ChangeColumnValue -) { - const column = getColumn(tables, data.tableId, data.columnId); - if (!column) return; - - column.default = data.value; - column.ui.widthDefault = data.width; -} - -export function executeChangeColumnAutoIncrement( - { tableState: { tables } }: State, - data: ChangeColumnOption -) { - const column = getColumn(tables, data.tableId, data.columnId); - if (!column) return; - - column.option.autoIncrement = data.value; -} - -export function executeChangeColumnPrimaryKey( - state: State, - data: ChangeColumnOption -) { - const { - tableState: { tables }, - } = state; - const column = getColumn(tables, data.tableId, data.columnId); - if (!column) return; - - if (data.value) { - if (column.ui.fk) { - column.ui.fk = false; - column.ui.pfk = true; - } else { - column.ui.pk = true; - } - } else { - if (column.ui.pfk) { - column.ui.pfk = false; - column.ui.fk = true; - } else { - column.ui.pk = false; - } - } - column.option.primaryKey = data.value; - - // TODO: Refactoring - validIdentification(state); -} - -export function executeChangeColumnUnique( - { tableState: { tables } }: State, - data: ChangeColumnOption -) { - const column = getColumn(tables, data.tableId, data.columnId); - if (!column) return; - - column.option.unique = data.value; -} - -export function executeChangeColumnNotNull( - state: State, - data: ChangeColumnOption -) { - const { - tableState: { tables }, - } = state; - const column = getColumn(tables, data.tableId, data.columnId); - if (!column) return; - - column.option.notNull = data.value; - - // TODO: Refactoring - validStartRelationship(state); -} - -export function executeMoveColumn(state: State, data: MoveColumn) { - const { - tableState: { tables }, - } = state; - const currentTable = getData(tables, data.tableId); - const currentColumns: Column[] = []; - - data.columnIds.forEach(columnId => { - const column = getColumn(tables, data.tableId, columnId); - - column && currentColumns.push(column); - }); - - const targetTable = getData(tables, data.targetTableId); - const targetColumn = getColumn( - tables, - data.targetTableId, - data.targetColumnId - ); - - if (!currentTable || !targetTable || !currentColumns.length || !targetColumn) - return; - - if ( - data.tableId === data.targetTableId && - !data.columnIds.includes(data.targetColumnId) - ) { - const targetIndex = getIndex(currentTable.columns, targetColumn.id); - if (targetIndex === -1) return; - - currentColumns.forEach(currentColumn => { - const currentIndex = getIndex(currentTable.columns, currentColumn.id); - if (currentIndex === -1) return; - - currentTable.columns.splice(currentIndex, 1); - }); - - currentTable.columns.splice(targetIndex, 0, ...currentColumns); - } else if ( - data.tableId !== data.targetTableId && - !data.columnIds.includes(data.targetColumnId) - ) { - const targetIndex = getIndex(targetTable.columns, targetColumn.id); - if (targetIndex === -1) return; - - currentColumns.forEach(currentColumn => { - const currentIndex = getIndex(currentTable.columns, currentColumn.id); - if (currentIndex === -1) return; - - currentTable.columns.splice(currentIndex, 1); - }); - - targetTable.columns.splice(targetIndex, 0, ...currentColumns); - - // TODO: Refactoring - removeValidColumnIndex(state, currentTable, data.columnIds); - removeValidColumnRelationship(state, currentTable, data.columnIds); - validIdentification(state); - validStartRelationship(state); - } -} - -export function executeActiveColumn( - { tableState: { tables } }: State, - data: ActiveColumn[] -) { - data.forEach(activeColumn => { - const table = getData(tables, activeColumn.tableId); - if (!table) return; - - activeColumn.columnIds.forEach(columnId => { - const column = getData(table.columns, columnId); - - column && (column.ui.active = true); - }); - }); -} - -export function executeActiveEndColumn( - { tableState: { tables } }: State, - data: ActiveColumn[] -) { - data.forEach(activeColumn => { - const table = getData(tables, activeColumn.tableId); - if (!table) return; - - activeColumn.columnIds.forEach(columnId => { - const column = getData(table.columns, columnId); - - column && (column.ui.active = false); - }); - }); -} - -export function executeLoadColumn( - { tableState: { tables } }: State, - data: LoadColumn -) { - const table = getData(tables, data.tableId); - if (!table) return; - - data.columns.forEach((column, index) => { - column.ui.active = false; - table.columns.splice(data.indexList[index], 0, column); - }); -} - -export const executeColumnCommandMap: Record< - keyof ColumnCommandMap, - ExecuteCommand -> = { - 'column.add': executeAddColumn, - 'column.addCustom': executeAddCustomColumn, - 'column.remove': executeRemoveColumn, - 'column.removeOnly': executeRemoveOnlyColumn, - 'column.changeName': executeChangeColumnName, - 'column.changeComment': executeChangeColumnComment, - 'column.changeDataType': executeChangeColumnDataType, - 'column.changeDefault': executeChangeColumnDefault, - 'column.changeAutoIncrement': executeChangeColumnAutoIncrement, - 'column.changePrimaryKey': executeChangeColumnPrimaryKey, - 'column.changeUnique': executeChangeColumnUnique, - 'column.changeNotNull': executeChangeColumnNotNull, - 'column.move': executeMoveColumn, - 'column.active': executeActiveColumn, - 'column.activeEnd': executeActiveEndColumn, - 'column.load': executeLoadColumn, -}; diff --git a/packages-legacy/vuerd/src/engine/command/editor.cmd.helper.gen.ts b/packages-legacy/vuerd/src/engine/command/editor.cmd.helper.gen.ts deleted file mode 100644 index 82b4ba28..00000000 --- a/packages-legacy/vuerd/src/engine/command/editor.cmd.helper.gen.ts +++ /dev/null @@ -1,166 +0,0 @@ -import { getData } from '@/core/helper'; -import { Store } from '@@types/engine/store'; -import { MoveKey } from '@@types/engine/store/editor.state'; -import { RelationshipType } from '@@types/engine/store/relationship.state'; -import { Column } from '@@types/engine/store/table.state'; - -import { addColumn$, addCustomColumn } from './column.cmd.helper'; -import { - clear, - draggableColumnEnd, - drawEndRelationship, - drawStartAddRelationship, - drawStartRelationship, - editTableEnd, - findActive, - focusColumn, - focusMoveTable, - initClear, - initLoadJson, - loadJson, - readonlyEditor, -} from './editor.cmd.helper'; -import { - isColumns, - isLastColumn, - isLastRowColumn, - isLastTable, - isTableFocusType, -} from './helper/editor.focus.helper'; -import { selectEndMemo } from './memo.cmd.helper'; -import { selectEndTable$ } from './table.cmd.helper'; - -export function* focusMoveTable$( - store: Store, - moveKey: MoveKey, - shiftKey: boolean -) { - const { - editorState: { focusTable }, - } = store; - if (!focusTable) return; - - if ( - moveKey === 'Tab' && - !shiftKey && - ((isTableFocusType(focusTable.focusType) && - isLastTable(store) && - !isColumns(focusTable)) || - (!isTableFocusType(focusTable.focusType) && - isLastColumn(store) && - isLastRowColumn(focusTable))) - ) { - yield addColumn$(store, focusTable.table.id); - } else { - yield focusMoveTable(moveKey, shiftKey); - } -} - -export function* drawStartRelationship$( - { editorState }: Store, - relationshipType: RelationshipType -) { - if (editorState.drawRelationship?.relationshipType === relationshipType) { - yield drawEndRelationship(); - } else { - yield drawStartRelationship(relationshipType); - } -} - -export function* drawStartAddRelationship$( - { tableState: { tables } }: Store, - tableId: string -) { - const table = getData(tables, tableId); - if (!table) return; - - if (!table.columns.some(column => column.option.primaryKey)) { - const addCustomColumnCmd = addCustomColumn( - { - autoIncrement: false, - primaryKey: true, - unique: false, - notNull: true, - }, - { - active: false, - pk: true, - fk: false, - pfk: false, - }, - null, - [tableId] - ); - - yield addCustomColumnCmd; - const column = addCustomColumnCmd.data[0]; - yield focusColumn(tableId, column.id, 'columnName'); - } - - yield drawStartAddRelationship(tableId); -} - -export function* loadJson$(value: string) { - yield clear(); - yield loadJson(value); -} - -export function* initLoadJson$(value: string) { - yield initClear(); - yield initLoadJson(value); -} - -export function* pasteColumn$({ editorState, tableState: { tables } }: Store) { - const copyColumns = [...editorState.copyColumns]; - const tableIds = tables - .filter(table => table.ui.active) - .map(table => table.id); - - while (copyColumns.length && tableIds.length) { - const column = copyColumns.shift() as Column; - const { option, ui } = column; - - yield addCustomColumn( - { - autoIncrement: option.autoIncrement, - primaryKey: option.primaryKey, - unique: option.unique, - notNull: option.notNull, - }, - { - active: false, - pk: option.primaryKey, - fk: false, - pfk: false, - }, - { - name: column.name, - dataType: column.dataType, - default: column.default, - comment: column.comment, - widthName: ui.widthName, - widthDataType: ui.widthDataType, - widthDefault: ui.widthDefault, - widthComment: ui.widthComment, - }, - tableIds - ); - } -} - -export function* findActive$() { - yield findActive(); - yield selectEndTable$(); - yield selectEndMemo(); -} - -export function* readonlyEditor$(readonly: boolean) { - if (readonly) { - yield editTableEnd(); - yield drawEndRelationship(); - yield draggableColumnEnd(); - yield readonlyEditor(readonly); - } else { - yield readonlyEditor(readonly); - } -} diff --git a/packages-legacy/vuerd/src/engine/command/editor.cmd.helper.ts b/packages-legacy/vuerd/src/engine/command/editor.cmd.helper.ts deleted file mode 100644 index a2149631..00000000 --- a/packages-legacy/vuerd/src/engine/command/editor.cmd.helper.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { Store } from '@@types/engine/store'; -import { ColumnType } from '@@types/engine/store/canvas.state'; -import { MoveKey, TableType } from '@@types/engine/store/editor.state'; -import { RelationshipType } from '@@types/engine/store/relationship.state'; - -import { createCommand } from './helper'; - -export * from './editor.cmd.helper.gen'; -export * from './editor/filter.cmd.helper'; - -export const hasUndoRedo = (hasUndo: boolean, hasRedo: boolean) => - createCommand('editor.hasUndoRedo', { hasUndo, hasRedo }); - -export const focusTable = (tableId: string, focusType?: TableType) => - createCommand('editor.focusTable', { tableId, focusType }); - -export const focusColumn = ( - tableId: string, - columnId: string, - focusType: ColumnType, - ctrlKey = false, - shiftKey = false -) => - createCommand('editor.focusColumn', { - tableId, - columnId, - focusType, - ctrlKey, - shiftKey, - }); - -export const focusTableEnd = () => createCommand('editor.focusTableEnd', null); - -export const focusMoveTable = (moveKey: MoveKey, shiftKey: boolean) => - createCommand('editor.focusMoveTable', { moveKey, shiftKey }); - -export const editTable = () => createCommand('editor.editTable', null); - -export const editTableEnd = () => createCommand('editor.editTableEnd', null); - -export const selectAllColumn = () => - createCommand('editor.selectAllColumn', null); - -export const drawStartRelationship = (relationshipType: RelationshipType) => - createCommand('editor.drawStartRelationship', { relationshipType }); - -export const drawStartAddRelationship = (tableId: string) => - createCommand('editor.drawStartAddRelationship', { tableId }); - -export const drawEndRelationship = () => - createCommand('editor.drawEndRelationship', null); - -export const drawRelationship = (x: number, y: number) => - createCommand('editor.drawRelationship', { x, y }); - -export const draggableColumn = ( - { editorState: { focusTable } }: Store, - tableId: string, - columnId: string, - ctrlKey: boolean -) => - createCommand('editor.draggableColumn', { - tableId, - columnIds: - ctrlKey && focusTable ? [...focusTable.selectColumnIds] : [columnId], - }); - -export const draggableColumnEnd = () => - createCommand('editor.draggableColumnEnd', null); - -export const loadJson = (value: string) => - createCommand('editor.loadJson', { value }); - -export const initLoadJson = (value: string) => - createCommand('editor.initLoadJson', { value }); - -export const clear = () => createCommand('editor.clear', null); - -export const initClear = () => createCommand('editor.initClear', null); - -export const changeViewport = (width: number, height: number) => - createCommand('editor.changeViewport', { width, height }); - -export const copyColumn = (tableId: string, columnIds: string[]) => - createCommand('editor.copyColumn', { - tableId, - columnIds, - }); - -export const findActive = () => createCommand('editor.findActive', null); - -export const findActiveEnd = () => createCommand('editor.findActiveEnd', null); - -export const readonlyEditor = (readonly: boolean) => - createCommand('editor.readonly', { readonly }); diff --git a/packages-legacy/vuerd/src/engine/command/editor.cmd.ts b/packages-legacy/vuerd/src/engine/command/editor.cmd.ts deleted file mode 100644 index 1864ee2b..00000000 --- a/packages-legacy/vuerd/src/engine/command/editor.cmd.ts +++ /dev/null @@ -1,358 +0,0 @@ -import { parserV2 } from '@dineug/erd-editor-schema'; - -import { cloneDeep, getData, isObject } from '@/core/helper'; -import { getAbsolutePoint } from '@/core/helper/dragSelect.helper'; -import { validStartRelationship } from '@/engine/store/helper/valid.helper'; -import { ExecuteCommand } from '@/internal-types/command'; -import { - CopyColumn, - DrawRelationship, - DrawStartAddRelationship, - DrawStartRelationship, - EditorCommandMap, - FocusColumn, - FocusMoveTable, - FocusTable, - HasUndoRedo, - LoadJson, - ReadonlyEditor, -} from '@@types/engine/command/editor.cmd'; -import { State } from '@@types/engine/store'; -import { DraggableColumn, Viewport } from '@@types/engine/store/editor.state'; -import { Memo } from '@@types/engine/store/memo.state'; -import { Relationship } from '@@types/engine/store/relationship.state'; -import { Index, PureTable } from '@@types/engine/store/table.state'; - -import { executeFilterCommandMap } from './editor/filter.cmd'; -import { - arrowDown, - arrowLeft, - arrowRight, - arrowUp, -} from './helper/editor.focus.helper'; -import { - appendSelectColumns, - appendSelectRangeColumns, - selectRangeColumns, -} from './helper/editor.helper'; -import { executeLoadIndex } from './index.cmd'; -import { executeLoadMemo } from './memo.cmd'; -import { executeLoadRelationship } from './relationship.cmd'; -import { executeLoadTable } from './table.cmd'; - -export function executeHasUndoRedo({ editorState }: State, data: HasUndoRedo) { - editorState.hasUndo = data.hasUndo; - editorState.hasRedo = data.hasRedo; -} - -export function executeFocusTable( - { editorState, tableState: { tables } }: State, - data: FocusTable -) { - if (editorState.focusTable?.table.id === data.tableId && data.focusType) { - editorState.focusTable.focusType = data.focusType; - editorState.focusTable.columnId = null; - editorState.focusTable.prevSelectColumnId = null; - editorState.focusTable.selectColumnIds = []; - } else if (data.focusType) { - const table = getData(tables, data.tableId); - if (!table) return; - - editorState.focusTable = { - table, - focusType: data.focusType, - columnId: null, - prevSelectColumnId: null, - selectColumnIds: [], - edit: false, - }; - } else if (editorState.focusTable?.table.id !== data.tableId) { - const table = getData(tables, data.tableId); - if (!table) return; - - editorState.focusTable = { - table, - focusType: 'tableName', - columnId: null, - prevSelectColumnId: null, - selectColumnIds: [], - edit: false, - }; - } -} - -export function executeFocusColumn( - { editorState, tableState: { tables } }: State, - data: FocusColumn -) { - if (editorState.focusTable?.table.id === data.tableId) { - const focusTable = editorState.focusTable; - focusTable.columnId = data.columnId; - focusTable.focusType = data.focusType; - - if (data.ctrlKey && data.shiftKey) { - focusTable.selectColumnIds = appendSelectRangeColumns( - focusTable.table.columns, - focusTable.selectColumnIds, - focusTable.prevSelectColumnId, - focusTable.columnId - ); - } else if (data.shiftKey) { - focusTable.selectColumnIds = selectRangeColumns( - focusTable.table.columns, - focusTable.prevSelectColumnId, - focusTable.columnId - ); - } else if (data.ctrlKey) { - focusTable.selectColumnIds = appendSelectColumns( - focusTable.selectColumnIds, - data.columnId - ); - } else { - focusTable.selectColumnIds = [data.columnId]; - } - - focusTable.prevSelectColumnId = data.columnId; - } else { - const table = getData(tables, data.tableId); - if (!table) return; - - editorState.focusTable = { - table, - focusType: data.focusType, - columnId: data.columnId, - prevSelectColumnId: data.columnId, - selectColumnIds: [data.columnId], - edit: false, - }; - } -} - -export function executeFocusTableEnd({ editorState }: State) { - editorState.focusTable = null; -} - -export function executeFocusMoveTable(state: State, data: FocusMoveTable) { - const { editorState } = state; - if (!editorState.focusTable) return; - editorState.focusTable.edit = false; - - switch (data.moveKey) { - case 'ArrowUp': - arrowUp(state, data); - break; - case 'ArrowDown': - arrowDown(state, data); - break; - case 'ArrowLeft': - arrowLeft(state, data); - break; - case 'ArrowRight': - arrowRight(state, data); - break; - case 'Tab': - data.shiftKey ? arrowLeft(state, data) : arrowRight(state, data); - break; - } -} - -export function executeEditTable({ editorState: { focusTable } }: State) { - if (!focusTable) return; - focusTable.edit = true; -} - -export function executeEditTableEnd({ editorState: { focusTable } }: State) { - if (!focusTable) return; - focusTable.edit = false; -} - -export function executeSelectAllColumn({ editorState: { focusTable } }: State) { - if (!focusTable) return; - focusTable.selectColumnIds = focusTable.table.columns.map( - column => column.id - ); -} - -export function executeDrawStartRelationship( - { editorState }: State, - data: DrawStartRelationship -) { - editorState.drawRelationship = { - relationshipType: data.relationshipType, - start: null, - end: { - x: 0, - y: 0, - }, - }; -} - -export function executeDrawStartAddRelationship( - { tableState: { tables }, editorState: { drawRelationship } }: State, - data: DrawStartAddRelationship -) { - if (!drawRelationship) return; - - const table = getData(tables, data.tableId); - if (!table) return; - - drawRelationship.start = { - table, - x: table.ui.left, - y: table.ui.top, - }; -} - -export function executeDrawEndRelationship({ editorState }: State) { - editorState.drawRelationship = null; -} - -export function executeDrawRelationship( - { - editorState: { drawRelationship }, - canvasState: { scrollLeft, scrollTop, zoomLevel, width, height }, - }: State, - { x, y }: DrawRelationship -) { - if (!drawRelationship?.start) return; - - const absolutePoint = getAbsolutePoint( - { x: x - scrollLeft, y: y - scrollTop }, - width, - height, - zoomLevel - ); - - drawRelationship.end.x = absolutePoint.x; - drawRelationship.end.y = absolutePoint.y; -} - -export function executeDraggableColumn( - { editorState }: State, - data: DraggableColumn -) { - editorState.draggableColumn = data; -} - -export function executeDraggableColumnEnd({ editorState }: State) { - editorState.draggableColumn = null; -} - -export function executeLoadJson(state: State, data: LoadJson) { - const schema = parserV2(data.value); - - Object.assign(state.canvasState, schema.canvas); - - const tableJson = schema.table as any; - if (isObject(tableJson)) { - Array.isArray(tableJson.tables) && - tableJson.tables.forEach((loadTable: PureTable) => - executeLoadTable(state, loadTable) - ); - - Array.isArray(tableJson.indexes) && - tableJson.indexes.forEach((loadIndex: Index) => - executeLoadIndex(state, loadIndex) - ); - } - - const memoJson = schema.memo as any; - if (isObject(memoJson) && Array.isArray(memoJson.memos)) { - memoJson.memos.forEach((loadMemo: Memo) => - executeLoadMemo(state, loadMemo) - ); - } - - const relationshipJson = schema.relationship as any; - if ( - isObject(relationshipJson) && - Array.isArray(relationshipJson.relationships) - ) { - relationshipJson.relationships.forEach((loadRelationship: Relationship) => { - executeLoadRelationship(state, loadRelationship); - }); - - // migration version 2.0.3 - validStartRelationship(state); - } -} - -export function executeClear({ - tableState: { tables, indexes }, - memoState: { memos }, - relationshipState: { relationships }, -}: State) { - tables.splice(0, tables.length); - indexes.splice(0, indexes.length); - memos.splice(0, memos.length); - relationships.splice(0, relationships.length); -} - -export function executeChangeViewport( - { editorState: { viewport } }: State, - data: Viewport -) { - viewport.width = data.width; - viewport.height = data.height; -} - -export function executeCopyColumn( - { tableState: { tables }, editorState: { copyColumns } }: State, - data: CopyColumn -) { - const table = getData(tables, data.tableId); - if (!table) return; - - copyColumns.splice(0, copyColumns.length); - data.columnIds.forEach(columnId => { - const column = getData(table.columns, columnId); - if (!column) return; - - copyColumns.push(cloneDeep(column)); - }); -} - -export function executeFindActive({ editorState }: State) { - editorState.findActive = true; -} - -export function executeFindActiveEnd({ editorState }: State) { - editorState.findActive = false; -} - -export function executeReadonlyEditor( - { editorState }: State, - data: ReadonlyEditor -) { - editorState.readonly = data.readonly; -} - -export const executeEditorCommandMap: Record< - keyof EditorCommandMap, - ExecuteCommand -> = { - 'editor.hasUndoRedo': executeHasUndoRedo, - 'editor.focusTable': executeFocusTable, - 'editor.focusColumn': executeFocusColumn, - 'editor.focusTableEnd': executeFocusTableEnd, - 'editor.focusMoveTable': executeFocusMoveTable, - 'editor.editTable': executeEditTable, - 'editor.editTableEnd': executeEditTableEnd, - 'editor.selectAllColumn': executeSelectAllColumn, - 'editor.drawStartRelationship': executeDrawStartRelationship, - 'editor.drawStartAddRelationship': executeDrawStartAddRelationship, - 'editor.drawEndRelationship': executeDrawEndRelationship, - 'editor.drawRelationship': executeDrawRelationship, - 'editor.draggableColumn': executeDraggableColumn, - 'editor.draggableColumnEnd': executeDraggableColumnEnd, - 'editor.loadJson': executeLoadJson, - 'editor.initLoadJson': executeLoadJson, - 'editor.clear': executeClear, - 'editor.initClear': executeClear, - 'editor.changeViewport': executeChangeViewport, - 'editor.copyColumn': executeCopyColumn, - 'editor.findActive': executeFindActive, - 'editor.findActiveEnd': executeFindActiveEnd, - 'editor.readonly': executeReadonlyEditor, - ...executeFilterCommandMap, -}; diff --git a/packages-legacy/vuerd/src/engine/command/editor/filter.cmd.helper.gen.ts b/packages-legacy/vuerd/src/engine/command/editor/filter.cmd.helper.gen.ts deleted file mode 100644 index aced90ce..00000000 --- a/packages-legacy/vuerd/src/engine/command/editor/filter.cmd.helper.gen.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { - getRemoveFirstFilterId, - isFilterFocusType, - isFilters, - isLastFilterColumn, - isLastRowFilter, -} from '@/engine/command/helper/editor/filter.focus.helper'; -import { Store } from '@@types/engine/store'; -import { MoveKey } from '@@types/engine/store/editor.state'; -import { FocusFilterType } from '@@types/engine/store/editor/filter.state'; - -import { - addFilter, - filterActive, - filterActiveEnd, - filterFocus, - focusFilter, - focusFilterEnd, - focusMoveFilter, - removeFilter, -} from './filter.cmd.helper'; - -export function* filterActive$() { - yield filterActive(); - yield filterFocus(); -} - -export function* filterActiveEnd$() { - yield filterActiveEnd(); - yield focusFilterEnd(); -} - -export function* addFilter$() { - const addFilterCmd = addFilter(); - yield addFilterCmd; - yield focusFilter(addFilterCmd.data.id, 'columnType'); -} - -export function* removeFilter$( - { editorState: { filterState } }: Store, - filterIds: string[] -) { - if (filterState.focus && filterState.focus.filterId) { - const filterId = getRemoveFirstFilterId(filterState, filterIds); - - if (filterId) { - yield focusFilter( - filterId, - filterState.focus.focusType as FocusFilterType - ); - } else { - yield filterFocus(); - } - } - - yield removeFilter(filterIds); -} - -export function* focusMoveFilter$( - { editorState: { filterState } }: Store, - moveKey: MoveKey, - shiftKey: boolean -) { - const { focus } = filterState; - if (!focus) return; - - if ( - (moveKey === 'Tab' && - !shiftKey && - isFilterFocusType(focus.focusType) && - isLastFilterColumn(filterState) && - isLastRowFilter(filterState)) || - (!isFilterFocusType(focus.focusType) && !isFilters(filterState)) - ) { - yield addFilter$(); - } else { - yield focusMoveFilter(moveKey, shiftKey); - } -} diff --git a/packages-legacy/vuerd/src/engine/command/editor/filter.cmd.helper.ts b/packages-legacy/vuerd/src/engine/command/editor/filter.cmd.helper.ts deleted file mode 100644 index faacefc6..00000000 --- a/packages-legacy/vuerd/src/engine/command/editor/filter.cmd.helper.ts +++ /dev/null @@ -1,112 +0,0 @@ -import { uuid } from '@/core/helper'; -import { createCommand } from '@/engine/command/helper'; -import { Store } from '@@types/engine/store'; -import { MoveKey } from '@@types/engine/store/editor.state'; -import { - ColumnType, - FocusFilterType, - OperatorType, - TextFilterCode, -} from '@@types/engine/store/editor/filter.state'; - -export * from './filter.cmd.helper.gen'; - -export const filterActive = () => createCommand('editor.filter.active', null); - -export const filterActiveEnd = () => - createCommand('editor.filter.activeEnd', null); - -export const addFilter = () => - createCommand('editor.filter.add', { - id: uuid(), - }); - -export const removeFilter = (filterIds: string[]) => - createCommand('editor.filter.remove', { - filterIds, - }); - -export const changeFilterColumnType = ( - filterId: string, - columnType: ColumnType -) => - createCommand('editor.filter.changeColumnType', { - filterId, - columnType, - }); - -export const changeFilterCode = ( - filterId: string, - filterCode: TextFilterCode -) => - createCommand('editor.filter.changeFilterCode', { - filterId, - filterCode, - }); - -export const changeFilterValue = (filterId: string, value: string) => - createCommand('editor.filter.changeValue', { - filterId, - value, - }); - -export const moveFilter = (filterIds: string[], targetFilterId: string) => - createCommand('editor.filter.move', { - filterIds, - targetFilterId, - }); - -export const changeFilterOperatorType = (operatorType: OperatorType) => - createCommand('editor.filter.changeOperatorType', { - operatorType, - }); - -export const filterFocus = (focusType?: 'operatorType') => - createCommand('editor.filter.focus', { - focusType, - }); - -export const focusFilter = ( - filterId: string, - focusType: FocusFilterType, - ctrlKey = false, - shiftKey = false -) => - createCommand('editor.filter.focusFilter', { - filterId, - focusType, - ctrlKey, - shiftKey, - }); - -export const focusFilterEnd = () => - createCommand('editor.filter.focusEnd', null); - -export const focusMoveFilter = (moveKey: MoveKey, shiftKey: boolean) => - createCommand('editor.filter.focusMove', { - moveKey, - shiftKey, - }); - -export const editFilter = () => createCommand('editor.filter.edit', null); - -export const editFilterEnd = () => createCommand('editor.filter.editEnd', null); - -export const selectAllFilter = () => - createCommand('editor.filter.selectAll', null); - -export const draggableFilter = ( - { - editorState: { - filterState: { focus }, - }, - }: Store, - filterId: string, - ctrlKey: boolean -) => - createCommand('editor.filter.draggable', { - filterIds: ctrlKey && focus ? [...focus.selectFilterIds] : [filterId], - }); - -export const draggableFilterEnd = () => - createCommand('editor.filter.draggableEnd', null); diff --git a/packages-legacy/vuerd/src/engine/command/editor/filter.cmd.ts b/packages-legacy/vuerd/src/engine/command/editor/filter.cmd.ts deleted file mode 100644 index 52815549..00000000 --- a/packages-legacy/vuerd/src/engine/command/editor/filter.cmd.ts +++ /dev/null @@ -1,314 +0,0 @@ -import { getData, getIndex } from '@/core/helper'; -import { - arrowDown, - arrowLeft, - arrowRight, - arrowUp, -} from '@/engine/command/helper/editor/filter.focus.helper'; -import { - appendSelectFilters, - appendSelectRangeFilters, - selectRangeFilters, -} from '@/engine/command/helper/editor/filter.helper'; -import { FilterModel } from '@/engine/store/models/filter.model'; -import { ExecuteCommand } from '@/internal-types/command'; -import { - AddFilter, - changeFilterCode, - ChangeFilterColumnType, - ChangeFilterValue, - ChangeOperatorType, - FilterCommandMap, - Focus, - FocusFilter, - FocusMove, - MoveFilter, - RemoveFilter, -} from '@@types/engine/command/editor/filter.cmd'; -import { State } from '@@types/engine/store'; -import { Draggable, Filter } from '@@types/engine/store/editor/filter.state'; - -export function executeFilterActive({ editorState: { filterState } }: State) { - filterState.active = true; -} - -export function executeFilterActiveEnd({ - editorState: { filterState }, -}: State) { - filterState.active = false; -} - -export function executeAddFilter( - { - editorState: { - filterState: { filters }, - }, - }: State, - data: AddFilter -) { - filters.push(new FilterModel({ addFilter: data })); -} - -export function executeRemoveFilter( - { - editorState: { - filterState: { filters }, - }, - }: State, - data: RemoveFilter -) { - for (let i = 0; i < filters.length; i++) { - const filter = filters[i]; - - if (data.filterIds.includes(filter.id)) { - filters.splice(i, 1); - i--; - } - } -} - -export function executeChangeFilterColumnType( - { - editorState: { - filterState: { filters }, - }, - }: State, - data: ChangeFilterColumnType -) { - const filter = getData(filters, data.filterId); - if (!filter) return; - - filter.columnType = data.columnType; -} - -export function executeChangeFilterCode( - { - editorState: { - filterState: { filters }, - }, - }: State, - data: changeFilterCode -) { - const filter = getData(filters, data.filterId); - if (!filter) return; - - filter.filterCode = data.filterCode; -} - -export function executeChangeFilterValue( - { - editorState: { - filterState: { filters }, - }, - }: State, - data: ChangeFilterValue -) { - const filter = getData(filters, data.filterId); - if (!filter) return; - - filter.value = data.value; -} - -export function executeMoveFilter( - { - editorState: { - filterState: { filters }, - }, - }: State, - data: MoveFilter -) { - const currentFilters: Filter[] = []; - - data.filterIds.forEach(filterId => { - const filter = getData(filters, filterId); - - filter && currentFilters.push(filter); - }); - - const targetFilter = getData(filters, data.targetFilterId); - - if ( - !currentFilters.length || - !targetFilter || - data.filterIds.includes(data.targetFilterId) - ) - return; - - const targetIndex = getIndex(filters, targetFilter.id); - if (targetIndex === -1) return; - - currentFilters.forEach(currentFilter => { - const currentIndex = getIndex(filters, currentFilter.id); - if (currentIndex === -1) return; - - filters.splice(currentIndex, 1); - }); - - filters.splice(targetIndex, 0, ...currentFilters); -} - -export function executeChangeFilterOperatorType( - { editorState: { filterState } }: State, - data: ChangeOperatorType -) { - filterState.operatorType = data.operatorType; -} - -export function executeFilterFocus( - { editorState: { filterState } }: State, - data: Focus -) { - if (filterState.focus) { - filterState.focus.focusType = 'operatorType'; - filterState.focus.filterId = null; - filterState.focus.prevSelectFilterId = null; - filterState.focus.selectFilterIds = []; - } else { - filterState.focus = { - focusType: 'operatorType', - filterId: null, - prevSelectFilterId: null, - selectFilterIds: [], - edit: false, - }; - } -} - -export function executeFocusFilter( - { editorState: { filterState } }: State, - data: FocusFilter -) { - if (filterState.focus) { - const focus = filterState.focus; - focus.filterId = data.filterId; - focus.focusType = data.focusType; - - if (data.ctrlKey && data.shiftKey) { - focus.selectFilterIds = appendSelectRangeFilters( - filterState.filters, - focus.selectFilterIds, - focus.prevSelectFilterId, - focus.filterId - ); - } else if (data.shiftKey) { - focus.selectFilterIds = selectRangeFilters( - filterState.filters, - focus.prevSelectFilterId, - focus.filterId - ); - } else if (data.ctrlKey) { - focus.selectFilterIds = appendSelectFilters( - focus.selectFilterIds, - data.filterId - ); - } else { - focus.selectFilterIds = [data.filterId]; - } - - focus.prevSelectFilterId = data.filterId; - } else { - filterState.focus = { - focusType: data.focusType, - filterId: data.filterId, - prevSelectFilterId: data.filterId, - selectFilterIds: [data.filterId], - edit: false, - }; - } -} - -export function executeFocusFilterEnd({ editorState: { filterState } }: State) { - filterState.focus = null; -} - -export function executeFocusMoveFilter( - { editorState: { filterState } }: State, - data: FocusMove -) { - if (!filterState.focus) return; - filterState.focus.edit = false; - - switch (data.moveKey) { - case 'ArrowUp': - arrowUp(filterState, data); - break; - case 'ArrowDown': - arrowDown(filterState, data); - break; - case 'ArrowLeft': - arrowLeft(filterState, data); - break; - case 'ArrowRight': - arrowRight(filterState, data); - break; - case 'Tab': - data.shiftKey - ? arrowLeft(filterState, data) - : arrowRight(filterState, data); - break; - } -} - -export function executeEditFilter({ - editorState: { - filterState: { focus }, - }, -}: State) { - if (!focus) return; - focus.edit = true; -} - -export function executeEditFilterEnd({ - editorState: { - filterState: { focus }, - }, -}: State) { - if (!focus) return; - focus.edit = false; -} - -export function executeSelectAllFilter({ - editorState: { - filterState: { focus, filters }, - }, -}: State) { - if (!focus) return; - focus.selectFilterIds = filters.map(filter => filter.id); -} - -export function executeDraggableFilter( - { editorState: { filterState } }: State, - data: Draggable -) { - filterState.draggable = data; -} - -export function executeDraggableFilterEnd({ - editorState: { filterState }, -}: State) { - filterState.draggable = null; -} - -export const executeFilterCommandMap: Record< - keyof FilterCommandMap, - ExecuteCommand -> = { - 'editor.filter.active': executeFilterActive, - 'editor.filter.activeEnd': executeFilterActiveEnd, - 'editor.filter.add': executeAddFilter, - 'editor.filter.remove': executeRemoveFilter, - 'editor.filter.changeColumnType': executeChangeFilterColumnType, - 'editor.filter.changeFilterCode': executeChangeFilterCode, - 'editor.filter.changeValue': executeChangeFilterValue, - 'editor.filter.move': executeMoveFilter, - 'editor.filter.changeOperatorType': executeChangeFilterOperatorType, - 'editor.filter.focus': executeFilterFocus, - 'editor.filter.focusFilter': executeFocusFilter, - 'editor.filter.focusEnd': executeFocusFilterEnd, - 'editor.filter.focusMove': executeFocusMoveFilter, - 'editor.filter.edit': executeEditFilter, - 'editor.filter.editEnd': executeEditFilterEnd, - 'editor.filter.selectAll': executeSelectAllFilter, - 'editor.filter.draggable': executeDraggableFilter, - 'editor.filter.draggableEnd': executeDraggableFilterEnd, -}; diff --git a/packages-legacy/vuerd/src/engine/command/helper/editor.focus.helper.ts b/packages-legacy/vuerd/src/engine/command/helper/editor.focus.helper.ts deleted file mode 100644 index 2cd11a61..00000000 --- a/packages-legacy/vuerd/src/engine/command/helper/editor.focus.helper.ts +++ /dev/null @@ -1,365 +0,0 @@ -import { getIndex } from '@/core/helper'; -import { tableTypes } from '@/engine/store/editor.state'; -import { FocusMoveTable } from '@@types/engine/command/editor.cmd'; -import { State } from '@@types/engine/store'; -import { ColumnType, ShowKey } from '@@types/engine/store/canvas.state'; -import { - FocusTable, - FocusType, - TableType, -} from '@@types/engine/store/editor.state'; - -import { appendSelectColumns } from './editor.helper'; - -function getColumnTypes({ - canvasState: { - show, - setting: { columnOrder }, - }, -}: State): ColumnType[] { - const showKeys = [ - 'columnName', - ...Object.keys(show).filter(key => show[key as ShowKey]), - ]; - const match = new RegExp(showKeys.join('|'), 'i'); - return [...columnOrder.filter(key => match.test(key))]; -} - -export const isColumns = (focusTable: FocusTable) => - !!focusTable.table.columns.length; - -export function isLastColumn(state: State) { - const { - editorState: { focusTable }, - } = state; - if (!focusTable) return true; - - const columnTypes = getColumnTypes(state); - const index = columnTypes.indexOf(focusTable.focusType as ColumnType); - return index === columnTypes.length - 1; -} - -function isFirstColumn(state: State) { - const { - editorState: { focusTable }, - } = state; - if (!focusTable) return true; - - const columnTypes = getColumnTypes(state); - const index = columnTypes.indexOf(focusTable.focusType as ColumnType); - return index === 0; -} - -export function isLastRowColumn({ table, columnId }: FocusTable) { - if (!columnId) return true; - const index = getIndex(table.columns, columnId); - return index === table.columns.length - 1; -} - -function isFirstRowColumn({ table, columnId }: FocusTable) { - if (!columnId) return true; - const index = getIndex(table.columns, columnId); - return index === 0; -} - -function getLastColumnType(state: State): FocusType { - const columnTypes = getColumnTypes(state); - return columnTypes[columnTypes.length - 1]; -} - -function getFirstColumnType(state: State): FocusType { - const columnTypes = getColumnTypes(state); - return columnTypes[0]; -} - -function getNextRightColumnType(state: State): FocusType { - const { - editorState: { focusTable }, - } = state; - if (!focusTable) return 'columnName'; - - const columnTypes = getColumnTypes(state); - const index = columnTypes.indexOf(focusTable.focusType as ColumnType); - return isLastColumn(state) ? columnTypes[0] : columnTypes[index + 1]; -} - -function getNextLeftColumnType(state: State): FocusType { - const { - editorState: { focusTable }, - } = state; - if (!focusTable) return 'columnName'; - - const columnTypes = getColumnTypes(state); - const index = columnTypes.indexOf(focusTable.focusType as ColumnType); - return isFirstColumn(state) - ? columnTypes[columnTypes.length - 1] - : columnTypes[index - 1]; -} - -export function getRemoveFirstColumnId( - focusTable: FocusTable, - columnIds: string[] -) { - if (!focusTable.columnId) return null; - - const columnIndex = getIndex( - focusTable.table.columns, - focusTable.columnId as string - ); - - if (columnIndex <= 0) return null; - - let columnId = null; - for (let i = columnIndex; i >= 0; i--) { - const column = focusTable.table.columns[i]; - - if (!columnIds.includes(column.id)) { - columnId = column.id; - break; - } - } - - return columnId; -} - -function getTableTypes({ canvasState: { show } }: State): TableType[] { - return show.tableComment ? ['tableName', 'tableComment'] : ['tableName']; -} - -export function isLastTable(state: State) { - const { - editorState: { focusTable }, - } = state; - if (!focusTable) return true; - - const tableTypes = getTableTypes(state); - const index = tableTypes.indexOf(focusTable.focusType as TableType); - return index === tableTypes.length - 1; -} - -function isFirstTable(state: State) { - const { - editorState: { focusTable }, - } = state; - if (!focusTable) return true; - - const tableTypes = getTableTypes(state); - const index = tableTypes.indexOf(focusTable.focusType as TableType); - return index === 0; -} - -export const isTableFocusType = (focusType: FocusType) => - tableTypes.includes(focusType as any); - -function getNextRightTableType(state: State): FocusType { - const { - editorState: { focusTable }, - } = state; - if (!focusTable) return 'tableName'; - - const tableTypes = getTableTypes(state); - const index = tableTypes.indexOf(focusTable.focusType as TableType); - return isLastTable(state) ? tableTypes[0] : tableTypes[index + 1]; -} - -function getNextLeftTableType(state: State): FocusType { - const { - editorState: { focusTable }, - } = state; - if (!focusTable) return 'tableName'; - - const tableTypes = getTableTypes(state); - const index = tableTypes.indexOf(focusTable.focusType as TableType); - return isFirstTable(state) - ? tableTypes[tableTypes.length - 1] - : tableTypes[index - 1]; -} - -export function arrowUp(state: State, data: FocusMoveTable) { - const { - editorState: { focusTable }, - } = state; - if (!focusTable) return; - - if (isTableFocusType(focusTable.focusType)) { - if (isColumns(focusTable)) { - const columnId = - focusTable.table.columns[focusTable.table.columns.length - 1].id; - - focusTable.focusType = getLastColumnType(state); - focusTable.columnId = columnId; - focusTable.prevSelectColumnId = columnId; - focusTable.selectColumnIds = [columnId]; - } - } else { - if (isFirstRowColumn(focusTable)) { - focusTable.focusType = 'tableName'; - focusTable.columnId = null; - focusTable.prevSelectColumnId = null; - focusTable.selectColumnIds = []; - } else if (focusTable.columnId) { - const index = getIndex(focusTable.table.columns, focusTable.columnId); - const column = focusTable.table.columns[index - 1]; - - focusTable.columnId = column.id; - focusTable.prevSelectColumnId = column.id; - if (data.shiftKey && data.moveKey !== 'Tab') { - focusTable.selectColumnIds = appendSelectColumns( - focusTable.selectColumnIds, - column.id - ); - } else { - focusTable.selectColumnIds = [column.id]; - } - } - } -} - -export function arrowDown(state: State, data: FocusMoveTable) { - const { - editorState: { focusTable }, - } = state; - if (!focusTable) return; - - if (isTableFocusType(focusTable.focusType)) { - if (isColumns(focusTable)) { - const columnId = focusTable.table.columns[0].id; - - focusTable.focusType = getFirstColumnType(state); - focusTable.columnId = columnId; - focusTable.prevSelectColumnId = columnId; - focusTable.selectColumnIds = [columnId]; - } - } else { - if (isLastRowColumn(focusTable)) { - focusTable.focusType = 'tableName'; - focusTable.columnId = null; - focusTable.prevSelectColumnId = null; - focusTable.selectColumnIds = []; - } else if (focusTable.columnId) { - const index = getIndex(focusTable.table.columns, focusTable.columnId); - const column = focusTable.table.columns[index + 1]; - - focusTable.columnId = column.id; - focusTable.prevSelectColumnId = column.id; - if (data.shiftKey && data.moveKey !== 'Tab') { - focusTable.selectColumnIds = appendSelectColumns( - focusTable.selectColumnIds, - column.id - ); - } else { - focusTable.selectColumnIds = [column.id]; - } - } - } -} - -export function arrowRight(state: State, data: FocusMoveTable) { - const { - editorState: { focusTable }, - } = state; - if (!focusTable) return; - - if (isTableFocusType(focusTable.focusType)) { - if (isLastTable(state)) { - if (isColumns(focusTable)) { - const columnId = focusTable.table.columns[0].id; - - focusTable.focusType = getFirstColumnType(state); - focusTable.columnId = columnId; - focusTable.prevSelectColumnId = columnId; - focusTable.selectColumnIds = [columnId]; - } else { - focusTable.focusType = getNextRightTableType(state); - } - } else { - focusTable.focusType = getNextRightTableType(state); - } - } else { - if (isLastColumn(state)) { - if (isLastRowColumn(focusTable)) { - focusTable.focusType = 'tableName'; - focusTable.columnId = null; - focusTable.prevSelectColumnId = null; - focusTable.selectColumnIds = []; - } else if (focusTable.columnId) { - const index = getIndex(focusTable.table.columns, focusTable.columnId); - const column = focusTable.table.columns[index + 1]; - - focusTable.focusType = getFirstColumnType(state); - focusTable.columnId = column.id; - focusTable.prevSelectColumnId = column.id; - if (data.shiftKey && data.moveKey !== 'Tab') { - focusTable.selectColumnIds = appendSelectColumns( - focusTable.selectColumnIds, - column.id - ); - } else { - focusTable.selectColumnIds = [column.id]; - } - } - } else { - focusTable.focusType = getNextRightColumnType(state); - if (!data.shiftKey && focusTable.columnId) { - focusTable.prevSelectColumnId = focusTable.columnId; - focusTable.selectColumnIds = [focusTable.columnId]; - } - } - } -} - -export function arrowLeft(state: State, data: FocusMoveTable) { - const { - editorState: { focusTable }, - canvasState: { show }, - } = state; - if (!focusTable) return; - - if (isTableFocusType(focusTable.focusType)) { - if (isFirstTable(state)) { - if (isColumns(focusTable)) { - const columnId = - focusTable.table.columns[focusTable.table.columns.length - 1].id; - - focusTable.focusType = getLastColumnType(state); - focusTable.columnId = columnId; - focusTable.prevSelectColumnId = columnId; - focusTable.selectColumnIds = [columnId]; - } else { - focusTable.focusType = getNextLeftTableType(state); - } - } else { - focusTable.focusType = getNextLeftTableType(state); - } - } else { - if (isFirstColumn(state)) { - if (isFirstRowColumn(focusTable)) { - focusTable.focusType = show.tableComment ? 'tableComment' : 'tableName'; - focusTable.columnId = null; - focusTable.prevSelectColumnId = null; - focusTable.selectColumnIds = []; - } else if (focusTable.columnId) { - const index = getIndex(focusTable.table.columns, focusTable.columnId); - const column = focusTable.table.columns[index - 1]; - - focusTable.focusType = getLastColumnType(state); - focusTable.columnId = column.id; - focusTable.prevSelectColumnId = column.id; - if (data.shiftKey && data.moveKey !== 'Tab') { - focusTable.selectColumnIds = appendSelectColumns( - focusTable.selectColumnIds, - column.id - ); - } else { - focusTable.selectColumnIds = [column.id]; - } - } - } else { - focusTable.focusType = getNextLeftColumnType(state); - if (!data.shiftKey && focusTable.columnId) { - focusTable.prevSelectColumnId = focusTable.columnId; - focusTable.selectColumnIds = [focusTable.columnId]; - } - } - } -} diff --git a/packages-legacy/vuerd/src/engine/command/helper/editor.helper.ts b/packages-legacy/vuerd/src/engine/command/helper/editor.helper.ts deleted file mode 100644 index 308e1ea9..00000000 --- a/packages-legacy/vuerd/src/engine/command/helper/editor.helper.ts +++ /dev/null @@ -1,33 +0,0 @@ -import * as R from 'ramda'; - -import { getIndex, range } from '@/core/helper'; -import { Column } from '@@types/engine/store/table.state'; - -export const appendSelectColumns = (columnIds: string[], columnId: string) => - R.uniq([...columnIds, columnId]); - -export function selectRangeColumns( - columns: Column[], - fromColumnId: string | null, - toColumnId: string -) { - if (!fromColumnId || fromColumnId === toColumnId) return [toColumnId]; - - const fromIndex = getIndex(columns, fromColumnId); - const toIndex = getIndex(columns, toColumnId); - - if (fromIndex === -1) return [toColumnId]; - - return range(fromIndex, toIndex).map(index => columns[index].id); -} - -export const appendSelectRangeColumns = ( - columns: Column[], - columnIds: string[], - fromColumnId: string | null, - toColumnId: string -) => - R.uniq([ - ...columnIds, - ...selectRangeColumns(columns, fromColumnId, toColumnId), - ]); diff --git a/packages-legacy/vuerd/src/engine/command/helper/editor/filter.focus.helper.ts b/packages-legacy/vuerd/src/engine/command/helper/editor/filter.focus.helper.ts deleted file mode 100644 index beaa572e..00000000 --- a/packages-legacy/vuerd/src/engine/command/helper/editor/filter.focus.helper.ts +++ /dev/null @@ -1,247 +0,0 @@ -import { getIndex } from '@/core/helper'; -import { focusFilterTypes } from '@/engine/store/editor/filter.state'; -import { FocusMove } from '@@types/engine/command/editor/filter.cmd'; -import { - FilterState, - FocusType, -} from '@@types/engine/store/editor/filter.state'; - -import { appendSelectFilters } from './filter.helper'; - -export const isFilterFocusType = (focusType: FocusType) => - focusFilterTypes.includes(focusType as any); - -export const isFilters = (state: FilterState) => !!state.filters.length; - -function isFirstRowFilter({ filters, focus }: FilterState) { - if (!focus || !focus.filterId) return; - const index = getIndex(filters, focus.filterId); - return index === 0; -} - -export function isLastRowFilter({ filters, focus }: FilterState) { - if (!focus || !focus.filterId) return; - const index = getIndex(filters, focus.filterId); - return index === filters.length - 1; -} - -export function isLastFilterColumn({ focus }: FilterState) { - if (!focus || !focus.filterId) return; - const index = focusFilterTypes.indexOf(focus.focusType as any); - return index === focusFilterTypes.length - 1; -} - -function isFirstFilterColumn({ focus }: FilterState) { - if (!focus || !focus.filterId) return; - const index = focusFilterTypes.indexOf(focus.focusType as any); - return index === 0; -} - -function getNextRightFilterColumnType(state: FilterState): FocusType { - const { focus } = state; - if (!focus || !focus.filterId) return 'columnType'; - - const index = focusFilterTypes.indexOf(focus.focusType as any); - return isLastFilterColumn(state) - ? focusFilterTypes[0] - : focusFilterTypes[index + 1]; -} - -function getNextLeftFilterColumnType(state: FilterState): FocusType { - const { focus } = state; - if (!focus || !focus.filterId) return 'columnType'; - - const index = focusFilterTypes.indexOf(focus.focusType as any); - return isFirstFilterColumn(state) - ? focusFilterTypes[focusFilterTypes.length - 1] - : focusFilterTypes[index - 1]; -} - -export function getRemoveFirstFilterId( - { focus, filters }: FilterState, - filterIds: string[] -) { - if (!focus?.filterId) return null; - - const filterIndex = getIndex(filters, focus.filterId); - - if (filterIndex <= 0) return null; - - let filterId = null; - for (let i = filterIndex; i >= 0; i--) { - const filter = filters[i]; - - if (!filterIds.includes(filter.id)) { - filterId = filter.id; - break; - } - } - - return filterId; -} - -export function arrowUp(state: FilterState, data: FocusMove) { - const { focus, filters } = state; - if (!focus) return; - - if (isFilterFocusType(focus.focusType)) { - if (isFirstRowFilter(state)) { - focus.focusType = 'operatorType'; - focus.filterId = null; - focus.prevSelectFilterId = null; - focus.selectFilterIds = []; - } else if (focus.filterId) { - const index = getIndex(filters, focus.filterId); - const filter = filters[index - 1]; - - focus.filterId = filter.id; - focus.prevSelectFilterId = filter.id; - if (data.shiftKey && data.moveKey !== 'Tab') { - focus.selectFilterIds = appendSelectFilters( - focus.selectFilterIds, - filter.id - ); - } else { - focus.selectFilterIds = [filter.id]; - } - } - } else { - if (isFilters(state)) { - const filterId = filters[filters.length - 1].id; - - focus.focusType = 'value'; - focus.filterId = filterId; - focus.prevSelectFilterId = filterId; - focus.selectFilterIds = [filterId]; - } - } -} - -export function arrowDown(state: FilterState, data: FocusMove) { - const { focus, filters } = state; - if (!focus) return; - - if (isFilterFocusType(focus.focusType)) { - if (isLastRowFilter(state)) { - focus.focusType = 'operatorType'; - focus.filterId = null; - focus.prevSelectFilterId = null; - focus.selectFilterIds = []; - } else if (focus.filterId) { - const index = getIndex(filters, focus.filterId); - const filter = filters[index + 1]; - - focus.filterId = filter.id; - focus.prevSelectFilterId = filter.id; - if (data.shiftKey && data.moveKey !== 'Tab') { - focus.selectFilterIds = appendSelectFilters( - focus.selectFilterIds, - filter.id - ); - } else { - focus.selectFilterIds = [filter.id]; - } - } - } else { - if (isFilters(state)) { - const filterId = filters[0].id; - - focus.focusType = 'columnType'; - focus.filterId = filterId; - focus.prevSelectFilterId = filterId; - focus.selectFilterIds = [filterId]; - } - } -} - -export function arrowRight(state: FilterState, data: FocusMove) { - const { focus, filters } = state; - if (!focus) return; - - if (isFilterFocusType(focus.focusType)) { - if (isLastFilterColumn(state)) { - if (isLastRowFilter(state)) { - focus.focusType = 'operatorType'; - focus.filterId = null; - focus.prevSelectFilterId = null; - focus.selectFilterIds = []; - } else if (focus.filterId) { - const index = getIndex(filters, focus.filterId); - const filter = filters[index + 1]; - - focus.focusType = 'columnType'; - focus.filterId = filter.id; - focus.prevSelectFilterId = filter.id; - if (data.shiftKey && data.moveKey !== 'Tab') { - focus.selectFilterIds = appendSelectFilters( - focus.selectFilterIds, - filter.id - ); - } else { - focus.selectFilterIds = [filter.id]; - } - } - } else { - focus.focusType = getNextRightFilterColumnType(state); - if (!data.shiftKey && focus.filterId) { - focus.prevSelectFilterId = focus.filterId; - focus.selectFilterIds = [focus.filterId]; - } - } - } else { - if (isFilters(state)) { - const filterId = filters[0].id; - - focus.focusType = 'columnType'; - focus.filterId = filterId; - focus.prevSelectFilterId = filterId; - focus.selectFilterIds = [filterId]; - } - } -} - -export function arrowLeft(state: FilterState, data: FocusMove) { - const { focus, filters } = state; - if (!focus) return; - - if (isFilterFocusType(focus.focusType)) { - if (isFirstFilterColumn(state)) { - if (isFirstRowFilter(state)) { - focus.focusType = 'operatorType'; - focus.filterId = null; - focus.prevSelectFilterId = null; - focus.selectFilterIds = []; - } else if (focus.filterId) { - const index = getIndex(filters, focus.filterId); - const filter = filters[index - 1]; - - focus.focusType = 'value'; - focus.filterId = filter.id; - focus.prevSelectFilterId = filter.id; - if (data.shiftKey && data.moveKey !== 'Tab') { - focus.selectFilterIds = appendSelectFilters( - focus.selectFilterIds, - filter.id - ); - } else { - focus.selectFilterIds = [filter.id]; - } - } - } else { - focus.focusType = getNextLeftFilterColumnType(state); - if (!data.shiftKey && focus.filterId) { - focus.prevSelectFilterId = focus.filterId; - focus.selectFilterIds = [focus.filterId]; - } - } - } else { - if (isFilters(state)) { - const filterId = filters[filters.length - 1].id; - - focus.focusType = 'value'; - focus.filterId = filterId; - focus.prevSelectFilterId = filterId; - focus.selectFilterIds = [filterId]; - } - } -} diff --git a/packages-legacy/vuerd/src/engine/command/helper/editor/filter.helper.ts b/packages-legacy/vuerd/src/engine/command/helper/editor/filter.helper.ts deleted file mode 100644 index 2490925c..00000000 --- a/packages-legacy/vuerd/src/engine/command/helper/editor/filter.helper.ts +++ /dev/null @@ -1,33 +0,0 @@ -import * as R from 'ramda'; - -import { getIndex, range } from '@/core/helper'; -import { Filter } from '@@types/engine/store/editor/filter.state'; - -export const appendSelectFilters = (filterIds: string[], filterId: string) => - R.uniq([...filterIds, filterId]); - -export function selectRangeFilters( - filters: Filter[], - fromFilterId: string | null, - toFilterId: string -) { - if (!fromFilterId || fromFilterId === toFilterId) return [toFilterId]; - - const fromIndex = getIndex(filters, fromFilterId); - const toIndex = getIndex(filters, toFilterId); - - if (fromIndex === -1) return [toFilterId]; - - return range(fromIndex, toIndex).map(index => filters[index].id); -} - -export const appendSelectRangeFilters = ( - filters: Filter[], - filterIds: string[], - fromFilterId: string | null, - toFilterId: string -) => - R.uniq([ - ...filterIds, - ...selectRangeFilters(filters, fromFilterId, toFilterId), - ]); diff --git a/packages-legacy/vuerd/src/engine/command/helper/index.ts b/packages-legacy/vuerd/src/engine/command/helper/index.ts deleted file mode 100644 index 6d018f72..00000000 --- a/packages-legacy/vuerd/src/engine/command/helper/index.ts +++ /dev/null @@ -1,199 +0,0 @@ -import { CommandKey, CommandType } from '@@types/engine/command'; - -export const createCommand = ( - name: K, - data: CommandType['data'] -) => ({ - name, - data, - timestamp: Date.now(), -}); - -export const changeCommandTypes: CommandKey[] = [ - // table - 'table.add', - 'table.move', - 'table.remove', - 'table.changeName', - 'table.changeComment', - 'table.sort', - 'table.changeColor', - // column - 'column.add', - 'column.addCustom', - 'column.remove', - 'column.changeName', - 'column.changeComment', - 'column.changeDataType', - 'column.changeDefault', - 'column.changeAutoIncrement', - 'column.changePrimaryKey', - 'column.changeUnique', - 'column.changeNotNull', - 'column.move', - // relationship - 'relationship.add', - 'relationship.remove', - 'relationship.hide', - 'relationship.show', - 'relationship.changeRelationshipType', - 'relationship.changeStartRelationshipType', - 'relationship.changeIdentification', - // index - 'index.add', - 'index.remove', - 'index.changeName', - 'index.changeUnique', - 'index.addColumn', - 'index.removeColumn', - 'index.moveColumn', - 'index.changeColumnOrderType', - // memo - 'memo.add', - 'memo.move', - 'memo.remove', - 'memo.changeValue', - 'memo.resize', - 'memo.changeColor', - // canvas - 'canvas.move', - 'canvas.movement', - 'canvas.resize', - 'canvas.zoom', - 'canvas.movementZoom', - 'canvas.changeShow', - 'canvas.changeDatabase', - 'canvas.changeDatabaseName', - 'canvas.changeCanvasType', - 'canvas.changeLanguage', - 'canvas.changeTableCase', - 'canvas.changeColumnCase', - 'canvas.changeRelationshipDataTypeSync', - 'canvas.changeRelationshipOptimization', - 'canvas.moveColumnOrder', - 'canvas.changeHighlightTheme', - 'canvas.changeBracketType', - 'canvas.changePluginSerialization', - // editor - 'editor.loadJson', - 'editor.clear', -]; - -export const historyCommandTypes: CommandKey[] = [ - // table - 'table.add', - 'table.move', - 'table.remove', - 'table.changeName', - 'table.changeComment', - 'table.sort', - // column - 'column.add', - 'column.addCustom', - 'column.remove', - 'column.changeName', - 'column.changeComment', - 'column.changeDataType', - 'column.changeDefault', - 'column.changeAutoIncrement', - 'column.changePrimaryKey', - 'column.changeUnique', - 'column.changeNotNull', - 'column.move', - // relationship - 'relationship.add', - 'relationship.remove', - 'relationship.hide', - 'relationship.show', - 'relationship.changeRelationshipType', - 'relationship.changeStartRelationshipType', - 'relationship.changeIdentification', - // memo - 'memo.add', - 'memo.move', - 'memo.remove', - 'memo.changeValue', - 'memo.resize', - // canvas - 'canvas.move', - 'canvas.movement', - 'canvas.resize', - 'canvas.zoom', - 'canvas.movementZoom', - 'canvas.changeShow', - 'canvas.changeDatabase', - 'canvas.changeDatabaseName', - // editor - 'editor.loadJson', - 'editor.clear', -]; - -export const streamCommandTypes: CommandKey[] = [ - 'table.move', - 'memo.move', - 'memo.resize', - 'canvas.movement', - 'canvas.movementZoom', -]; - -export const readonlyCommandTypes: CommandKey[] = [ - // table - 'table.select', - 'table.selectEnd', - 'table.selectAll', - 'table.dragSelect', - // column - 'column.active', - 'column.activeEnd', - // memo - 'memo.select', - 'memo.selectEnd', - 'memo.selectAll', - 'memo.dragSelect', - // canvas - 'canvas.move', - 'canvas.movement', - 'canvas.zoom', - 'canvas.movementZoom', - 'canvas.changeShow', - 'canvas.changeDatabase', - 'canvas.changeCanvasType', - 'canvas.changeLanguage', - 'canvas.changeTableCase', - 'canvas.changeColumnCase', - 'canvas.moveColumnOrder', - 'canvas.changeHighlightTheme', - 'canvas.changeBracketType', - // editor - 'editor.focusTable', - 'editor.focusColumn', - 'editor.focusTableEnd', - 'editor.focusMoveTable', - 'editor.editTableEnd', - 'editor.selectAllColumn', - 'editor.initLoadJson', - 'editor.initClear', - 'editor.changeViewport', - 'editor.findActive', - 'editor.findActiveEnd', - 'editor.readonly', - // editor filter - 'editor.filter.active', - 'editor.filter.activeEnd', - 'editor.filter.add', - 'editor.filter.remove', - 'editor.filter.changeColumnType', - 'editor.filter.changeFilterCode', - 'editor.filter.changeValue', - 'editor.filter.move', - 'editor.filter.changeOperatorType', - 'editor.filter.focus', - 'editor.filter.focusFilter', - 'editor.filter.focusEnd', - 'editor.filter.focusMove', - 'editor.filter.edit', - 'editor.filter.editEnd', - 'editor.filter.selectAll', - 'editor.filter.draggable', - 'editor.filter.draggableEnd', -]; diff --git a/packages-legacy/vuerd/src/engine/command/index.cmd.helper.ts b/packages-legacy/vuerd/src/engine/command/index.cmd.helper.ts deleted file mode 100644 index 42299b5c..00000000 --- a/packages-legacy/vuerd/src/engine/command/index.cmd.helper.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { uuid } from '@/core/helper'; -import { Index, OrderType } from '@@types/engine/store/table.state'; - -import { createCommand } from './helper'; - -export const addIndex = (tableId: string) => - createCommand('index.add', { - id: uuid(), - tableId, - }); - -export const removeIndex = (indexIds: string[]) => - createCommand('index.remove', { - indexIds, - }); - -export const changeIndexName = (indexId: string, value: string) => - createCommand('index.changeName', { - indexId, - value, - }); - -export const changeIndexUnique = (indexId: string, value: boolean) => - createCommand('index.changeUnique', { - indexId, - value, - }); - -export const addIndexColumn = (indexId: string, columnId: string) => - createCommand('index.addColumn', { - indexId, - columnId, - }); - -export const removeIndexColumn = (indexId: string, columnId: string) => - createCommand('index.removeColumn', { - indexId, - columnId, - }); - -export const moveIndexColumn = ( - indexId: string, - columnId: string, - targetColumnId: string -) => - createCommand('index.moveColumn', { - indexId, - columnId, - targetColumnId, - }); - -export const changeIndexColumnOrderType = ( - indexId: string, - columnId: string, - value: OrderType -) => - createCommand('index.changeColumnOrderType', { - indexId, - columnId, - value, - }); - -export const loadIndex = (index: Index) => createCommand('index.load', index); diff --git a/packages-legacy/vuerd/src/engine/command/index.cmd.ts b/packages-legacy/vuerd/src/engine/command/index.cmd.ts deleted file mode 100644 index cedb0436..00000000 --- a/packages-legacy/vuerd/src/engine/command/index.cmd.ts +++ /dev/null @@ -1,139 +0,0 @@ -import { getData, getIndex } from '@/core/helper'; -import { IndexModel } from '@/engine/store/models/index.model'; -import { ExecuteCommand } from '@/internal-types/command'; -import { - AddIndex, - AddIndexColumn, - ChangeIndexColumnOrderType, - ChangeIndexUnique, - ChangeIndexValue, - IndexCommandMap, - MoveIndexColumn, - RemoveIndex, - RemoveIndexColumn, -} from '@@types/engine/command/index.cmd'; -import { State } from '@@types/engine/store'; -import { Index } from '@@types/engine/store/table.state'; - -export function executeAddIndex( - { tableState: { indexes } }: State, - data: AddIndex -) { - indexes.push(new IndexModel({ addIndex: data })); -} - -export function executeRemoveIndex( - { tableState: { indexes } }: State, - data: RemoveIndex -) { - for (let i = 0; i < indexes.length; i++) { - const id = indexes[i].id; - - if (data.indexIds.includes(id)) { - indexes.splice(i, 1); - i--; - } - } -} - -export function executeChangeIndexName( - { tableState: { indexes } }: State, - data: ChangeIndexValue -) { - const index = getData(indexes, data.indexId); - if (!index) return; - - index.name = data.value; -} - -export function executeChangeIndexUnique( - { tableState: { indexes } }: State, - data: ChangeIndexUnique -) { - const index = getData(indexes, data.indexId); - if (!index) return; - - index.unique = data.value; -} - -export function executeAddIndexColumn( - { tableState: { indexes } }: State, - data: AddIndexColumn -) { - const index = getData(indexes, data.indexId); - if (!index || index.columns.some(column => column.id === data.columnId)) - return; - - index.columns.push({ - id: data.columnId, - orderType: 'ASC', - }); -} - -export function executeRemoveIndexColumn( - { tableState: { indexes } }: State, - data: RemoveIndexColumn -) { - const index = getData(indexes, data.indexId); - if (!index) return; - - const targetIndex = getIndex(index.columns, data.columnId); - if (targetIndex === -1) return; - - index.columns.splice(targetIndex, 1); -} - -export function executeMoveIndexColumn( - { tableState: { indexes } }: State, - data: MoveIndexColumn -) { - const index = getData(indexes, data.indexId); - if (!index || data.columnId === data.targetColumnId) return; - - const currentColumn = getData(index.columns, data.columnId); - if (!currentColumn) return; - - const currentIndex = getIndex(index.columns, data.columnId); - if (currentIndex === -1) return; - - const targetIndex = getIndex(index.columns, data.targetColumnId); - if (targetIndex === -1) return; - - index.columns.splice(currentIndex, 1); - index.columns.splice(targetIndex, 0, currentColumn); -} - -export function executeChangeIndexColumnOrderType( - { tableState: { indexes } }: State, - data: ChangeIndexColumnOrderType -) { - const index = getData(indexes, data.indexId); - if (!index) return; - - const column = getData(index.columns, data.columnId); - if (!column) return; - - column.orderType = data.value; -} - -export function executeLoadIndex( - { tableState: { indexes } }: State, - data: Index -) { - indexes.push(new IndexModel({ loadIndex: data })); -} - -export const executeIndexCommandMap: Record< - keyof IndexCommandMap, - ExecuteCommand -> = { - 'index.add': executeAddIndex, - 'index.remove': executeRemoveIndex, - 'index.changeName': executeChangeIndexName, - 'index.changeUnique': executeChangeIndexUnique, - 'index.addColumn': executeAddIndexColumn, - 'index.removeColumn': executeRemoveIndexColumn, - 'index.moveColumn': executeMoveIndexColumn, - 'index.changeColumnOrderType': executeChangeIndexColumnOrderType, - 'index.load': executeLoadIndex, -}; diff --git a/packages-legacy/vuerd/src/engine/command/index.ts b/packages-legacy/vuerd/src/engine/command/index.ts deleted file mode 100644 index 34a7d5b4..00000000 --- a/packages-legacy/vuerd/src/engine/command/index.ts +++ /dev/null @@ -1,81 +0,0 @@ -import * as R from 'ramda'; -import { merge, Subject } from 'rxjs'; -import { debounceTime } from 'rxjs/operators'; - -import { Logger } from '@/core/logger'; -import { commandsFilter } from '@/core/operators/commandsFilter'; -import { notEmptyCommands } from '@/core/operators/notEmptyCommands'; -import { changeCommandTypes } from '@/engine/command/helper'; -import { ExecuteCommand } from '@/internal-types/command'; -import { Command, CommandKey, CommandTypeAll } from '@@types/engine/command'; -import { State } from '@@types/engine/store'; - -import { executeCanvasCommandMap } from './canvas.cmd'; -import * as canvasCommand from './canvas.cmd.helper'; -import { executeColumnCommandMap } from './column.cmd'; -import * as columnCommand from './column.cmd.helper'; -import { executeEditorCommandMap } from './editor.cmd'; -import * as editorCommand from './editor.cmd.helper'; -import { executeIndexCommandMap } from './index.cmd'; -import * as indexCommand from './index.cmd.helper'; -import { executeMemoCommandMap } from './memo.cmd'; -import * as memoCommand from './memo.cmd.helper'; -import { executeRelationshipCommandMap } from './relationship.cmd'; -import * as relationshipCommand from './relationship.cmd.helper'; -import { executeTableCommandMap } from './table.cmd'; -import * as tableCommand from './table.cmd.helper'; - -const executeCommandMap: Record = { - ...executeCanvasCommandMap, - ...executeMemoCommandMap, - ...executeTableCommandMap, - ...executeColumnCommandMap, - ...executeEditorCommandMap, - ...executeRelationshipCommandMap, - ...executeIndexCommandMap, -}; - -export const createCommand = (): Command => ({ - canvas: canvasCommand, - memo: memoCommand, - table: tableCommand, - column: columnCommand, - editor: editorCommand, - relationship: relationshipCommand, - index: indexCommand, -}); - -export function createStream() { - const dispatch$ = new Subject>(); - const history$ = new Subject>(); - const change$ = merge( - history$, - dispatch$.pipe(commandsFilter(changeCommandTypes)) - ).pipe(notEmptyCommands, debounceTime(200)); - const hook$ = merge(history$, dispatch$).pipe(notEmptyCommands); - - return { - dispatch$, - history$, - change$, - hook$, - }; -} - -function executeCommand$(state: State, commands: CommandTypeAll[]) { - commands.forEach(command => { - Logger.log('executeCommand =>', command.name); - const execute = executeCommandMap[command.name]; - execute && execute(state, command.data as any); - }); -} - -export const executeCommand = R.curry( - (state: State, commands: CommandTypeAll[]) => { - try { - executeCommand$(state, commands); - } catch (err) { - Logger.error(err); - } - } -); diff --git a/packages-legacy/vuerd/src/engine/command/memo.cmd.helper.gen.ts b/packages-legacy/vuerd/src/engine/command/memo.cmd.helper.gen.ts deleted file mode 100644 index c10632ba..00000000 --- a/packages-legacy/vuerd/src/engine/command/memo.cmd.helper.gen.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Store } from '@@types/engine/store'; - -import { addMemo, selectEndMemo, selectMemo } from './memo.cmd.helper'; -import { selectEndTable$ } from './table.cmd.helper'; - -export function* addMemo$(store: Store, active = true) { - yield selectEndTable$(); - yield selectEndMemo(); - yield addMemo(store, active); -} - -export function* selectMemo$(store: Store, ctrlKey: boolean, memoId: string) { - yield selectMemo(store, ctrlKey, memoId); - if (!ctrlKey) { - yield selectEndTable$(); - } -} diff --git a/packages-legacy/vuerd/src/engine/command/memo.cmd.helper.ts b/packages-legacy/vuerd/src/engine/command/memo.cmd.helper.ts deleted file mode 100644 index 30fb5cef..00000000 --- a/packages-legacy/vuerd/src/engine/command/memo.cmd.helper.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { uuid } from '@/core/helper'; -import { SIZE_MEMO_HEIGHT, SIZE_MEMO_WIDTH } from '@/core/layout'; -import { nextPoint, nextZIndex } from '@/engine/store/helper'; -import { Store } from '@@types/engine/store'; -import { Memo } from '@@types/engine/store/memo.state'; -import { Point } from '@@types/engine/store/relationship.state'; - -import { createCommand } from './helper'; - -export * from './memo.cmd.helper.gen'; - -export function addMemo(store: Store, active = true) { - const { tableState, memoState } = store; - const point = nextPoint(store); - return createCommand('memo.add', { - id: uuid(), - ui: { - active, - left: point.x, - top: point.y, - zIndex: nextZIndex(tableState.tables, memoState.memos), - width: SIZE_MEMO_WIDTH, - height: SIZE_MEMO_HEIGHT, - }, - }); -} - -export const moveMemo = ( - { - tableState: { tables }, - memoState: { memos }, - canvasState: { zoomLevel }, - }: Store, - ctrlKey: boolean, - movementX: number, - movementY: number, - memoId: string -) => - createCommand('memo.move', { - movementX: movementX / zoomLevel, - movementY: movementY / zoomLevel, - tableIds: ctrlKey - ? tables.filter(table => table.ui.active).map(table => table.id) - : [], - memoIds: ctrlKey - ? memos.filter(memo => memo.ui.active).map(memo => memo.id) - : [memoId], - }); - -export const removeMemo = ({ memoState: { memos } }: Store, memoId?: string) => - createCommand('memo.remove', { - memoIds: memoId - ? [memoId] - : memos.filter(memo => memo.ui.active).map(memo => memo.id), - }); - -export const selectMemo = ( - { tableState: { tables }, memoState: { memos } }: Store, - ctrlKey: boolean, - memoId: string -) => - createCommand('memo.select', { - ctrlKey, - memoId, - zIndex: nextZIndex(tables, memos), - }); - -export const selectEndMemo = () => createCommand('memo.selectEnd', null); - -export const selectAllMemo = () => createCommand('memo.selectAll', null); - -export const changeMemoValue = (memoId: string, value: string) => - createCommand('memo.changeValue', { memoId, value }); - -export const resizeMemo = ( - memoId: string, - top: number, - left: number, - width: number, - height: number -) => - createCommand('memo.resize', { - memoId, - top, - left, - width, - height, - }); - -export const dragSelectMemo = (min: Point, max: Point) => - createCommand('memo.dragSelect', { min, max }); - -export const loadMemo = (memo: Memo) => createCommand('memo.load', memo); - -export const changeColorMemo = ( - { tableState: { tables }, memoState: { memos } }: Store, - ctrlKey: boolean, - color: string, - memoId: string -) => - createCommand('memo.changeColor', { - tableIds: ctrlKey - ? tables.filter(table => table.ui.active).map(table => table.id) - : [], - memoIds: ctrlKey - ? memos.filter(memo => memo.ui.active).map(memo => memo.id) - : [memoId], - color, - }); diff --git a/packages-legacy/vuerd/src/engine/command/memo.cmd.ts b/packages-legacy/vuerd/src/engine/command/memo.cmd.ts deleted file mode 100644 index 6288b059..00000000 --- a/packages-legacy/vuerd/src/engine/command/memo.cmd.ts +++ /dev/null @@ -1,160 +0,0 @@ -import { getData } from '@/core/helper'; -import { SIZE_MEMO_PADDING } from '@/core/layout'; -import { MemoModel } from '@/engine/store/models/memo.model'; -import { ExecuteCommand } from '@/internal-types/command'; -import { - AddMemo, - ChangeColorMemo, - ChangeMemoValue, - DragSelectMemo, - MemoCommandMap, - MoveMemo, - RemoveMemo, - ResizeMemo, - SelectMemo, -} from '@@types/engine/command/memo.cmd'; -import { State } from '@@types/engine/store'; -import { Memo } from '@@types/engine/store/memo.state'; - -const MEMO_PADDING = SIZE_MEMO_PADDING * 2; - -export function executeAddMemo({ memoState: { memos } }: State, data: AddMemo) { - memos.push(new MemoModel({ addMemo: data })); -} - -export function executeMoveMemo( - { tableState: { tables }, memoState: { memos } }: State, - data: MoveMemo -) { - data.tableIds.forEach(tableId => { - const table = getData(tables, tableId); - if (!table) return; - - table.ui.left += data.movementX; - table.ui.top += data.movementY; - }); - - data.memoIds.forEach(memoId => { - const memo = getData(memos, memoId); - if (!memo) return; - - memo.ui.left += data.movementX; - memo.ui.top += data.movementY; - }); -} - -export function executeRemoveMemo( - { memoState: { memos } }: State, - { memoIds }: RemoveMemo -) { - for (let i = 0; i < memos.length; i++) { - const id = memos[i].id; - - if (memoIds.includes(id)) { - memos.splice(i, 1); - i--; - } - } -} - -export function executeSelectMemo( - { memoState: { memos } }: State, - data: SelectMemo -) { - const targetMemo = getData(memos, data.memoId); - if (!targetMemo) return; - - targetMemo.ui.zIndex = data.zIndex; - data.ctrlKey - ? (targetMemo.ui.active = true) - : memos.forEach(memo => (memo.ui.active = memo.id === data.memoId)); -} - -export function executeSelectEndMemo({ memoState: { memos } }: State) { - memos.forEach(memo => (memo.ui.active = false)); -} - -export function executeSelectAllMemo({ memoState: { memos } }: State) { - memos.forEach(memo => (memo.ui.active = true)); -} - -export function executeChangeMemoValue( - { memoState: { memos } }: State, - data: ChangeMemoValue -) { - const memo = getData(memos, data.memoId); - if (!memo) return; - - memo.value = data.value; -} - -export function executeResizeMemo( - { memoState: { memos } }: State, - data: ResizeMemo -) { - const memo = getData(memos, data.memoId); - if (!memo) return; - - memo.ui.top = data.top; - memo.ui.left = data.left; - memo.ui.width = data.width; - memo.ui.height = data.height; -} - -export function executeDragSelectMemo( - { memoState: { memos } }: State, - data: DragSelectMemo -) { - const { min, max } = data; - - memos.forEach(memo => { - const centerX = memo.ui.left + memo.ui.width / 2 + MEMO_PADDING; - const centerY = memo.ui.top + memo.ui.height / 2 + MEMO_PADDING; - - memo.ui.active = - min.x <= centerX && - max.x >= centerX && - min.y <= centerY && - max.y >= centerY; - }); -} - -export function executeLoadMemo({ memoState: { memos } }: State, data: Memo) { - memos.push(new MemoModel({ loadMemo: data })); -} - -export function executeChangeColorMemo( - { tableState: { tables }, memoState: { memos } }: State, - data: ChangeColorMemo -) { - data.tableIds.forEach(tableId => { - const table = getData(tables, tableId); - if (!table) return; - - table.ui.color = data.color; - }); - - data.memoIds.forEach(memoId => { - const memo = getData(memos, memoId); - if (!memo) return; - - memo.ui.color = data.color; - }); -} - -export const executeMemoCommandMap: Record< - keyof MemoCommandMap, - ExecuteCommand -> = { - 'memo.add': executeAddMemo, - 'memo.move': executeMoveMemo, - 'memo.remove': executeRemoveMemo, - 'memo.select': executeSelectMemo, - 'memo.selectEnd': executeSelectEndMemo, - 'memo.selectAll': executeSelectAllMemo, - 'memo.changeValue': executeChangeMemoValue, - 'memo.resize': executeResizeMemo, - 'memo.dragSelect': executeDragSelectMemo, - 'memo.load': executeLoadMemo, - 'memo.changeColor': executeChangeColorMemo, -}; diff --git a/packages-legacy/vuerd/src/engine/command/relationship.cmd.helper.ts b/packages-legacy/vuerd/src/engine/command/relationship.cmd.helper.ts deleted file mode 100644 index 30bce740..00000000 --- a/packages-legacy/vuerd/src/engine/command/relationship.cmd.helper.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { uuid } from '@/core/helper'; -import { - Relationship, - RelationshipType, - StartRelationshipType, -} from '@@types/engine/store/relationship.state'; -import { Table } from '@@types/engine/store/table.state'; - -import { createCommand } from './helper'; - -export function addRelationship( - relationshipType: RelationshipType, - startTable: Table, - endTableId: string, - constraintName: string -) { - const columnIds = startTable.columns - .filter(column => column.option.primaryKey) - .map(column => column.id); - - return createCommand('relationship.add', { - id: uuid(), - relationshipType, - start: { - tableId: startTable.id, - columnIds, - }, - end: { - tableId: endTableId, - columnIds: columnIds.map(() => uuid()), - }, - constraintName, - }); -} - -export const removeRelationship = (relationshipIds: string[]) => - createCommand('relationship.remove', { relationshipIds }); - -export const changeRelationshipType = ( - relationshipId: string, - relationshipType: RelationshipType -) => - createCommand('relationship.changeRelationshipType', { - relationshipId, - relationshipType, - }); - -export const changeStartRelationshipType = ( - relationshipId: string, - startRelationshipType: StartRelationshipType -) => - createCommand('relationship.changeStartRelationshipType', { - relationshipId, - startRelationshipType, - }); - -export const changeIdentification = ( - relationshipId: string, - identification: boolean -) => - createCommand('relationship.changeIdentification', { - relationshipId, - identification, - }); - -export const loadRelationship = (relationship: Relationship) => - createCommand('relationship.load', relationship); - -export const hideRelationship = (relationshipId: string) => - createCommand('relationship.hide', { relationshipId }); - -export const showRelationship = (relationshipId: string) => - createCommand('relationship.show', { relationshipId }); diff --git a/packages-legacy/vuerd/src/engine/command/relationship.cmd.ts b/packages-legacy/vuerd/src/engine/command/relationship.cmd.ts deleted file mode 100644 index e2c53457..00000000 --- a/packages-legacy/vuerd/src/engine/command/relationship.cmd.ts +++ /dev/null @@ -1,139 +0,0 @@ -import { getData } from '@/core/helper'; -import { removeValidRelationshipColumnId } from '@/engine/store/helper/valid.helper'; -import { RelationshipModel } from '@/engine/store/models/relationship.model'; -import { ExecuteCommand } from '@/internal-types/command'; -import { - AddRelationship, - ChangeIdentification, - ChangeRelationshipType, - ChangeStartRelationshipType, - HideRelationship, - RelationshipCommandMap, - RemoveRelationship, - ShowRelationship, -} from '@@types/engine/command/relationship.cmd'; -import { State } from '@@types/engine/store'; -import { Relationship } from '@@types/engine/store/relationship.state'; - -export function executeAddRelationship( - { relationshipState: { relationships }, tableState: { tables } }: State, - data: AddRelationship -) { - const { start, end } = data; - const startTable = getData(tables, start.tableId); - const endTable = getData(tables, end.tableId); - if (!start.columnIds.length || !startTable || !endTable) return; - - relationships.push(new RelationshipModel({ addRelationship: data })); -} - -export function executeRemoveRelationship( - state: State, - data: RemoveRelationship -) { - const { - relationshipState: { relationships }, - } = state; - - for (let i = 0; i < relationships.length; i++) { - const relationship = relationships[i]; - - if (data.relationshipIds.includes(relationship.id)) { - relationships.splice(i, 1); - i--; - - // TODO: Refactoring - removeValidRelationshipColumnId( - state, - relationship.end.tableId, - relationship.end.columnIds - ); - } - } -} - -export function executeChangeRelationshipType( - { relationshipState: { relationships } }: State, - data: ChangeRelationshipType -) { - const relationship = getData(relationships, data.relationshipId); - if (!relationship) return; - - relationship.relationshipType = data.relationshipType; -} - -export function executeChangeStartRelationshipType( - { relationshipState: { relationships } }: State, - data: ChangeStartRelationshipType -) { - const relationship = getData(relationships, data.relationshipId); - if (!relationship) return; - - relationship.startRelationshipType = data.startRelationshipType; -} - -export function executeChangeIdentification( - { relationshipState: { relationships } }: State, - data: ChangeIdentification -) { - const relationship = getData(relationships, data.relationshipId); - if (!relationship) return; - - relationship.identification = data.identification; -} - -export function executeLoadRelationship( - { relationshipState: { relationships }, tableState: { tables } }: State, - data: Relationship -) { - const table = getData(tables, data.end.tableId); - if (!table || !getData(tables, data.start.tableId)) return; - - relationships.push(new RelationshipModel({ loadRelationship: data })); - - data.end.columnIds.forEach(columnId => { - const column = getData(table.columns, columnId); - if (!column) return; - - if (column.option.primaryKey) { - column.ui.pfk = true; - column.ui.pk = false; - column.ui.fk = false; - } else { - column.ui.pfk = false; - column.ui.pk = false; - column.ui.fk = true; - } - }); -} - -export function executeHideRelationship( - { relationshipState: { relationships } }: State, - data: HideRelationship -) { - const relationship = getData(relationships, data.relationshipId); - if (relationship) relationship.visible = false; -} - -export function executeShowRelationship( - { relationshipState: { relationships } }: State, - data: ShowRelationship -) { - const relationship = getData(relationships, data.relationshipId); - if (relationship) relationship.visible = true; -} - -export const executeRelationshipCommandMap: Record< - keyof RelationshipCommandMap, - ExecuteCommand -> = { - 'relationship.add': executeAddRelationship, - 'relationship.remove': executeRemoveRelationship, - 'relationship.changeRelationshipType': executeChangeRelationshipType, - 'relationship.changeStartRelationshipType': - executeChangeStartRelationshipType, - 'relationship.changeIdentification': executeChangeIdentification, - 'relationship.load': executeLoadRelationship, - 'relationship.hide': executeHideRelationship, - 'relationship.show': executeShowRelationship, -}; diff --git a/packages-legacy/vuerd/src/engine/command/table.cmd.helper.gen.ts b/packages-legacy/vuerd/src/engine/command/table.cmd.helper.gen.ts deleted file mode 100644 index cbac30f6..00000000 --- a/packages-legacy/vuerd/src/engine/command/table.cmd.helper.gen.ts +++ /dev/null @@ -1,126 +0,0 @@ -import { getData, uuid } from '@/core/helper'; -import { createCommand } from '@/engine/command/helper'; -import { Helper } from '@@types/core/helper'; -import { AddCustomColumn } from '@@types/engine/command/column.cmd'; -import { Store } from '@@types/engine/store'; - -import { ColumnModel } from '../store/models/column.model'; -import { loadColumn } from './column.cmd.helper'; -import { - drawEndRelationship, - drawStartAddRelationship$, - focusTable, - focusTableEnd, -} from './editor.cmd.helper'; -import { selectEndMemo } from './memo.cmd.helper'; -import { addRelationship } from './relationship.cmd.helper'; -import { addTable, selectEndTable, selectTable } from './table.cmd.helper'; - -export function* addTable$(store: Store, active = true) { - yield selectEndTable(); - yield selectEndMemo(); - const addTableCmd = addTable(store, active); - yield addTableCmd; - yield focusTable(addTableCmd.data.id); -} - -export function* selectTable$(store: Store, ctrlKey: boolean, tableId: string) { - const { - editorState: { drawRelationship }, - } = store; - - yield selectTable(store, ctrlKey, tableId); - if (!ctrlKey) { - yield selectEndMemo(); - } - yield focusTable(tableId); - - if (!drawRelationship) return; - - if (drawRelationship.start) { - const endTable = getData(store.tableState.tables, tableId); - const fkName: string = - `fk_${drawRelationship.start.table.name}_to_${endTable?.name}`.toLowerCase(); - - const addRelationshipCmd = addRelationship( - drawRelationship.relationshipType, - drawRelationship.start.table, - tableId, - fkName - ); - const startTable = drawRelationship.start.table; - const { start, end } = addRelationshipCmd.data; - const createEndColumns: AddCustomColumn[] = []; - - start.columnIds.forEach((startColumnId, index) => { - const startColumn = getData(startTable.columns, startColumnId); - if (!startColumn) return; - - createEndColumns.push({ - tableId: end.tableId, - id: end.columnIds[index], - option: { - autoIncrement: false, - primaryKey: false, - unique: false, - notNull: true, - }, - ui: { - active: false, - pk: false, - fk: true, - pfk: false, - }, - value: { - name: startColumn.name, - comment: startColumn.comment, - dataType: startColumn.dataType, - default: startColumn.default, - widthName: startColumn.ui.widthName, - widthComment: startColumn.ui.widthComment, - widthDataType: startColumn.ui.widthDataType, - widthDefault: startColumn.ui.widthDefault, - }, - }); - }); - - yield createCommand('column.addCustom', createEndColumns); - yield addRelationshipCmd; - yield drawEndRelationship(); - } else { - yield drawStartAddRelationship$(store, tableId); - } -} - -export function* selectEndTable$() { - yield selectEndTable(); - yield focusTableEnd(); -} - -export function* addTableDefault$(tableId: string, helper: Helper) { - const idCol = new ColumnModel({ - addColumn: { tableId: tableId, id: uuid() }, - }); - idCol.name = 'id'; - idCol.dataType = 'INT'; - idCol.option.autoIncrement = true; - idCol.option.primaryKey = true; - idCol.ui.pk = true; - - const createdAt = new ColumnModel({ - addColumn: { tableId, id: uuid() }, - }); - createdAt.name = 'created_at'; - createdAt.dataType = 'timestamp'; - createdAt.ui.widthName = helper.getTextWidth('created_at'); - - const updatedAt = new ColumnModel({ - addColumn: { tableId, id: uuid() }, - }); - updatedAt.name = 'updated_at'; - updatedAt.dataType = 'timestamp'; - createdAt.ui.widthName = helper.getTextWidth('updated_at'); - createdAt.ui.widthDataType = helper.getTextWidth('timestamp'); - - yield loadColumn(tableId, [updatedAt, createdAt, idCol], []); -} diff --git a/packages-legacy/vuerd/src/engine/command/table.cmd.helper.ts b/packages-legacy/vuerd/src/engine/command/table.cmd.helper.ts deleted file mode 100644 index bb99eb28..00000000 --- a/packages-legacy/vuerd/src/engine/command/table.cmd.helper.ts +++ /dev/null @@ -1,125 +0,0 @@ -import { uuid } from '@/core/helper'; -import { SIZE_MIN_WIDTH } from '@/core/layout'; -import { nextPoint, nextZIndex } from '@/engine/store/helper'; -import { Helper } from '@@types/core/helper'; -import { Store } from '@@types/engine/store'; -import { Point } from '@@types/engine/store/relationship.state'; -import { PureTable } from '@@types/engine/store/table.state'; - -import { createCommand } from './helper'; - -export * from './table.cmd.helper.gen'; - -export function addTable(store: Store, active = true) { - const { tableState, memoState } = store; - const point = nextPoint(store); - return createCommand('table.add', { - id: uuid(), - ui: { - active, - left: point.x, - top: point.y, - zIndex: nextZIndex(tableState.tables, memoState.memos), - }, - }); -} - -export const moveTable = ( - { - tableState: { tables }, - memoState: { memos }, - canvasState: { zoomLevel }, - }: Store, - ctrlKey: boolean, - movementX: number, - movementY: number, - tableId: string -) => - createCommand('table.move', { - movementX: movementX / zoomLevel, - movementY: movementY / zoomLevel, - tableIds: ctrlKey - ? tables.filter(table => table.ui.active).map(table => table.id) - : [tableId], - memoIds: ctrlKey - ? memos.filter(memo => memo.ui.active).map(memo => memo.id) - : [], - }); - -export const removeTable = ( - { tableState: { tables } }: Store, - tableId?: string -) => - createCommand('table.remove', { - tableIds: tableId - ? [tableId] - : tables.filter(table => table.ui.active).map(table => table.id), - }); - -export const selectTable = ( - { tableState: { tables }, memoState: { memos } }: Store, - ctrlKey: boolean, - tableId: string -) => - createCommand('table.select', { - ctrlKey, - tableId, - zIndex: nextZIndex(tables, memos), - }); - -export const selectEndTable = () => createCommand('table.selectEnd', null); - -export const selectAllTable = () => createCommand('table.selectAll', null); - -export function changeTableName( - helper: Helper, - tableId: string, - value: string -) { - const width = helper.getTextWidth(value); - return createCommand('table.changeName', { - tableId, - value, - width: width < SIZE_MIN_WIDTH ? SIZE_MIN_WIDTH : width, - }); -} - -export function changeTableComment( - helper: Helper, - tableId: string, - value: string -) { - const width = helper.getTextWidth(value); - return createCommand('table.changeComment', { - tableId, - value, - width: width < SIZE_MIN_WIDTH ? SIZE_MIN_WIDTH : width, - }); -} - -export const dragSelectTable = (min: Point, max: Point) => - createCommand('table.dragSelect', { - min, - max, - }); - -export const sortTable = () => createCommand('table.sort', null); - -export const loadTable = (table: PureTable) => - createCommand('table.load', table); - -export const changeColorTable = ( - { tableState: { tables }, memoState: { memos } }: Store, - ctrlKey: boolean, - color: string, - tableId: string -) => - createCommand('table.changeColor', { - tableIds: ctrlKey - ? tables.filter(table => table.ui.active).map(table => table.id) - : [tableId], - memoIds: ctrlKey - ? memos.filter(memo => memo.ui.active).map(memo => memo.id) - : [], - color, - }); diff --git a/packages-legacy/vuerd/src/engine/command/table.cmd.ts b/packages-legacy/vuerd/src/engine/command/table.cmd.ts deleted file mode 100644 index f01ea20f..00000000 --- a/packages-legacy/vuerd/src/engine/command/table.cmd.ts +++ /dev/null @@ -1,212 +0,0 @@ -import { getData } from '@/core/helper'; -import { SIZE_TABLE_BORDER, SIZE_TABLE_PADDING } from '@/core/layout'; -import { commentWidthBalanceRange } from '@/engine/store/helper/column.helper'; -import { - removeValidTableIndex, - removeValidTableRelationship, -} from '@/engine/store/helper/valid.helper'; -import { TableModel } from '@/engine/store/models/table.model'; -import { ExecuteCommand } from '@/internal-types/command'; -import { - AddTable, - ChangeColorTable, - ChangeTableValue, - DragSelectTable, - MoveTable, - RemoveTable, - SelectTable, - TableCommandMap, -} from '@@types/engine/command/table.cmd'; -import { State } from '@@types/engine/store'; -import { PureTable } from '@@types/engine/store/table.state'; - -const TABLE_PADDING = (SIZE_TABLE_PADDING + SIZE_TABLE_BORDER) * 2; -const TABLE_SORT_PADDING = TABLE_PADDING * 4; - -export function executeAddTable( - { tableState: { tables }, canvasState: { show } }: State, - data: AddTable -) { - tables.push(new TableModel({ addTable: data }, show)); -} - -export function executeMoveTable( - { tableState: { tables }, memoState: { memos } }: State, - data: MoveTable -) { - data.tableIds.forEach(tableId => { - const table = getData(tables, tableId); - if (!table) return; - - table.ui.left = - Math.round((table.ui.left + data.movementX + Number.EPSILON) * 10000) / - 10000; - table.ui.top = - Math.round((table.ui.top + data.movementY + Number.EPSILON) * 10000) / - 10000; - }); - - data.memoIds.forEach(memoId => { - const memo = getData(memos, memoId); - if (!memo) return; - - memo.ui.left += data.movementX; - memo.ui.top += data.movementY; - }); -} - -export function executeRemoveTable(state: State, data: RemoveTable) { - const { - tableState: { tables }, - } = state; - - for (let i = 0; i < tables.length; i++) { - const id = tables[i].id; - - if (data.tableIds.includes(id)) { - tables.splice(i, 1); - i--; - } - } - - // TODO: Refactoring - removeValidTableIndex(state, data.tableIds); - removeValidTableRelationship(state, data.tableIds); -} - -export function executeSelectTable( - { tableState: { tables } }: State, - data: SelectTable -) { - const targetTable = getData(tables, data.tableId); - if (!targetTable) return; - - targetTable.ui.zIndex = data.zIndex; - data.ctrlKey - ? (targetTable.ui.active = true) - : tables.forEach(table => (table.ui.active = table.id === data.tableId)); -} - -export function executeSelectEndTable({ tableState: { tables } }: State) { - tables.forEach(table => (table.ui.active = false)); -} - -export function executeSelectAllTable({ tableState: { tables } }: State) { - tables.forEach(table => (table.ui.active = true)); -} - -export function executeChangeTableName( - { tableState: { tables } }: State, - data: ChangeTableValue -) { - const table = getData(tables, data.tableId); - if (!table) return; - - table.name = data.value; - table.ui.widthName = data.width; -} - -export function executeChangeTableComment( - { tableState: { tables } }: State, - data: ChangeTableValue -) { - const table = getData(tables, data.tableId); - if (!table) return; - - table.comment = data.value; - table.ui.widthComment = commentWidthBalanceRange(data.width); -} - -export function executeDragSelectTable( - { tableState: { tables } }: State, - data: DragSelectTable -) { - const { min, max } = data; - - tables.forEach(table => { - const centerX = table.ui.left + table.width() / 2 + TABLE_PADDING; - const centerY = table.ui.top + table.height() / 2 + TABLE_PADDING; - - table.ui.active = - min.x <= centerX && - max.x >= centerX && - min.y <= centerY && - max.y >= centerY; - }); -} - -export function executeSortTable({ - tableState: { tables }, - canvasState, -}: State) { - const canvasWidth = canvasState.width; - - tables.sort((a, b) => a.columns.length - b.columns.length); - - let widthSum = 50; - let currentHeight = 50; - let maxHeight = 50; - - tables.forEach(table => { - const width = table.width() + TABLE_SORT_PADDING; - const height = table.height() + TABLE_SORT_PADDING; - - if (widthSum + width > canvasWidth) { - currentHeight += maxHeight; - maxHeight = 0; - widthSum = 50; - } - - if (maxHeight < height) { - maxHeight = height; - } - - table.ui.top = currentHeight; - table.ui.left = widthSum; - widthSum += width; - }); -} - -export function executeLoadTable( - { tableState: { tables }, canvasState: { show } }: State, - data: PureTable -) { - tables.push(new TableModel({ loadTable: data }, show)); -} - -export function executeChangeColorTable( - { tableState: { tables }, memoState: { memos } }: State, - data: ChangeColorTable -) { - data.tableIds.forEach(tableId => { - const table = getData(tables, tableId); - if (!table) return; - - table.ui.color = data.color; - }); - - data.memoIds.forEach(memoId => { - const memo = getData(memos, memoId); - if (!memo) return; - - memo.ui.color = data.color; - }); -} - -export const executeTableCommandMap: Record< - keyof TableCommandMap, - ExecuteCommand -> = { - 'table.add': executeAddTable, - 'table.move': executeMoveTable, - 'table.remove': executeRemoveTable, - 'table.select': executeSelectTable, - 'table.selectEnd': executeSelectEndTable, - 'table.selectAll': executeSelectAllTable, - 'table.changeName': executeChangeTableName, - 'table.changeComment': executeChangeTableComment, - 'table.dragSelect': executeDragSelectTable, - 'table.sort': executeSortTable, - 'table.load': executeLoadTable, - 'table.changeColor': executeChangeColorTable, -}; diff --git a/packages-legacy/vuerd/src/engine/history/canvas.cmd.ts b/packages-legacy/vuerd/src/engine/history/canvas.cmd.ts deleted file mode 100644 index 1e910eda..00000000 --- a/packages-legacy/vuerd/src/engine/history/canvas.cmd.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { - changeDatabase, - changeDatabaseName, - moveCanvas, - resizeCanvas, - zoomCanvas, -} from '@/engine/command/canvas.cmd.helper'; -import { createCommand } from '@/engine/command/helper'; -import { IStore } from '@/internal-types/store'; -import { BatchCommand } from '@@types/engine/command'; -import { ChangeCanvasShow } from '@@types/engine/command/canvas.cmd'; - -export function executeMoveCanvas( - { canvasState: { scrollTop, scrollLeft } }: IStore, - batchUndoCommand: BatchCommand -) { - batchUndoCommand.push(moveCanvas(scrollTop, scrollLeft)); -} - -export function executeResizeCanvas( - { canvasState: { width, height } }: IStore, - batchUndoCommand: BatchCommand -) { - batchUndoCommand.push(resizeCanvas(width, height)); -} - -export function executeZoomCanvas( - { canvasState: { zoomLevel } }: IStore, - batchUndoCommand: BatchCommand -) { - batchUndoCommand.push(zoomCanvas(zoomLevel)); -} - -export function executeChangeCanvasShow( - store: IStore, - batchUndoCommand: BatchCommand, - data: ChangeCanvasShow -) { - batchUndoCommand.push( - createCommand('canvas.changeShow', { - showKey: data.showKey, - value: !data.value, - }) - ); -} - -export function executeChangeDatabase( - { canvasState: { database } }: IStore, - batchUndoCommand: BatchCommand -) { - batchUndoCommand.push(changeDatabase(database)); -} - -export function executeChangeDatabaseName( - { canvasState: { databaseName } }: IStore, - batchUndoCommand: BatchCommand -) { - batchUndoCommand.push(changeDatabaseName(databaseName)); -} - -export const executeCanvasCommandMap = { - 'canvas.move': executeMoveCanvas, - 'canvas.resize': executeResizeCanvas, - 'canvas.zoom': executeZoomCanvas, - 'canvas.changeShow': executeChangeCanvasShow, - 'canvas.changeDatabase': executeChangeDatabase, - 'canvas.changeDatabaseName': executeChangeDatabaseName, -}; diff --git a/packages-legacy/vuerd/src/engine/history/column.cmd.ts b/packages-legacy/vuerd/src/engine/history/column.cmd.ts deleted file mode 100644 index b9e7e6af..00000000 --- a/packages-legacy/vuerd/src/engine/history/column.cmd.ts +++ /dev/null @@ -1,363 +0,0 @@ -import { cloneDeep, getData, getIndex } from '@/core/helper'; -import { - loadColumn, - removeColumn, - removeOnlyColumn, -} from '@/engine/command/column.cmd.helper'; -import { createCommand } from '@/engine/command/helper'; -import { loadIndex, removeIndex } from '@/engine/command/index.cmd.helper'; -import { - loadRelationship, - removeRelationship, -} from '@/engine/command/relationship.cmd.helper'; -import { getColumn } from '@/engine/store/helper/column.helper'; -import { IStore } from '@/internal-types/store'; -import { BatchCommand } from '@@types/engine/command'; -import { - AddColumn, - AddCustomColumn, - ChangeColumnOption, - ChangeColumnValue, - MoveColumn, - RemoveColumn, -} from '@@types/engine/command/column.cmd'; -import { Relationship } from '@@types/engine/store/relationship.state'; -import { Column, Index } from '@@types/engine/store/table.state'; - -export function executeAddColumn( - store: IStore, - batchUndoCommand: BatchCommand, - data: AddColumn[] -) { - batchUndoCommand.push( - ...data.map(addColumn => removeColumn(addColumn.tableId, [addColumn.id])) - ); -} - -export function executeAddCustomColumn( - store: IStore, - batchUndoCommand: BatchCommand, - data: AddCustomColumn[] -) { - batchUndoCommand.push( - ...data.map(addColumn => removeColumn(addColumn.tableId, [addColumn.id])) - ); -} - -export function executeRemoveColumn( - { - tableState: { tables, indexes }, - relationshipState: { relationships }, - }: IStore, - batchUndoCommand: BatchCommand, - data: RemoveColumn -) { - const targetRelationships: Relationship[] = []; - const targetIndexes: Index[] = []; - const table = getData(tables, data.tableId); - if (!table) return; - - relationships.forEach(relationship => { - const { start, end } = relationship; - - if ( - (data.tableId === start.tableId && - data.columnIds.some(columnId => start.columnIds.includes(columnId))) || - (data.tableId === end.tableId && - data.columnIds.some(columnId => end.columnIds.includes(columnId))) - ) { - targetRelationships.push(cloneDeep(relationship)); - } - }); - - const tableIndexes = indexes.filter(index => index.tableId === table.id); - - tableIndexes.forEach(index => targetIndexes.push(cloneDeep(index))); - - const columns: Column[] = []; - const indexList: number[] = []; - - data.columnIds.forEach(columnId => { - const column = getData(table.columns, columnId); - const index = getIndex(table.columns, columnId); - - if (column && index !== -1) { - columns.push(cloneDeep(column)); - indexList.push(index); - } - }); - - batchUndoCommand.push(loadColumn(data.tableId, columns, indexList)); - - if (targetRelationships.length) { - batchUndoCommand.push( - removeRelationship( - targetRelationships.map(relationship => relationship.id) - ), - ...targetRelationships.map(relationship => loadRelationship(relationship)) - ); - } - - if (targetIndexes.length) { - batchUndoCommand.push( - removeIndex(targetIndexes.map(index => index.id)), - ...targetIndexes.map(index => loadIndex(index)) - ); - } -} - -export function executeChangeColumnName( - { tableState: { tables } }: IStore, - batchUndoCommand: BatchCommand, - data: ChangeColumnValue -) { - const column = getColumn(tables, data.tableId, data.columnId); - if (!column) return; - - batchUndoCommand.push( - createCommand('column.changeName', { - tableId: data.tableId, - columnId: data.columnId, - value: column.name, - width: column.ui.widthName, - }) - ); -} - -export function executeChangeColumnComment( - { tableState: { tables } }: IStore, - batchUndoCommand: BatchCommand, - data: ChangeColumnValue -) { - const column = getColumn(tables, data.tableId, data.columnId); - if (!column) return; - - batchUndoCommand.push( - createCommand('column.changeComment', { - tableId: data.tableId, - columnId: data.columnId, - value: column.comment, - width: column.ui.widthComment, - }) - ); -} - -export function executeChangeColumnDataType( - { tableState: { tables } }: IStore, - batchUndoCommand: BatchCommand, - data: ChangeColumnValue -) { - const column = getColumn(tables, data.tableId, data.columnId); - if (!column) return; - - batchUndoCommand.push( - createCommand('column.changeDataType', { - tableId: data.tableId, - columnId: data.columnId, - value: column.dataType, - width: column.ui.widthDataType, - }) - ); -} - -export function executeChangeColumnDefault( - { tableState: { tables } }: IStore, - batchUndoCommand: BatchCommand, - data: ChangeColumnValue -) { - const column = getColumn(tables, data.tableId, data.columnId); - if (!column) return; - - batchUndoCommand.push( - createCommand('column.changeDefault', { - tableId: data.tableId, - columnId: data.columnId, - value: column.default, - width: column.ui.widthDefault, - }) - ); -} - -export function executeChangeColumnAutoIncrement( - store: IStore, - batchUndoCommand: BatchCommand, - data: ChangeColumnOption -) { - batchUndoCommand.push( - createCommand('column.changeAutoIncrement', { - tableId: data.tableId, - columnId: data.columnId, - value: !data.value, - }) - ); -} - -export function executeChangeColumnPrimaryKey( - store: IStore, - batchUndoCommand: BatchCommand, - data: ChangeColumnOption -) { - batchUndoCommand.push( - createCommand('column.changePrimaryKey', { - tableId: data.tableId, - columnId: data.columnId, - value: !data.value, - }) - ); -} - -export function executeChangeColumnUnique( - store: IStore, - batchUndoCommand: BatchCommand, - data: ChangeColumnOption -) { - batchUndoCommand.push( - createCommand('column.changeUnique', { - tableId: data.tableId, - columnId: data.columnId, - value: !data.value, - }) - ); -} - -export function executeChangeColumnNotNull( - store: IStore, - batchUndoCommand: BatchCommand, - data: ChangeColumnOption -) { - batchUndoCommand.push( - createCommand('column.changeNotNull', { - tableId: data.tableId, - columnId: data.columnId, - value: !data.value, - }) - ); -} - -export function executeMoveColumn( - { - tableState: { tables, indexes }, - relationshipState: { relationships }, - }: IStore, - batchUndoCommand: BatchCommand, - data: MoveColumn -) { - const currentTable = getData(tables, data.tableId); - const currentColumns: Column[] = []; - - data.columnIds.forEach(columnId => { - const column = getColumn(tables, data.tableId, columnId); - if (!column) return; - - currentColumns.push(column); - }); - - const targetTable = getData(tables, data.targetTableId); - const targetColumn = getColumn( - tables, - data.targetTableId, - data.targetColumnId - ); - - if (currentTable && targetTable && currentColumns.length && targetColumn) { - if ( - data.tableId === data.targetTableId && - !data.columnIds.includes(data.targetColumnId) - ) { - const columns: Column[] = []; - const indexList: number[] = []; - - data.columnIds.forEach(columnId => { - const column = getData(currentTable.columns, columnId); - const index = getIndex(currentTable.columns, columnId); - - if (column && index !== -1) { - columns.push(cloneDeep(column)); - indexList.push(index); - } - }); - - batchUndoCommand.push( - removeOnlyColumn(data.tableId, data.columnIds), - loadColumn(data.tableId, columns, indexList) - ); - } else if ( - data.tableId !== data.targetTableId && - !data.columnIds.includes(data.targetColumnId) - ) { - const targetRelationships: Relationship[] = []; - const targetIndexes: Index[] = []; - const columns: Column[] = []; - const indexList: number[] = []; - - data.columnIds.forEach(columnId => { - const column = getData(currentTable.columns, columnId); - const index = getIndex(currentTable.columns, columnId); - - if (column && index !== -1) { - columns.push(cloneDeep(column)); - indexList.push(index); - } - }); - - batchUndoCommand.push( - removeOnlyColumn(data.targetTableId, data.columnIds), - loadColumn(data.tableId, columns, indexList) - ); - - relationships.forEach(relationship => { - const { start, end } = relationship; - - if ( - (data.tableId === start.tableId && - data.columnIds.some(columnId => - start.columnIds.includes(columnId) - )) || - (data.tableId === end.tableId && - data.columnIds.some(columnId => end.columnIds.includes(columnId))) - ) { - targetRelationships.push(cloneDeep(relationship)); - } - }); - - const tableIndexes = indexes.filter( - index => index.tableId === data.tableId - ); - - tableIndexes.forEach(index => targetIndexes.push(cloneDeep(index))); - - if (targetRelationships.length) { - batchUndoCommand.push( - removeRelationship( - targetRelationships.map(relationship => relationship.id) - ), - ...targetRelationships.map(relationship => - loadRelationship(relationship) - ) - ); - } - - if (targetIndexes.length) { - batchUndoCommand.push( - removeIndex(targetIndexes.map(index => index.id)), - ...targetIndexes.map(index => loadIndex(index)) - ); - } - } - } -} - -export const executeColumnCommandMap = { - 'column.add': executeAddColumn, - 'column.addCustom': executeAddCustomColumn, - 'column.remove': executeRemoveColumn, - 'column.changeName': executeChangeColumnName, - 'column.changeComment': executeChangeColumnComment, - 'column.changeDataType': executeChangeColumnDataType, - 'column.changeDefault': executeChangeColumnDefault, - 'column.changeAutoIncrement': executeChangeColumnAutoIncrement, - 'column.changePrimaryKey': executeChangeColumnPrimaryKey, - 'column.changeUnique': executeChangeColumnUnique, - 'column.changeNotNull': executeChangeColumnNotNull, - 'column.move': executeMoveColumn, -}; diff --git a/packages-legacy/vuerd/src/engine/history/editor.cmd.ts b/packages-legacy/vuerd/src/engine/history/editor.cmd.ts deleted file mode 100644 index 57d178ad..00000000 --- a/packages-legacy/vuerd/src/engine/history/editor.cmd.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { createJsonStringify } from '@/core/file'; -import { loadJson$ } from '@/engine/command/editor.cmd.helper'; -import { IStore } from '@/internal-types/store'; -import { BatchCommand } from '@@types/engine/command'; - -export function executeLoadJson(store: IStore, batchUndoCommand: BatchCommand) { - batchUndoCommand.push(loadJson$(createJsonStringify(store))); -} - -export function executeClear(store: IStore, batchUndoCommand: BatchCommand) { - batchUndoCommand.push(loadJson$(createJsonStringify(store))); -} - -export const executeEditorCommandMap = { - 'editor.loadJson': executeLoadJson, - 'editor.clear': executeClear, -}; diff --git a/packages-legacy/vuerd/src/engine/history/index.ts b/packages-legacy/vuerd/src/engine/history/index.ts deleted file mode 100644 index 20495ec3..00000000 --- a/packages-legacy/vuerd/src/engine/history/index.ts +++ /dev/null @@ -1,72 +0,0 @@ -import * as R from 'ramda'; - -import { flat } from '@/core/helper'; -import { Logger } from '@/core/logger'; -import { History } from '@/internal-types/history'; -import { IStore } from '@/internal-types/store'; -import { BatchCommand, CommandTypeAll } from '@@types/engine/command'; - -import { executeCanvasCommandMap } from './canvas.cmd'; -import { executeColumnCommandMap } from './column.cmd'; -import { executeEditorCommandMap } from './editor.cmd'; -import { executeMemoCommandMap } from './memo.cmd'; -import { executeRelationshipCommandMap } from './relationship.cmd'; -import { executeStreamCommandMap } from './stream.cmd'; -import { executeTableCommandMap } from './table.cmd'; - -const executeCommandMap: any = { - ...executeCanvasCommandMap, - ...executeMemoCommandMap, - ...executeTableCommandMap, - ...executeColumnCommandMap, - ...executeEditorCommandMap, - ...executeRelationshipCommandMap, -}; - -function executeCommand( - store: IStore, - history: History, - commands: CommandTypeAll[] -) { - Logger.log( - 'executeHistoryCommand =>', - commands.map(command => command.name).join(',') - ); - const batchUndoCommand: BatchCommand = []; - const batchRedoCommand: BatchCommand = []; - - commands.forEach(command => { - const execute = executeCommandMap[command.name]; - if (!execute) return; - - execute(store, batchUndoCommand, command.data); - batchRedoCommand.push(command); - }); - - Object.keys(executeStreamCommandMap).forEach(key => - executeStreamCommandMap[key as keyof typeof executeStreamCommandMap]( - commands, - batchUndoCommand, - batchRedoCommand - ) - ); - - if (!batchUndoCommand.length || !batchRedoCommand.length) return; - - history.push({ - undo: () => - store.history$.next([...flat(batchUndoCommand)]), - redo: () => - store.history$.next([...flat(batchRedoCommand)]), - }); -} - -export const executeHistoryCommand = R.curry( - (store: IStore, history: History, commands: CommandTypeAll[]) => { - try { - executeCommand(store, history, commands); - } catch (err) { - Logger.error(err); - } - } -); diff --git a/packages-legacy/vuerd/src/engine/history/memo.cmd.ts b/packages-legacy/vuerd/src/engine/history/memo.cmd.ts deleted file mode 100644 index 5a34f594..00000000 --- a/packages-legacy/vuerd/src/engine/history/memo.cmd.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { cloneDeep, getData } from '@/core/helper'; -import { - changeMemoValue, - loadMemo, - removeMemo, -} from '@/engine/command/memo.cmd.helper'; -import { IStore } from '@/internal-types/store'; -import { BatchCommand } from '@@types/engine/command'; -import { - AddMemo, - ChangeMemoValue, - RemoveMemo, -} from '@@types/engine/command/memo.cmd'; -import { Memo } from '@@types/engine/store/memo.state'; - -export function executeAddMemo( - store: IStore, - batchUndoCommand: BatchCommand, - data: AddMemo -) { - batchUndoCommand.push(removeMemo(store, data.id)); -} - -export function executeRemoveMemo( - { memoState: { memos } }: IStore, - batchUndoCommand: BatchCommand, - { memoIds }: RemoveMemo -) { - const targetMemos = memoIds - .map(memoId => getData(memos, memoId)) - .filter(memo => !!memo) as Memo[]; - if (!targetMemos.length) return; - - batchUndoCommand.push(...targetMemos.map(memo => loadMemo(cloneDeep(memo)))); -} - -export function executeChangeMemoValue( - { memoState: { memos } }: IStore, - batchUndoCommand: BatchCommand, - data: ChangeMemoValue -) { - const memo = getData(memos, data.memoId); - if (!memo) return; - - batchUndoCommand.push(changeMemoValue(memo.id, memo.value)); -} - -export const executeMemoCommandMap = { - 'memo.add': executeAddMemo, - 'memo.remove': executeRemoveMemo, - 'memo.changeValue': executeChangeMemoValue, -}; diff --git a/packages-legacy/vuerd/src/engine/history/relationship.cmd.ts b/packages-legacy/vuerd/src/engine/history/relationship.cmd.ts deleted file mode 100644 index 4292ee28..00000000 --- a/packages-legacy/vuerd/src/engine/history/relationship.cmd.ts +++ /dev/null @@ -1,113 +0,0 @@ -import { cloneDeep, getData } from '@/core/helper'; -import { createCommand } from '@/engine/command/helper'; -import { - changeIdentification, - hideRelationship, - loadRelationship, - removeRelationship, - showRelationship, -} from '@/engine/command/relationship.cmd.helper'; -import { IStore } from '@/internal-types/store'; -import { BatchCommand } from '@@types/engine/command'; -import { - AddRelationship, - ChangeIdentification, - ChangeRelationshipType, - ChangeStartRelationshipType, - HideRelationship, - RemoveRelationship, - ShowRelationship, -} from '@@types/engine/command/relationship.cmd'; -import { Relationship } from '@@types/engine/store/relationship.state'; - -export function executeAddRelationship( - store: IStore, - batchUndoCommand: BatchCommand, - data: AddRelationship -) { - batchUndoCommand.push(removeRelationship([data.id])); -} - -export function executeRemoveRelationship( - { relationshipState: { relationships } }: IStore, - batchUndoCommand: BatchCommand, - { relationshipIds }: RemoveRelationship -) { - const targetRelationships = relationshipIds - .map(id => getData(relationships, id)) - .filter(relationship => !!relationship) as Relationship[]; - if (!targetRelationships.length) return; - - batchUndoCommand.push( - ...targetRelationships.map(relationship => - loadRelationship(cloneDeep(relationship)) - ) - ); -} - -export function executeChangeRelationshipType( - { relationshipState: { relationships } }: IStore, - batchUndoCommand: BatchCommand, - data: ChangeRelationshipType -) { - const relationship = getData(relationships, data.relationshipId); - if (!relationship) return; - - batchUndoCommand.push( - createCommand('relationship.changeRelationshipType', { - relationshipId: relationship.id, - relationshipType: relationship.relationshipType, - }) - ); -} - -export function executeChangeStartRelationshipType( - { relationshipState: { relationships } }: IStore, - batchUndoCommand: BatchCommand, - data: ChangeStartRelationshipType -) { - const relationship = getData(relationships, data.relationshipId); - if (!relationship) return; - - batchUndoCommand.push( - createCommand('relationship.changeStartRelationshipType', { - relationshipId: relationship.id, - startRelationshipType: relationship.startRelationshipType ?? 'Dash', - }) - ); -} - -export function executeChangeIdentification( - store: IStore, - batchUndoCommand: BatchCommand, - { relationshipId, identification }: ChangeIdentification -) { - batchUndoCommand.push(changeIdentification(relationshipId, !identification)); -} - -export function executeHideRelationship( - store: IStore, - batchUndoCommand: BatchCommand, - { relationshipId }: HideRelationship -) { - batchUndoCommand.push(showRelationship(relationshipId)); -} - -export function executeShowRelationship( - store: IStore, - batchUndoCommand: BatchCommand, - { relationshipId }: ShowRelationship -) { - batchUndoCommand.push(hideRelationship(relationshipId)); -} - -export const executeRelationshipCommandMap = { - 'relationship.add': executeAddRelationship, - 'relationship.remove': executeRemoveRelationship, - 'relationship.changeRelationshipType': executeChangeRelationshipType, - 'relationship.changeStartRelationshipType': - executeChangeStartRelationshipType, - 'relationship.changeIdentification': executeChangeIdentification, - 'relationship.hide': executeHideRelationship, - 'relationship.show': executeShowRelationship, -}; diff --git a/packages-legacy/vuerd/src/engine/history/stream.cmd.ts b/packages-legacy/vuerd/src/engine/history/stream.cmd.ts deleted file mode 100644 index 76018c24..00000000 --- a/packages-legacy/vuerd/src/engine/history/stream.cmd.ts +++ /dev/null @@ -1,166 +0,0 @@ -import { - movementCanvas, - movementZoomCanvas, -} from '@/engine/command/canvas.cmd.helper'; -import { createCommand } from '@/engine/command/helper'; -import { BatchCommand, CommandTypeAll } from '@@types/engine/command'; -import { - MovementCanvas, - MovementZoomCanvas, -} from '@@types/engine/command/canvas.cmd'; -import { MoveMemo } from '@@types/engine/command/memo.cmd'; -import { MoveTable } from '@@types/engine/command/table.cmd'; - -const MOVE_MIN = 20; - -export function executeMoveTable( - commands: CommandTypeAll[], - batchUndoCommand: BatchCommand, - batchRedoCommand: BatchCommand -) { - const moveTableCommands = commands.filter( - command => command.name === 'table.move' - ); - if (!moveTableCommands.length) return; - - const data = moveTableCommands[0].data as MoveTable; - const tableIds = data.tableIds; - const memoIds = data.memoIds; - let movementX = 0; - let movementY = 0; - - moveTableCommands.forEach(moveTableCommand => { - const data = moveTableCommand.data as MoveTable; - movementX += data.movementX; - movementY += data.movementY; - }); - - if (Math.abs(movementX) + Math.abs(movementY) < MOVE_MIN) return; - - batchUndoCommand.push( - createCommand('table.move', { - movementX: -1 * movementX, - movementY: -1 * movementY, - tableIds, - memoIds, - }) - ); - batchRedoCommand.push( - createCommand('table.move', { - movementX, - movementY, - tableIds, - memoIds, - }) - ); -} - -export function executeMoveMemo( - commands: CommandTypeAll[], - batchUndoCommand: BatchCommand, - batchRedoCommand: BatchCommand -) { - const moveMemoCommands = commands.filter( - command => command.name === 'memo.move' - ); - if (!moveMemoCommands.length) return; - - const data = moveMemoCommands[0].data as MoveMemo; - const tableIds = data.tableIds; - const memoIds = data.memoIds; - let movementX = 0; - let movementY = 0; - - moveMemoCommands.forEach(moveTableCommand => { - const data = moveTableCommand.data as MoveMemo; - movementX += data.movementX; - movementY += data.movementY; - }); - - if (Math.abs(movementX) + Math.abs(movementY) < MOVE_MIN) return; - - batchUndoCommand.push( - createCommand('memo.move', { - movementX: -1 * movementX, - movementY: -1 * movementY, - tableIds, - memoIds, - }) - ); - batchRedoCommand.push( - createCommand('memo.move', { - movementX, - movementY, - tableIds, - memoIds, - }) - ); -} - -export function executeResizeMemo( - commands: CommandTypeAll[], - batchUndoCommand: BatchCommand, - batchRedoCommand: BatchCommand -) { - const resizeMemoCommands = commands.filter( - command => command.name === 'memo.resize' - ); - if (resizeMemoCommands.length < 2) return; - - batchUndoCommand.push(resizeMemoCommands[0]); - batchRedoCommand.push(resizeMemoCommands[resizeMemoCommands.length - 1]); -} - -export function executeMovementCanvas( - commands: CommandTypeAll[], - batchUndoCommand: BatchCommand, - batchRedoCommand: BatchCommand -) { - const moveCanvasCommands = commands.filter( - command => command.name === 'canvas.movement' - ); - if (!moveCanvasCommands.length) return; - - let movementX = 0; - let movementY = 0; - - moveCanvasCommands.forEach(moveCanvasCommand => { - const data = moveCanvasCommand.data as MovementCanvas; - movementX += data.movementX; - movementY += data.movementY; - }); - - if (Math.abs(movementX) + Math.abs(movementY) < MOVE_MIN) return; - - batchUndoCommand.push(movementCanvas(-1 * movementX, -1 * movementY)); - batchRedoCommand.push(movementCanvas(movementX, movementY)); -} - -export function executeMovementZoomCanvas( - commands: CommandTypeAll[], - batchUndoCommand: BatchCommand, - batchRedoCommand: BatchCommand -) { - const zoomCanvasCommands = commands.filter( - command => command.name === 'canvas.movementZoom' - ); - if (!zoomCanvasCommands.length) return; - - const movementZoomLevel = zoomCanvasCommands - .map( - zoomCanvasCommand => - (zoomCanvasCommand.data as MovementZoomCanvas).movementZoomLevel - ) - .reduce((acc, cur) => acc + cur, 0); - - batchUndoCommand.push(movementZoomCanvas(-1 * movementZoomLevel)); - batchRedoCommand.push(movementZoomCanvas(movementZoomLevel)); -} - -export const executeStreamCommandMap = { - 'table.move': executeMoveTable, - 'memo.move': executeMoveMemo, - 'memo.resize': executeResizeMemo, - 'canvas.movement': executeMovementCanvas, - 'canvas.movementZoom': executeMovementZoomCanvas, -}; diff --git a/packages-legacy/vuerd/src/engine/history/table.cmd.ts b/packages-legacy/vuerd/src/engine/history/table.cmd.ts deleted file mode 100644 index 843aa2dd..00000000 --- a/packages-legacy/vuerd/src/engine/history/table.cmd.ts +++ /dev/null @@ -1,128 +0,0 @@ -import { createJsonStringify } from '@/core/file'; -import { cloneDeep, getData } from '@/core/helper'; -import { loadJson$ } from '@/engine/command/editor.cmd.helper'; -import { createCommand } from '@/engine/command/helper'; -import { loadIndex, removeIndex } from '@/engine/command/index.cmd.helper'; -import { - loadRelationship, - removeRelationship, -} from '@/engine/command/relationship.cmd.helper'; -import { loadTable, removeTable } from '@/engine/command/table.cmd.helper'; -import { IStore } from '@/internal-types/store'; -import { BatchCommand } from '@@types/engine/command'; -import { - AddTable, - ChangeTableValue, - RemoveTable, -} from '@@types/engine/command/table.cmd'; -import { Relationship } from '@@types/engine/store/relationship.state'; -import { Index, PureTable } from '@@types/engine/store/table.state'; - -export function executeAddTable( - store: IStore, - batchUndoCommand: BatchCommand, - data: AddTable -) { - batchUndoCommand.push(removeTable(store, data.id)); -} - -export function executeRemoveTable( - { - tableState: { tables, indexes }, - relationshipState: { relationships }, - }: IStore, - batchUndoCommand: BatchCommand, - { tableIds }: RemoveTable -) { - const targetTables: PureTable[] = []; - const targetRelationships: Relationship[] = []; - const targetIndexes: Index[] = []; - - tableIds.forEach(tableId => { - const table = getData(tables, tableId); - if (!table) return; - - targetTables.push(cloneDeep(table)); - - relationships.forEach(relationship => { - const { start, end } = relationship; - - if (tableId === start.tableId || tableId === end.tableId) { - targetRelationships.push(cloneDeep(relationship)); - } - }); - - const tableIndexes = indexes.filter(index => index.tableId === table.id); - - tableIndexes.forEach(index => targetIndexes.push(cloneDeep(index))); - }); - - if (!targetTables.length) return; - - batchUndoCommand.push(...targetTables.map(table => loadTable(table))); - - if (targetRelationships.length) { - batchUndoCommand.push( - removeRelationship( - targetRelationships.map(relationship => relationship.id) - ), - ...targetRelationships.map(relationship => loadRelationship(relationship)) - ); - } - - if (targetIndexes.length) { - batchUndoCommand.push( - removeIndex(targetIndexes.map(index => index.id)), - ...targetIndexes.map(index => loadIndex(index)) - ); - } -} - -export function executeChangeTableName( - { tableState: { tables } }: IStore, - batchUndoCommand: BatchCommand, - data: ChangeTableValue -) { - const table = getData(tables, data.tableId); - if (!table) return; - - batchUndoCommand.push( - createCommand('table.changeName', { - tableId: table.id, - value: table.name, - width: table.ui.widthName, - }) - ); -} - -export function executeChangeTableComment( - { tableState: { tables } }: IStore, - batchUndoCommand: BatchCommand, - data: ChangeTableValue -) { - const table = getData(tables, data.tableId); - if (!table) return; - - batchUndoCommand.push( - createCommand('table.changeComment', { - tableId: table.id, - value: table.comment, - width: table.ui.widthComment, - }) - ); -} - -export function executeSortTable( - store: IStore, - batchUndoCommand: BatchCommand -) { - batchUndoCommand.push(loadJson$(createJsonStringify(store))); -} - -export const executeTableCommandMap = { - 'table.add': executeAddTable, - 'table.remove': executeRemoveTable, - 'table.changeName': executeChangeTableName, - 'table.changeComment': executeChangeTableComment, - 'table.sort': executeSortTable, -}; diff --git a/packages-legacy/vuerd/src/engine/hooks/index.ts b/packages-legacy/vuerd/src/engine/hooks/index.ts deleted file mode 100644 index 40b8bce2..00000000 --- a/packages-legacy/vuerd/src/engine/hooks/index.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Observable, Subscription } from 'rxjs'; - -import { Helper } from '@@types/core/helper'; -import { CommandTypeAll } from '@@types/engine/command'; -import { State } from '@@types/engine/store'; - -import { useRecalculatingTableWidth } from './recalculatingTableWidth.hook'; -import { useRelationshipSort } from './relationshipSort.hook'; -import { useResetZIndex } from './resetZIndex.hook'; - -export const useHooks = ( - hook$: Observable>, - state: State, - helper: Helper -): Subscription[] => [ - useRecalculatingTableWidth(hook$, state, helper), - useRelationshipSort(hook$, state, helper), - useResetZIndex(hook$, state, helper), -]; diff --git a/packages-legacy/vuerd/src/engine/hooks/recalculatingTableWidth.hook.ts b/packages-legacy/vuerd/src/engine/hooks/recalculatingTableWidth.hook.ts deleted file mode 100644 index 69959078..00000000 --- a/packages-legacy/vuerd/src/engine/hooks/recalculatingTableWidth.hook.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { Observable, Subscription } from 'rxjs'; -import { debounceTime } from 'rxjs/operators'; - -import { commandsFilter } from '@/core/operators/commandsFilter'; -import { relationshipSort } from '@/engine/store/helper/relationship.helper'; -import { recalculatingTableWidth } from '@/engine/store/helper/table.helper'; -import { Helper } from '@@types/core/helper'; -import { CommandKey, CommandTypeAll } from '@@types/engine/command'; -import { State } from '@@types/engine/store'; - -const hookKeys: CommandKey[] = ['editor.loadJson', 'editor.initLoadJson']; - -export const useRecalculatingTableWidth = ( - hook$: Observable>, - { tableState: { tables }, relationshipState: { relationships } }: State, - helper: Helper -): Subscription => - hook$.pipe(commandsFilter(hookKeys), debounceTime(1000)).subscribe(() => { - recalculatingTableWidth(tables, helper); - relationshipSort(tables, relationships); - }); diff --git a/packages-legacy/vuerd/src/engine/hooks/relationshipSort.hook.ts b/packages-legacy/vuerd/src/engine/hooks/relationshipSort.hook.ts deleted file mode 100644 index 021962f5..00000000 --- a/packages-legacy/vuerd/src/engine/hooks/relationshipSort.hook.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { Observable, Subscription } from 'rxjs'; - -import { commandsFilter } from '@/core/operators/commandsFilter'; -import { relationshipSort } from '@/engine/store/helper/relationship.helper'; -import { Helper } from '@@types/core/helper'; -import { CommandKey, CommandTypeAll } from '@@types/engine/command'; -import { State } from '@@types/engine/store'; - -const hookKeys: CommandKey[] = [ - 'canvas.changeShow', - 'relationship.add', - 'memo.move', - 'table.move', - 'table.changeName', - 'table.changeComment', - 'table.sort', - 'column.add', - 'column.addCustom', - 'column.remove', - 'column.changeName', - 'column.changeComment', - 'column.changeDataType', - 'column.changeDefault', - 'column.move', -]; - -export const useRelationshipSort = ( - hook$: Observable>, - { tableState: { tables }, relationshipState: { relationships } }: State, - helper: Helper -): Subscription => - hook$ - .pipe(commandsFilter(hookKeys)) - .subscribe(() => relationshipSort(tables, relationships)); diff --git a/packages-legacy/vuerd/src/engine/hooks/resetZIndex.hook.ts b/packages-legacy/vuerd/src/engine/hooks/resetZIndex.hook.ts deleted file mode 100644 index 6dfd73a3..00000000 --- a/packages-legacy/vuerd/src/engine/hooks/resetZIndex.hook.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Observable, Subscription } from 'rxjs'; -import { debounceTime } from 'rxjs/operators'; - -import { commandsFilter } from '@/core/operators/commandsFilter'; -import { Helper } from '@@types/core/helper'; -import { CommandKey, CommandTypeAll } from '@@types/engine/command'; -import { State } from '@@types/engine/store'; - -const hookKeys: CommandKey[] = ['editor.loadJson', 'editor.initLoadJson']; - -export const useResetZIndex = ( - hook$: Observable>, - { tableState: { tables }, memoState: { memos } }: State, - helper: Helper -): Subscription => - hook$.pipe(commandsFilter(hookKeys), debounceTime(1000)).subscribe(() => { - const uiList = [ - ...tables.map(table => table.ui), - ...memos.map(memo => memo.ui), - ]; - - uiList.sort((a, b) => a.zIndex - b.zIndex); - uiList.forEach((ui, index) => (ui.zIndex = index + 1)); - }); diff --git a/packages-legacy/vuerd/src/engine/store/canvas.state.ts b/packages-legacy/vuerd/src/engine/store/canvas.state.ts deleted file mode 100644 index 35d9f820..00000000 --- a/packages-legacy/vuerd/src/engine/store/canvas.state.ts +++ /dev/null @@ -1,118 +0,0 @@ -import { - BracketType, - CanvasState, - CanvasType, - ColumnType, - Database, - HighlightTheme, - Language, - NameCase, -} from '@@types/engine/store/canvas.state'; - -export const columnTypes: ColumnType[] = [ - 'columnUnique', - 'columnAutoIncrement', - 'columnName', - 'columnDataType', - 'columnNotNull', - 'columnDefault', - 'columnComment', -]; - -export const canvasTypeList: CanvasType[] = [ - 'ERD', - '@vuerd/builtin-sql-ddl', - '@vuerd/builtin-grid', - '@vuerd/builtin-generator-code', - '@vuerd/builtin-visualization', -]; - -export const databaseList: Database[] = [ - 'MariaDB', - 'MSSQL', - 'MySQL', - 'Oracle', - 'PostgreSQL', - 'SQLite', -]; - -export const languageList: Language[] = [ - 'GraphQL', - 'C#', - 'Java', - 'Kotlin', - 'TypeScript', - 'JPA', - 'Scala', -]; - -export const nameCaseList: NameCase[] = [ - 'none', - 'camelCase', - 'pascalCase', - 'snakeCase', -]; - -export const highlightThemes: HighlightTheme[] = [ - 'MonokaiSublime', - 'VS2015', - 'AtomOneDark', - 'AtomOneLight', - 'GithubGist', -]; - -export const bracketTypes: BracketType[] = [ - 'none', - 'doubleQuote', - 'singleQuote', - 'backtick', -]; - -export const bracketTypeMap: Record = { - none: '', - singleQuote: `'`, - doubleQuote: `"`, - backtick: '`', -}; - -export const createCanvasState = (): CanvasState => ({ - version: __APP_VERSION__, - width: 2000, - height: 2000, - scrollTop: 0, - scrollLeft: 0, - zoomLevel: 1, - show: { - tableComment: true, - columnComment: true, - columnDataType: true, - columnDefault: true, - columnAutoIncrement: false, - columnPrimaryKey: true, - columnUnique: false, - columnNotNull: true, - relationship: true, - }, - database: 'MySQL', - databaseName: '', - canvasType: 'ERD', - language: 'GraphQL', - tableCase: 'pascalCase', - columnCase: 'camelCase', - highlightTheme: 'VS2015', - bracketType: 'none', - setting: { - relationshipDataTypeSync: true, - relationshipOptimization: false, - columnOrder: [ - 'columnName', - 'columnDataType', - 'columnNotNull', - 'columnUnique', - 'columnAutoIncrement', - 'columnDefault', - 'columnComment', - ], - }, - pluginSerializationMap: {}, -}); diff --git a/packages-legacy/vuerd/src/engine/store/editor.state.ts b/packages-legacy/vuerd/src/engine/store/editor.state.ts deleted file mode 100644 index 3a154ea8..00000000 --- a/packages-legacy/vuerd/src/engine/store/editor.state.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { DEFAULT_HEIGHT, DEFAULT_WIDTH } from '@/core/layout'; -import { - EditorState, - MoveKey, - TableType, -} from '@@types/engine/store/editor.state'; - -import { createFilterState } from './editor/filter.state'; - -export const createEditorState = (): EditorState => ({ - panels: [], - excludePanel: [], - hasUndo: false, - hasRedo: false, - focusTable: null, - drawRelationship: null, - draggableColumn: null, - viewport: { - width: DEFAULT_WIDTH, - height: DEFAULT_HEIGHT, - }, - copyColumns: [], - findActive: false, - readonly: false, - filterState: createFilterState(), - erdUiEventNone: false, -}); - -export const moveKeys: MoveKey[] = [ - 'ArrowDown', - 'ArrowLeft', - 'ArrowRight', - 'ArrowUp', - 'Tab', -]; - -export const tableTypes: TableType[] = ['tableName', 'tableComment']; diff --git a/packages-legacy/vuerd/src/engine/store/editor/filter.state.ts b/packages-legacy/vuerd/src/engine/store/editor/filter.state.ts deleted file mode 100644 index be6b105e..00000000 --- a/packages-legacy/vuerd/src/engine/store/editor/filter.state.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { - ColumnType, - FilterState, - FocusFilterType, - OperatorType, - TextFilterCode, -} from '@@types/engine/store/editor/filter.state'; - -export const createFilterState = (): FilterState => ({ - active: false, - operatorType: 'OR', - filters: [], - focus: null, - draggable: null, -}); - -export const operatorTypes: OperatorType[] = ['AND', 'OR']; - -export const textFilterCodeList: TextFilterCode[] = [ - 'eq', - 'ne', - 'contain', - 'start', - 'end', -]; - -export const columnTypes: ColumnType[] = [ - 'tableName', - 'tableComment', - 'option', - 'name', - 'dataType', - 'default', - 'comment', -]; - -export const focusFilterTypes: FocusFilterType[] = [ - 'columnType', - 'filterCode', - 'value', -]; diff --git a/packages-legacy/vuerd/src/engine/store/helper/canvas.helper.ts b/packages-legacy/vuerd/src/engine/store/helper/canvas.helper.ts deleted file mode 100644 index 3b996225..00000000 --- a/packages-legacy/vuerd/src/engine/store/helper/canvas.helper.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { createBalanceRange, isString } from '@/core/helper'; -import { - SIZE_CANVAS_MAX, - SIZE_CANVAS_MIN, - SIZE_CANVAS_ZOOM_MAX, - SIZE_CANVAS_ZOOM_MIN, -} from '@/core/layout'; - -export const canvasSizeBalanceRange = createBalanceRange( - SIZE_CANVAS_MIN, - SIZE_CANVAS_MAX -); - -export const zoomBalanceRange = createBalanceRange( - SIZE_CANVAS_ZOOM_MIN, - SIZE_CANVAS_ZOOM_MAX -); - -export const canvasSizeRange = (size: number | string) => - canvasSizeBalanceRange( - (isString(size) - ? Number((size as string).replace(/[^0-9]/g, '')) - : size) as number - ); - -export const zoomLevelRange = (zoomLevel: number | string) => - zoomBalanceRange( - (isString(zoomLevel) - ? Number((zoomLevel as string).replace(/[^0-9]/g, '')) - : zoomLevel) as number - ); - -export const zoomDisplayFormat = (zoomLevel: number) => - `${(zoomLevel * 100).toFixed()}%`; diff --git a/packages-legacy/vuerd/src/engine/store/helper/column.helper.ts b/packages-legacy/vuerd/src/engine/store/helper/column.helper.ts deleted file mode 100644 index 36c23485..00000000 --- a/packages-legacy/vuerd/src/engine/store/helper/column.helper.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { createBalanceRange, getData, getIndex } from '@/core/helper'; -import { SIZE_MAX_WIDTH_COMMENT, SIZE_MIN_WIDTH } from '@/core/layout'; -import { Relationship } from '@@types/engine/store/relationship.state'; -import { Column, Table } from '@@types/engine/store/table.state'; - -export function getColumn( - tables: Table[], - tableId: string, - columnId: string -): Column | null | undefined { - const table = getData(tables, tableId); - return table ? getData(table.columns, columnId) : null; -} - -export function getDataTypeSyncColumns( - stack: Column[], - tables: Table[], - relationships: Relationship[], - targetColumns: Column[] = [] -): Column[] { - const target = stack.pop(); - - if (target) { - if (getIndex(targetColumns, target.id) === -1) { - targetColumns.push(target); - relationships.forEach(relationship => { - const { start, end } = relationship; - const index = start.columnIds.indexOf(target.id); - - if (index !== -1) { - const columnId = end.columnIds[index]; - const column = getColumn(tables, end.tableId, columnId); - - column && stack.push(column); - } else { - const index = end.columnIds.indexOf(target.id); - - if (index !== -1) { - const columnId = start.columnIds[index]; - const column = getColumn(tables, start.tableId, columnId); - - column && stack.push(column); - } - } - }); - } - - getDataTypeSyncColumns(stack, tables, relationships, targetColumns); - } - - return targetColumns; -} - -export function getChangeOption( - tables: Table[], - tableId: string, - columnId: string, - columnOptionKey: 'autoIncrement' | 'primaryKey' | 'unique' | 'notNull' -): boolean { - const column = getColumn(tables, tableId, columnId); - return column ? !column.option[columnOptionKey] : false; -} - -export function getColumns(table: Table, columnIds: string[]): Column[] { - const columns: Column[] = []; - columnIds.forEach(columnId => { - const column = getData(table.columns, columnId); - if (!column) return; - - columns.push(column); - }); - return columns; -} - -export const commentWidthBalanceRange = createBalanceRange( - SIZE_MIN_WIDTH, - SIZE_MAX_WIDTH_COMMENT -); - -export const widthBalanceRange = createBalanceRange(SIZE_MIN_WIDTH, 10000); diff --git a/packages-legacy/vuerd/src/engine/store/helper/editor.helper.ts b/packages-legacy/vuerd/src/engine/store/helper/editor.helper.ts deleted file mode 100644 index 07dc61d7..00000000 --- a/packages-legacy/vuerd/src/engine/store/helper/editor.helper.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { - DraggableColumn, - FocusTable, - FocusType, -} from '@@types/engine/store/editor.state'; - -export function isFocus( - focusTable: FocusTable | null, - focusType: FocusType, - tableId: string, - columnId: string | null = null -): boolean { - if (!focusTable || tableId !== focusTable.table.id) return false; - - switch (focusType) { - case 'tableName': - case 'tableComment': - return focusType === focusTable.focusType; - } - - return columnId === focusTable.columnId && focusType === focusTable.focusType; -} - -export const isSelectColumn = ( - focusTable: FocusTable | null, - tableId: string, - columnId: string -) => - focusTable?.table.id === tableId && - focusTable.selectColumnIds.includes(columnId); - -export function isEdit( - focusTable: FocusTable | null, - focusType: FocusType, - tableId: string, - columnId: string | null = null -) { - if (!focusTable || tableId !== focusTable.table.id) return false; - - switch (focusType) { - case 'tableName': - case 'tableComment': - return focusType === focusTable.focusType && focusTable.edit; - } - - return ( - columnId === focusTable.columnId && - focusType === focusTable.focusType && - focusTable.edit - ); -} - -export const isDraggableColumn = ( - draggableColumn: DraggableColumn | null, - tableId: string, - columnId: string -) => - draggableColumn?.tableId === tableId && - draggableColumn.columnIds.includes(columnId); diff --git a/packages-legacy/vuerd/src/engine/store/helper/editor/filter.helper.ts b/packages-legacy/vuerd/src/engine/store/helper/editor/filter.helper.ts deleted file mode 100644 index 5bc59008..00000000 --- a/packages-legacy/vuerd/src/engine/store/helper/editor/filter.helper.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { - Draggable, - Focus, - FocusType, -} from '@@types/engine/store/editor/filter.state'; - -export function isFocus( - focus: Focus | null, - focusType: FocusType, - filterId: string | null = null -): boolean { - if (!focus) return false; - - switch (focusType) { - case 'operatorType': - return focusType === focus.focusType; - } - - return filterId === focus.filterId && focusType === focus.focusType; -} - -export function isEdit( - focus: Focus | null, - focusType: FocusType, - filterId: string | null = null -) { - if (!focus) return false; - - switch (focusType) { - case 'operatorType': - return focusType === focus.focusType && focus.edit; - } - - return ( - filterId === focus.filterId && focusType === focus.focusType && focus.edit - ); -} - -export const isSelectFilter = (focus: Focus | null, filterId: string) => - focus?.selectFilterIds.includes(filterId); - -export const isDraggableFilter = ( - draggable: Draggable | null, - filterId: string -) => draggable?.filterIds.includes(filterId); diff --git a/packages-legacy/vuerd/src/engine/store/helper/index.ts b/packages-legacy/vuerd/src/engine/store/helper/index.ts deleted file mode 100644 index 111fb5ac..00000000 --- a/packages-legacy/vuerd/src/engine/store/helper/index.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { SIZE_START_ADD, SIZE_START_X, SIZE_START_Y } from '@/core/layout'; -import { Store } from '@@types/engine/store'; -import { Memo, MemoUI } from '@@types/engine/store/memo.state'; -import { Point } from '@@types/engine/store/relationship.state'; -import { Table, TableUI } from '@@types/engine/store/table.state'; - -const zIndexMap = (data: Table | Memo) => data.ui.zIndex; - -export const nextZIndex = (tables: Table[], memos: Memo[]) => - Math.max(1, ...tables.map(zIndexMap), ...memos.map(zIndexMap)) + 1; - -const isDuplicatePosition = (ui: TableUI | MemoUI, point: Point) => - ui.top === point.y && ui.left === point.x; - -export function nextPoint({ - canvasState: { scrollLeft, scrollTop }, - tableState: { tables }, - memoState: { memos }, -}: Store): Point { - const point: Point = { - x: SIZE_START_X - scrollLeft, - y: SIZE_START_Y - scrollTop, - }; - - let isPosition = false; - do { - isPosition = false; - - for (const table of tables) { - if (isDuplicatePosition(table.ui, point)) { - point.x += SIZE_START_ADD; - point.y += SIZE_START_ADD; - isPosition = true; - break; - } - } - - for (const memo of memos) { - if (isDuplicatePosition(memo.ui, point)) { - point.x += SIZE_START_ADD; - point.y += SIZE_START_ADD; - isPosition = true; - break; - } - } - } while (isPosition); - - return point; -} diff --git a/packages-legacy/vuerd/src/engine/store/helper/relationship.helper.ts b/packages-legacy/vuerd/src/engine/store/helper/relationship.helper.ts deleted file mode 100644 index 01000360..00000000 --- a/packages-legacy/vuerd/src/engine/store/helper/relationship.helper.ts +++ /dev/null @@ -1,939 +0,0 @@ -import { getData } from '@/core/helper'; -import { SIZE_TABLE_BORDER, SIZE_TABLE_PADDING } from '@/core/layout'; -import { DrawRelationship } from '@@types/engine/store/editor.state'; -import { - Direction, - Point, - Relationship, - RelationshipPoint, -} from '@@types/engine/store/relationship.state'; -import { Table } from '@@types/engine/store/table.state'; - -const TABLE_PADDING = (SIZE_TABLE_PADDING + SIZE_TABLE_BORDER) * 2; -const PATH_HEIGHT = 30; -const PATH_END_HEIGHT = PATH_HEIGHT + 20; -const PATH_LINE_HEIGHT = 35; -const LINE_SIZE = 10; -const LINE_HEIGHT = 16; -const CIRCLE_HEIGHT = 26; -const directions: Direction[] = ['top', 'bottom', 'left', 'right']; - -interface PointToPoint { - x1: number; - y1: number; - x2: number; - y2: number; -} - -interface Circle { - cx: number; - cy: number; -} - -export interface Coordinate { - width: number; - height: number; - top: Point; - bottom: Point; - left: Point; - right: Point; - lt: Point; - rt: Point; - lb: Point; - rb: Point; -} - -export type PathPoint = { - M: Point; - L: Point; - Q: Point; - d(): Array<[Point, Point]>; -}; - -interface Path { - M: Point; - L: Point; - Q: Point; - - d(): string; -} - -interface PathLine { - start: PointToPoint; - end: PointToPoint; -} - -interface Line { - start: { - base: PointToPoint; - base2: PointToPoint; - center: PointToPoint; - center2: PointToPoint; - }; - end: { - base: PointToPoint; - base2: PointToPoint; - left: PointToPoint; - center: PointToPoint; - center2: PointToPoint; - right: PointToPoint; - }; -} - -export interface RelationshipPath { - path: { path: PathPoint; line: PathLine }; - line: { line: Line; circle: Circle; startCircle: Circle }; -} - -interface DrawPathLine { - start: PointToPoint; -} - -interface DrawLine { - start: { - base: PointToPoint; - base2: PointToPoint; - center: PointToPoint; - center2: PointToPoint; - }; -} - -export interface DrawPath { - path: { path: Path; line: DrawPathLine }; - line: DrawLine; -} - -interface RelationshipGraph { - table: Table; - coordinate: Coordinate; - top: Relationship[]; - bottom: Relationship[]; - left: Relationship[]; - right: Relationship[]; -} - -interface RelationshipOrder { - start: RelationshipPoint; - end: RelationshipPoint; - distance: number; -} - -interface RelationshipMarginPoint { - xArray: number[]; - yArray: number[]; -} - -export function getCoordinate(table: Table): Coordinate { - const width = table.width() + TABLE_PADDING; - const height = table.height() + TABLE_PADDING; - const ui = table.ui; - return { - width, - height, - top: { - x: ui.left + width / 2, - y: ui.top, - }, - bottom: { - x: ui.left + width / 2, - y: ui.top + height, - }, - left: { - x: ui.left, - y: ui.top + height / 2, - }, - right: { - x: ui.left + width, - y: ui.top + height / 2, - }, - lt: { - x: ui.left, - y: ui.top, - }, - rt: { - x: ui.left + width, - y: ui.top, - }, - lb: { - x: ui.left, - y: ui.top + height, - }, - rb: { - x: ui.left + width, - y: ui.top + height, - }, - }; -} - -const getDistance = (a: Point, b: Point) => - Math.sqrt(Math.pow(a.x - b.x, 2) + Math.pow(a.y - b.y, 2)); - -const directionFilter = (key: string) => directions.includes(key as any); - -function getDrawDirection(draw: DrawRelationship): Direction { - let direction: Direction = 'bottom'; - if (!draw.start) return direction; - - const start = getCoordinate(draw.start.table); - let min = getDistance(start.bottom, draw.end); - draw.start.x = start.bottom.x; - draw.start.y = start.bottom.y; - - Object.keys(start) - .filter(directionFilter) - .forEach(key => { - const k = key as Direction; - const temp = getDistance(start[k], draw.end); - if (min <= temp) return; - - min = temp; - direction = k; - if (!draw.start) return; - - draw.start.x = start[k].x; - draw.start.y = start[k].y; - }); - - return direction; -} - -function getDrawPath( - direction: Direction, - draw: DrawRelationship -): { path: Path; line: DrawPathLine } { - const line: DrawPathLine = { - start: { - x1: 0, - y1: 0, - x2: 0, - y2: 0, - }, - }; - const path: Path = { - M: { x: 0, y: 0 }, - L: { x: 0, y: 0 }, - Q: { x: 0, y: 0 }, - d(): string { - return `M ${this.M.x} ${this.M.y} L ${this.L.x} ${this.L.y}`; - }, - }; - - if (draw.start) { - line.start.x1 = draw.start.x; - line.start.y1 = draw.start.y; - line.start.x2 = draw.start.x; - line.start.y2 = draw.start.y; - - let change = 1; - if (direction === 'left' || direction === 'right') { - if (direction === 'left') { - change *= -1; - } - line.start.x2 = draw.start.x + change * PATH_END_HEIGHT; - line.start.x1 += change * PATH_LINE_HEIGHT; - path.M.x = line.start.x2; - path.M.y = draw.start.y; - } else if (direction === 'top' || direction === 'bottom') { - if (direction === 'top') { - change *= -1; - } - line.start.y2 = draw.start.y + change * PATH_END_HEIGHT; - line.start.y1 += change * PATH_LINE_HEIGHT; - path.M.x = draw.start.x; - path.M.y = line.start.y2; - } - } - path.L.x = draw.end.x; - path.L.y = draw.end.y; - - return { - path, - line, - }; -} - -function getDrawLine(direction: Direction, draw: DrawRelationship): DrawLine { - const line: DrawLine = { - start: { - base: { - x1: 0, - y1: 0, - x2: 0, - y2: 0, - }, - base2: { - x1: 0, - y1: 0, - x2: 0, - y2: 0, - }, - center: { - x1: 0, - y1: 0, - x2: 0, - y2: 0, - }, - center2: { - x1: 0, - y1: 0, - x2: 0, - y2: 0, - }, - }, - }; - if (!draw.start) return line; - - line.start.base.x1 = - line.start.base2.x1 = - line.start.center.x1 = - line.start.center2.x1 = - draw.start.x; - line.start.base.x2 = - line.start.base2.x2 = - line.start.center.x2 = - line.start.center2.x2 = - draw.start.x; - line.start.base.y1 = - line.start.base2.y1 = - line.start.center.y1 = - line.start.center2.y1 = - draw.start.y; - line.start.base.y2 = - line.start.base2.y2 = - line.start.center.y2 = - line.start.center2.y2 = - draw.start.y; - - let change = 1; - if (direction === 'left' || direction === 'right') { - if (direction === 'left') { - change *= -1; - } - line.start.base.x1 = line.start.base.x2 += change * LINE_HEIGHT; - line.start.base2.x1 = line.start.base2.x2 += - change * (LINE_SIZE + LINE_HEIGHT); - line.start.center.x1 = line.start.base.x1; - line.start.base.y1 -= LINE_SIZE; - line.start.base.y2 += LINE_SIZE; - line.start.base2.y1 -= LINE_SIZE; - line.start.base2.y2 += LINE_SIZE; - line.start.center2.x1 += change * (LINE_HEIGHT + LINE_HEIGHT + 3); - } else if (direction === 'top' || direction === 'bottom') { - if (direction === 'top') { - change *= -1; - } - line.start.base.y1 = line.start.base.y2 += change * LINE_HEIGHT; - line.start.base2.y1 = line.start.base2.y2 += - change * (LINE_SIZE + LINE_HEIGHT); - line.start.center.y1 = line.start.base.y1; - line.start.base.x1 -= LINE_SIZE; - line.start.base.x2 += LINE_SIZE; - line.start.base2.x1 -= LINE_SIZE; - line.start.base2.x2 += LINE_SIZE; - line.start.center2.y1 += change * (LINE_HEIGHT + LINE_HEIGHT + 3); - } - - return line; -} - -export function getDraw(draw: DrawRelationship): DrawPath { - const drawPath: DrawPath = { - path: { - path: { - M: { x: 0, y: 0 }, - L: { x: 0, y: 0 }, - Q: { x: 0, y: 0 }, - d(): string { - return `M ${this.M.x} ${this.M.y} L ${this.L.x} ${this.L.y}`; - }, - }, - line: { - start: { - x1: 0, - y1: 0, - x2: 0, - y2: 0, - }, - }, - }, - line: { - start: { - base: { - x1: 0, - y1: 0, - x2: 0, - y2: 0, - }, - base2: { - x1: 0, - y1: 0, - x2: 0, - y2: 0, - }, - center: { - x1: 0, - y1: 0, - x2: 0, - y2: 0, - }, - center2: { - x1: 0, - y1: 0, - x2: 0, - y2: 0, - }, - }, - }, - }; - if (!draw.start) return drawPath; - - const direction = getDrawDirection(draw); - drawPath.path = getDrawPath(direction, draw); - drawPath.line = getDrawLine(direction, draw); - - return drawPath; -} - -const getRelationshipGraph = (graphs: RelationshipGraph[], table: Table) => - graphs.find(graph => graph.table.id === table.id); - -function getDirection( - start: Coordinate, - end: Coordinate, - relationship: Relationship -): { start: Direction; end: Direction } { - const direction: { start: Direction; end: Direction } = { - start: 'bottom', - end: 'bottom', - }; - let min = getDistance(start.bottom, end.bottom); - relationship.start.x = start.bottom.x; - relationship.start.y = start.bottom.y; - relationship.end.x = end.bottom.x; - relationship.end.y = end.bottom.y; - - Object.keys(start) - .filter(directionFilter) - .forEach(key => { - Object.keys(end) - .filter(directionFilter) - .forEach(key2 => { - const k = key as Direction; - const k2 = key2 as Direction; - const temp = getDistance(start[k], end[k2]); - if (min <= temp) return; - - min = temp; - direction.start = k; - direction.end = k2; - relationship.start.x = start[k].x; - relationship.start.y = start[k].y; - relationship.end.x = end[k2].x; - relationship.end.y = end[k2].y; - }); - }); - return direction; -} - -function relationshipOverlayPoint( - direction: Direction, - graph: RelationshipGraph -): RelationshipMarginPoint { - const len = graph[direction].length; - const margin = { - x: graph.coordinate.width / len, - y: graph.coordinate.height / len, - }; - const padding = { - x: margin.x / 2, - y: margin.y / 2, - }; - const xArray: number[] = []; - const yArray: number[] = []; - - if (direction === 'left' || direction === 'right') { - let sum = graph.coordinate.lt.y - padding.y; - for (let i = 0; i < len; i++) { - sum += margin.y; - yArray.push(sum); - } - } else if (direction === 'top' || direction === 'bottom') { - let sum = graph.coordinate.lt.x - padding.x; - for (let i = 0; i < len; i++) { - sum += margin.x; - xArray.push(sum); - } - } - return { - xArray, - yArray, - }; -} - -const sortDistance = (a: RelationshipOrder, b: RelationshipOrder) => - a.distance - b.distance; - -function relationshipOverlayOrder( - direction: Direction, - table: Table, - relationships: Relationship[] -): RelationshipOrder[] { - const startPoints: RelationshipPoint[] = []; - const endPoints: RelationshipPoint[] = []; - const isX = direction === 'top' || direction === 'bottom'; - - relationships.forEach(relationship => { - if (relationship.start.tableId === relationship.end.tableId) { - // self relationship - if (direction === 'top') { - startPoints.push(relationship.start); - endPoints.push(relationship.end); - } else if (direction === 'right') { - startPoints.push(relationship.end); - endPoints.push(relationship.start); - } - } else if (relationship.start.tableId === table.id) { - startPoints.push(relationship.start); - endPoints.push(relationship.end); - } else { - startPoints.push(relationship.end); - endPoints.push(relationship.start); - } - }); - - const distances: RelationshipOrder[] = []; - endPoints.forEach((endPoint, index) => { - distances.push({ - start: startPoints[index], - end: endPoints[index], - distance: isX ? endPoint.x : endPoint.y, - }); - }); - - return distances.sort(sortDistance); -} - -function relationshipOverlayFirstCheck( - direction: Direction, - order: RelationshipOrder, - point: RelationshipMarginPoint -): boolean { - let result = true; - if (direction === 'left' || direction === 'right') { - result = - getDistance({ x: order.start.x, y: point.yArray[0] }, order.end) < - getDistance( - { x: order.start.x, y: point.yArray[point.yArray.length - 1] }, - order.end - ); - } else if (direction === 'top' || direction === 'bottom') { - result = - getDistance({ x: point.xArray[0], y: order.start.y }, order.end) < - getDistance( - { x: point.xArray[point.xArray.length - 1], y: order.start.y }, - order.end - ); - } - return result; -} - -function relationshipOverlaySort( - direction: Direction, - graph: RelationshipGraph -) { - const point = relationshipOverlayPoint(direction, graph); - let distances = relationshipOverlayOrder( - direction, - graph.table, - graph[direction] - ); - - if (direction === 'left' || direction === 'right') { - point.yArray.forEach((y, index) => { - distances[index].start.y = y; - }); - } else if (direction === 'top' || direction === 'bottom') { - point.xArray.forEach((x, index) => { - distances[index].start.x = x; - }); - } -} - -export function relationshipSort( - tables: Table[], - relationships: Relationship[] -) { - const graphs: RelationshipGraph[] = []; - - relationships.forEach(relationship => { - if (!relationship.visible) return; - - const tableStart = getData(tables, relationship.start.tableId); - const tableEnd = getData(tables, relationship.end.tableId); - - if (tableStart && tableEnd) { - if (relationship.start.tableId === relationship.end.tableId) { - relationship.start.direction = 'top'; - relationship.end.direction = 'right'; - const graph = getRelationshipGraph(graphs, tableStart); - - if (graph) { - relationship.start.x = graph.coordinate.rt.x - 20; - relationship.start.y = graph.coordinate.rt.y; - relationship.end.x = graph.coordinate.rt.x; - relationship.end.y = graph.coordinate.rt.y + 20; - graph.top.push(relationship); - graph.right.push(relationship); - } else { - const coordinate = getCoordinate(tableStart); - relationship.start.x = coordinate.rt.x - 20; - relationship.start.y = coordinate.rt.y; - relationship.end.x = coordinate.rt.x; - relationship.end.y = coordinate.rt.y + 20; - graphs.push({ - table: tableStart, - coordinate, - top: [relationship], - bottom: [], - left: [], - right: [relationship], - }); - } - } else { - const coordinateStart = getCoordinate(tableStart); - const coordinateEnd = getCoordinate(tableEnd); - const direction = getDirection( - coordinateStart, - coordinateEnd, - relationship - ); - const graphStart = getRelationshipGraph(graphs, tableStart); - const graphEnd = getRelationshipGraph(graphs, tableEnd); - relationship.start.direction = direction.start; - relationship.end.direction = direction.end; - - if (graphStart) { - graphStart[direction.start].push(relationship); - } else { - const graph: RelationshipGraph = { - table: tableStart, - coordinate: coordinateStart, - top: [], - bottom: [], - left: [], - right: [], - }; - graph[direction.start].push(relationship); - graphs.push(graph); - } - if (graphEnd) { - graphEnd[direction.end].push(relationship); - } else { - const graph: RelationshipGraph = { - table: tableEnd, - coordinate: coordinateEnd, - top: [], - bottom: [], - left: [], - right: [], - }; - graph[direction.end].push(relationship); - graphs.push(graph); - } - } - } - }); - - graphs.forEach(graph => { - directions.forEach(value => { - const direction = value as Direction; - const len = graph[direction].length; - if (len < 2) return; - - relationshipOverlaySort(direction, graph); - }); - }); -} - -function getPath( - start: RelationshipPoint, - end: RelationshipPoint -): { path: PathPoint; line: PathLine } { - const line: PathLine = { - start: { - x1: start.x, - y1: start.y, - x2: start.x, - y2: start.y, - }, - end: { - x1: end.x, - y1: end.y, - x2: end.x, - y2: end.y, - }, - }; - const path: PathPoint = { - M: { x: 0, y: 0 }, - L: { x: 0, y: 0 }, - Q: { x: 0, y: 0 }, - d() { - const distanceX = this.M.x - this.L.x; - const distanceY = this.M.y - this.L.y; - const distanceHalfX = distanceX / 2; - const distanceHalfY = distanceY / 2; - const isAxisX = Math.abs(distanceY) <= Math.abs(distanceX); - const subDistance = isAxisX - ? Math.abs(distanceHalfY) - : Math.abs(distanceHalfX); - - const add = createAdd(subDistance); - const addLeft = add(true); - const addRight = add(false); - - const addX1 = addLeft(distanceX); - const addY1 = addLeft(distanceY); - const addX2 = addRight(distanceX); - const addY2 = addRight(distanceY); - - const x1 = isAxisX ? this.M.x - distanceHalfX + addX1 : this.M.x; - const y1 = isAxisX ? this.M.y : this.M.y - distanceHalfY + addY1; - const x2 = isAxisX ? this.L.x + distanceHalfX + addX2 : this.L.x; - const y2 = isAxisX ? this.L.y : this.L.y + distanceHalfY + addY2; - - return [ - [ - { x: this.M.x, y: this.M.y }, - { x: x1, y: y1 }, - ], - [ - { x: x1, y: y1 }, - { x: x2, y: y2 }, - ], - [ - { x: x2, y: y2 }, - { x: this.L.x, y: this.L.y }, - ], - ]; - }, - }; - - let change = 1; - if (start.direction === 'left' || start.direction === 'right') { - if (start.direction === 'left') { - change *= -1; - } - line.start.x2 = start.x + change * PATH_END_HEIGHT; - line.start.x1 += change * PATH_LINE_HEIGHT; - path.M.x = line.start.x2; - path.M.y = start.y; - } else if (start.direction === 'top' || start.direction === 'bottom') { - if (start.direction === 'top') { - change *= -1; - } - line.start.y2 = start.y + change * PATH_END_HEIGHT; - line.start.y1 += change * PATH_LINE_HEIGHT; - path.M.x = start.x; - path.M.y = line.start.y2; - } - - change = 1; - if (end.direction === 'left' || end.direction === 'right') { - if (end.direction === 'left') { - change *= -1; - } - line.end.x2 = end.x + change * PATH_END_HEIGHT; - line.end.x1 += change * PATH_LINE_HEIGHT; - path.L.x = line.end.x2; - path.L.y = end.y; - } else if (end.direction === 'top' || end.direction === 'bottom') { - if (end.direction === 'top') { - change *= -1; - } - line.end.y2 = end.y + change * PATH_END_HEIGHT; - line.end.y1 += change * PATH_LINE_HEIGHT; - path.L.x = end.x; - path.L.y = line.end.y2; - } - - return { - line, - path, - }; -} - -function getLine( - start: RelationshipPoint, - end: RelationshipPoint -): { line: Line; circle: Circle; startCircle: Circle } { - const line: Line = { - start: { - base: { - x1: start.x, - y1: start.y, - x2: start.x, - y2: start.y, - }, - base2: { - x1: start.x, - y1: start.y, - x2: start.x, - y2: start.y, - }, - center: { - x1: start.x, - y1: start.y, - x2: start.x, - y2: start.y, - }, - center2: { - x1: start.x, - y1: start.y, - x2: start.x, - y2: start.y, - }, - }, - end: { - base: { - x1: end.x, - y1: end.y, - x2: end.x, - y2: end.y, - }, - base2: { - x1: end.x, - y1: end.y, - x2: end.x, - y2: end.y, - }, - left: { - x1: end.x, - y1: end.y, - x2: end.x, - y2: end.y, - }, - center: { - x1: end.x, - y1: end.y, - x2: end.x, - y2: end.y, - }, - center2: { - x1: end.x, - y1: end.y, - x2: end.x, - y2: end.y, - }, - right: { - x1: end.x, - y1: end.y, - x2: end.x, - y2: end.y, - }, - }, - }; - const circle = { - cx: end.x, - cy: end.y, - }; - const startCircle = { - cx: start.x, - cy: start.y, - }; - - let change = 1; - if (start.direction === 'left' || start.direction === 'right') { - if (start.direction === 'left') { - change *= -1; - } - line.start.base.x1 = line.start.base.x2 += change * LINE_HEIGHT; - line.start.base2.x1 = line.start.base2.x2 += - change * (LINE_SIZE + LINE_HEIGHT); - line.start.center.x1 = line.start.base.x1; - line.start.base.y1 -= LINE_SIZE; - line.start.base.y2 += LINE_SIZE; - line.start.base2.y1 -= LINE_SIZE; - line.start.base2.y2 += LINE_SIZE; - line.start.center2.x1 += change * (LINE_HEIGHT + LINE_HEIGHT + 3); - - startCircle.cx += change * CIRCLE_HEIGHT; - } else if (start.direction === 'top' || start.direction === 'bottom') { - if (start.direction === 'top') { - change *= -1; - } - line.start.base.y1 = line.start.base.y2 += change * LINE_HEIGHT; - line.start.base2.y1 = line.start.base2.y2 += - change * (LINE_SIZE + LINE_HEIGHT); - line.start.center.y1 = line.start.base.y1; - line.start.base.x1 -= LINE_SIZE; - line.start.base.x2 += LINE_SIZE; - line.start.base2.x1 -= LINE_SIZE; - line.start.base2.x2 += LINE_SIZE; - line.start.center2.y1 += change * (LINE_HEIGHT + LINE_HEIGHT + 3); - - startCircle.cy += change * CIRCLE_HEIGHT; - } - - change = 1; - if (end.direction === 'left' || end.direction === 'right') { - if (end.direction === 'left') { - change *= -1; - } - line.end.base.x1 = line.end.base.x2 += change * LINE_HEIGHT; - line.end.base2.x1 = line.end.base2.x2 += change * (LINE_SIZE + LINE_HEIGHT); - line.end.center.x1 = - line.end.left.x1 = - line.end.right.x1 = - line.end.base.x1; - line.end.base.y1 -= LINE_SIZE; - line.end.base.y2 += LINE_SIZE; - line.end.base2.y1 -= LINE_SIZE; - line.end.base2.y2 += LINE_SIZE; - line.end.left.y2 += LINE_SIZE; - line.end.right.y2 -= LINE_SIZE; - line.end.center2.x1 += change * (LINE_HEIGHT + LINE_HEIGHT + 3); - - circle.cx += change * CIRCLE_HEIGHT; - } else if (end.direction === 'top' || end.direction === 'bottom') { - if (end.direction === 'top') { - change *= -1; - } - line.end.base.y1 = line.end.base.y2 += change * LINE_HEIGHT; - line.end.base2.y1 = line.end.base2.y2 += change * (LINE_SIZE + LINE_HEIGHT); - line.end.center.y1 = - line.end.left.y1 = - line.end.right.y1 = - line.end.base.y1; - line.end.base.x1 -= LINE_SIZE; - line.end.base.x2 += LINE_SIZE; - line.end.base2.x1 -= LINE_SIZE; - line.end.base2.x2 += LINE_SIZE; - line.end.left.x2 += LINE_SIZE; - line.end.right.x2 -= LINE_SIZE; - line.end.center2.y1 += change * (LINE_HEIGHT + LINE_HEIGHT + 3); - - circle.cy += change * CIRCLE_HEIGHT; - } - - return { - line, - circle, - startCircle, - }; -} - -export function getRelationshipPath( - relationship: Relationship -): RelationshipPath { - return { - path: getPath(relationship.start, relationship.end), - line: getLine(relationship.start, relationship.end), - }; -} - -function createAdd(value: number) { - return (leftNegativeMul: boolean) => (distance: number) => - distance < 0 - ? (leftNegativeMul ? -1 : 1) * value - : (leftNegativeMul ? 1 : -1) * value; -} diff --git a/packages-legacy/vuerd/src/engine/store/helper/table.helper.ts b/packages-legacy/vuerd/src/engine/store/helper/table.helper.ts deleted file mode 100644 index 6d40bb1a..00000000 --- a/packages-legacy/vuerd/src/engine/store/helper/table.helper.ts +++ /dev/null @@ -1,121 +0,0 @@ -import { getIndex } from '@/core/helper'; -import { getCoordinate } from '@/engine/store/helper/relationship.helper'; -import { Helper } from '@@types/core/helper'; -import { Relationship } from '@@types/engine/store/relationship.state'; -import { Table } from '@@types/engine/store/table.state'; - -import { commentWidthBalanceRange, widthBalanceRange } from './column.helper'; - -export function virtualTable( - current: { - minX: number; - minY: number; - maxX: number; - maxY: number; - }, - table: Table -): boolean { - const { minX, minY, maxX, maxY } = current; - const coordinate = getCoordinate(table); - return ( - (minX < coordinate.lt.x && - coordinate.lt.x < maxX && - minY < coordinate.lt.y && - coordinate.lt.y < maxY) || - (minX < coordinate.lb.x && - coordinate.lb.x < maxX && - minY < coordinate.lb.y && - coordinate.lb.y < maxY) || - (minX < coordinate.rt.x && - coordinate.rt.x < maxX && - minY < coordinate.rt.y && - coordinate.rt.y < maxY) || - (minX < coordinate.rb.x && - coordinate.rb.x < maxX && - minY < coordinate.rb.y && - coordinate.rb.y < maxY) - ); -} - -export function orderByNameASC(tables: Table[]): Table[] { - return [...tables].sort((a, b) => { - const nameA = a.name.toLowerCase(); - const nameB = b.name.toLowerCase(); - if (nameA < nameB) { - return -1; - } else if (nameA > nameB) { - return 1; - } - return 0; - }); -} - -export function orderByRelationship( - tables: Table[], - relationships: Relationship[] -): Table[] { - const firstTables: Table[] = []; - const reshapeTables: Table[] = []; - const sortTables: Table[] = []; - tables.forEach(table => { - const endRelationships = relationships - .filter(relationship => relationship.end.tableId === table.id) - .map(relationship => relationship.start.tableId); - if (endRelationships.length === 0) { - firstTables.push(table); - } else { - reshapeTables.push(table); - sortTables.push(table); - } - }); - - reshapeTables.forEach(table => { - const firstIndex = firstTableIndex( - sortTables, - relationships - .filter(relationship => relationship.start.tableId === table.id) - .map(relationship => relationship.end.tableId) - ); - const currentIndex = getIndex(sortTables, table.id); - if (currentIndex !== -1) { - sortTables.splice(currentIndex, 1); - } - sortTables.splice(firstIndex, 0, table); - }); - - return [...firstTables, ...sortTables]; -} - -function firstTableIndex(tables: Table[], tableIds: string[]): number { - let index = tables.length - 1; - for (let i = 0; i < tables.length; i++) { - const id = tables[i].id; - if (tableIds.includes(id)) { - index = i; - break; - } - } - return index; -} - -export function recalculatingTableWidth(tables: Table[], helper: Helper) { - tables.forEach(table => { - table.ui.widthName = widthBalanceRange(helper.getTextWidth(table.name)); - table.ui.widthComment = commentWidthBalanceRange( - helper.getTextWidth(table.comment) - ); - - table.columns.forEach(column => { - column.ui.widthName = widthBalanceRange(helper.getTextWidth(column.name)); - column.ui.widthDataType = widthBalanceRange( - helper.getTextWidth(column.dataType) - ); - column.ui.widthDefault = widthBalanceRange( - helper.getTextWidth(column.default) - ); - column.ui.widthComment = commentWidthBalanceRange( - helper.getTextWidth(column.comment) - ); - }); - }); -} diff --git a/packages-legacy/vuerd/src/engine/store/helper/valid.helper.ts b/packages-legacy/vuerd/src/engine/store/helper/valid.helper.ts deleted file mode 100644 index 2809b39d..00000000 --- a/packages-legacy/vuerd/src/engine/store/helper/valid.helper.ts +++ /dev/null @@ -1,208 +0,0 @@ -import { getData } from '@/core/helper'; -import { - executeChangeIdentification, - executeChangeStartRelationshipType, - executeRemoveRelationship, -} from '@/engine/command/relationship.cmd'; -import { getColumns } from '@/engine/store/helper/column.helper'; -import { State } from '@@types/engine/store'; -import { Table } from '@@types/engine/store/table.state'; - -/** - * TODO: Refactoring - */ - -export function validIdentification(state: State) { - const { relationships } = state.relationshipState; - const { tables } = state.tableState; - - relationships.forEach(relationship => { - const { end } = relationship; - const table = getData(tables, end.tableId); - if (!table) return; - - const columns = getColumns(table, end.columnIds); - const identification = columns.every(column => column.option.primaryKey); - - if (identification !== relationship.identification) { - executeChangeIdentification(state, { - relationshipId: relationship.id, - identification, - }); - } - }); -} - -export function validStartRelationship(state: State) { - const { relationships } = state.relationshipState; - const { tables } = state.tableState; - - relationships.forEach(relationship => { - const { end } = relationship; - const table = getData(tables, end.tableId); - if (!table) return; - - const columns = getColumns(table, end.columnIds); - const startRelationshipType = columns.every(column => column.option.notNull) - ? 'Dash' - : 'Ring'; - - if (startRelationshipType !== relationship.startRelationshipType) { - executeChangeStartRelationshipType(state, { - relationshipId: relationship.id, - startRelationshipType, - }); - } - }); -} - -export function removeValidTableRelationship(state: State, tableIds: string[]) { - const { relationships } = state.relationshipState; - const removeRelationshipIds: string[] = []; - - relationships.forEach(relationship => { - const { start, end } = relationship; - if ( - !tableIds.some( - tableId => tableId === start.tableId || tableId === end.tableId - ) - ) - return; - - removeRelationshipIds.push(relationship.id); - }); - - if (removeRelationshipIds.length !== 0) { - executeRemoveRelationship(state, { - relationshipIds: removeRelationshipIds, - }); - } -} - -interface ValidColumnUIKey { - startTableId: string; - endTableId: string; - columnIds: string[]; -} -export function removeValidColumnRelationship( - state: State, - table: Table, - columnIds: string[] -) { - const { relationships } = state.relationshipState; - const removeRelationshipIds: string[] = []; - const validColumnUIKeyList: ValidColumnUIKey[] = []; - - relationships.forEach(relationship => { - const { start, end } = relationship; - const validColumnUIKey: ValidColumnUIKey = { - startTableId: start.tableId, - endTableId: end.tableId, - columnIds: [], - }; - - if (table.id === start.tableId) { - for (let i = 0; i < start.columnIds.length; i++) { - const id = start.columnIds[i]; - if (!columnIds.includes(id)) return; - - validColumnUIKey.columnIds.push(end.columnIds[i]); - start.columnIds.splice(i, 1); - end.columnIds.splice(i, 1); - i--; - } - } else if (table.id === end.tableId) { - for (let i = 0; i < end.columnIds.length; i++) { - const id = end.columnIds[i]; - if (!columnIds.includes(id)) return; - - validColumnUIKey.columnIds.push(id); - start.columnIds.splice(i, 1); - end.columnIds.splice(i, 1); - i--; - } - } - - if (start.columnIds.length === 0) { - removeRelationshipIds.push(relationship.id); - } - - validColumnUIKeyList.push(validColumnUIKey); - }); - - if (removeRelationshipIds.length !== 0) { - executeRemoveRelationship(state, { - relationshipIds: removeRelationshipIds, - }); - } - - validColumnUIKeyList.forEach(validColumnUIKey => { - if (validColumnUIKey.columnIds.length === 0) return; - - removeValidRelationshipColumnId( - state, - validColumnUIKey.startTableId, - validColumnUIKey.columnIds - ); - removeValidRelationshipColumnId( - state, - validColumnUIKey.endTableId, - validColumnUIKey.columnIds - ); - }); -} - -export function removeValidRelationshipColumnId( - state: State, - tableId: string, - columnIds: string[] -) { - const { tables } = state.tableState; - const table = getData(tables, tableId); - if (!table) return; - - columnIds.forEach(columnId => { - const column = getData(table.columns, columnId); - if (!column) return; - - if (column.ui.fk) { - column.ui.fk = false; - } else if (column.ui.pfk) { - column.ui.pfk = false; - column.ui.pk = true; - } - }); -} - -export function removeValidColumnIndex( - state: State, - table: Table, - columnIds: string[] -) { - const { indexes } = state.tableState; - const tableIndexes = indexes.filter(index => index.tableId === table.id); - - tableIndexes.forEach(index => { - for (let i = 0; i < index.columns.length; i++) { - const id = index.columns[i].id; - - if (columnIds.includes(id)) { - index.columns.splice(i, 1); - i--; - } - } - }); -} - -export function removeValidTableIndex(state: State, tableIds: string[]) { - const { indexes } = state.tableState; - - for (let i = 0; i < indexes.length; i++) { - const id = indexes[i].tableId; - - if (tableIds.includes(id)) { - indexes.splice(i, 1); - i--; - } - } -} diff --git a/packages-legacy/vuerd/src/engine/store/index.ts b/packages-legacy/vuerd/src/engine/store/index.ts deleted file mode 100644 index d027d348..00000000 --- a/packages-legacy/vuerd/src/engine/store/index.ts +++ /dev/null @@ -1,95 +0,0 @@ -/* eslint-disable react-hooks/rules-of-hooks */ -import { observable } from '@vuerd/lit-observable'; - -import { createSubscriptionHelper, flat } from '@/core/helper'; -import { createHistory } from '@/core/history'; -import { commandsFilter } from '@/core/operators/commandsFilter'; -import { groupByStreamCommands } from '@/core/operators/groupByStreamCommands'; -import { notEmptyCommands } from '@/core/operators/notEmptyCommands'; -import { readonlyCommands } from '@/core/operators/readonlyCommands'; -import { createStream, executeCommand } from '@/engine/command'; -import { focusTableEnd, hasUndoRedo } from '@/engine/command/editor.cmd.helper'; -import { historyCommandTypes } from '@/engine/command/helper'; -import { executeHistoryCommand } from '@/engine/history'; -import { useHooks } from '@/engine/hooks'; -import { IStore } from '@/internal-types/store'; -import { Helper } from '@@types/core/helper'; -import { BatchCommand, CommandTypeAll } from '@@types/engine/command'; -import { State } from '@@types/engine/store'; - -import { createCanvasState } from './canvas.state'; -import { createEditorState } from './editor.state'; -import { createMemoState } from './memo.state'; -import { createRelationshipState } from './relationship.state'; -import { createTableState } from './table.state'; - -const createState = (): State => - observable({ - canvasState: createCanvasState(), - tableState: createTableState(), - relationshipState: createRelationshipState(), - memoState: createMemoState(), - editorState: createEditorState(), - }); - -export function createStore(helper: Helper): IStore { - const subscriptionHelper = createSubscriptionHelper(); - const state = createState(); - const { dispatch$, history$, change$, hook$ } = createStream(); - const dispatchSync = (...commands: BatchCommand) => - dispatch$.next([...flat(commands)]); - const dispatch = (...commands: BatchCommand) => - queueMicrotask(() => dispatchSync(...commands)); - const history = createHistory(() => - dispatch(hasUndoRedo(history.hasUndo(), history.hasRedo())) - ); - - const undo = () => { - if (!history.hasUndo() || state.editorState.readonly) return; - dispatch(focusTableEnd()); - history.undo(); - }; - - const redo = () => { - if (!history.hasRedo() || state.editorState.readonly) return; - dispatch(focusTableEnd()); - history.redo(); - }; - - const destroy = () => { - subscriptionHelper.destroy(); - history.clear(); - }; - - const store: IStore = { - ...state, - dispatch, - dispatchSync, - undo, - redo, - history$, - change$, - destroy, - }; - - const command = executeCommand(state); - const historyCommand = executeHistoryCommand(store, history); - - subscriptionHelper.push( - history$.pipe(notEmptyCommands).subscribe(command), - dispatch$ - .pipe( - readonlyCommands(state), - commandsFilter(historyCommandTypes), - groupByStreamCommands([ - ['@@move', ['table.move', 'memo.move']], - ['@@scroll', ['canvas.movement', 'canvas.movementZoom']], - ]) - ) - .subscribe(historyCommand), - dispatch$.pipe(readonlyCommands(state)).subscribe(command), - ...useHooks(hook$, state, helper) - ); - - return store; -} diff --git a/packages-legacy/vuerd/src/engine/store/memo.state.ts b/packages-legacy/vuerd/src/engine/store/memo.state.ts deleted file mode 100644 index cca8fc33..00000000 --- a/packages-legacy/vuerd/src/engine/store/memo.state.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { MemoState } from '@@types/engine/store/memo.state'; - -export const createMemoState = (): MemoState => ({ - memos: [], -}); diff --git a/packages-legacy/vuerd/src/engine/store/models/column.model.ts b/packages-legacy/vuerd/src/engine/store/models/column.model.ts deleted file mode 100644 index 049494a7..00000000 --- a/packages-legacy/vuerd/src/engine/store/models/column.model.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { cloneDeep } from '@/core/helper'; -import { SIZE_MIN_WIDTH } from '@/core/layout'; -import { AddColumn, AddCustomColumn } from '@@types/engine/command/column.cmd'; -import { - Column, - ColumnOption, - ColumnUI, -} from '@@types/engine/store/table.state'; - -interface ColumnData { - addColumn?: AddColumn; - addCustomColumn?: AddCustomColumn; -} - -export class ColumnModel implements Column { - id: string; - name = ''; - comment = ''; - dataType = ''; - default = ''; - option: ColumnOption = { - autoIncrement: false, - primaryKey: false, - unique: false, - notNull: false, - }; - ui: ColumnUI = { - active: false, - pk: false, - fk: false, - pfk: false, - widthName: SIZE_MIN_WIDTH, - widthComment: SIZE_MIN_WIDTH, - widthDataType: SIZE_MIN_WIDTH, - widthDefault: SIZE_MIN_WIDTH, - }; - - constructor({ addColumn, addCustomColumn }: ColumnData) { - if (addColumn) { - const { id } = addColumn; - - this.id = id; - } else if (addCustomColumn) { - const { id, option, ui, value } = cloneDeep(addCustomColumn); - - this.id = id; - option && Object.assign(this.option, option); - ui && Object.assign(this.ui, ui); - - if (value) { - this.name = value.name; - this.comment = value.comment; - this.dataType = value.dataType; - this.default = value.default; - this.ui.widthName = value.widthName; - this.ui.widthComment = value.widthComment; - this.ui.widthDataType = value.widthDataType; - this.ui.widthDefault = value.widthDefault; - } - } else { - throw new Error('not found column'); - } - } -} diff --git a/packages-legacy/vuerd/src/engine/store/models/filter.model.ts b/packages-legacy/vuerd/src/engine/store/models/filter.model.ts deleted file mode 100644 index 649703dd..00000000 --- a/packages-legacy/vuerd/src/engine/store/models/filter.model.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { AddFilter } from '@@types/engine/command/editor/filter.cmd'; -import { - ColumnType, - Filter, - TextFilterCode, -} from '@@types/engine/store/editor/filter.state'; - -interface FilterData { - addFilter?: AddFilter; -} - -export class FilterModel implements Filter { - id: string; - columnType: ColumnType = 'tableName'; - filterCode: TextFilterCode = 'contain'; - value = ''; - - constructor({ addFilter }: FilterData) { - if (addFilter) { - this.id = addFilter.id; - } else { - throw new Error('not found filter'); - } - } -} diff --git a/packages-legacy/vuerd/src/engine/store/models/index.model.ts b/packages-legacy/vuerd/src/engine/store/models/index.model.ts deleted file mode 100644 index 3a0508c0..00000000 --- a/packages-legacy/vuerd/src/engine/store/models/index.model.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { cloneDeep, isArray, isBoolean, isString } from '@/core/helper'; -import { AddIndex } from '@@types/engine/command/index.cmd'; -import { Index, IndexColumn } from '@@types/engine/store/table.state'; - -interface IndexData { - addIndex?: AddIndex; - loadIndex?: Index; -} - -const isLoadIndex = (loadIndex: Index) => - isString(loadIndex.id) && - isString(loadIndex.name) && - isString(loadIndex.tableId) && - isBoolean(loadIndex.unique) && - isArray(loadIndex.columns); - -export class IndexModel implements Index { - id: string; - name = ''; - tableId: string; - columns: IndexColumn[] = []; - unique = false; - - constructor({ addIndex, loadIndex }: IndexData) { - if (addIndex) { - const { id, tableId } = addIndex; - - this.id = id; - this.tableId = tableId; - } else if (loadIndex && isLoadIndex(loadIndex)) { - const { id, name, tableId, columns, unique } = cloneDeep(loadIndex); - - this.id = id; - this.name = name; - this.tableId = tableId; - this.columns = columns; - this.unique = unique; - } else { - throw new Error('not found index'); - } - } -} diff --git a/packages-legacy/vuerd/src/engine/store/models/memo.model.ts b/packages-legacy/vuerd/src/engine/store/models/memo.model.ts deleted file mode 100644 index 04434af4..00000000 --- a/packages-legacy/vuerd/src/engine/store/models/memo.model.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { - cloneDeep, - isBoolean, - isNumber, - isObject, - isString, -} from '@/core/helper'; -import { - SIZE_MEMO_HEIGHT, - SIZE_MEMO_WIDTH, - SIZE_START_X, - SIZE_START_Y, -} from '@/core/layout'; -import { AddMemo } from '@@types/engine/command/memo.cmd'; -import { Memo, MemoUI } from '@@types/engine/store/memo.state'; - -interface MemoData { - addMemo?: AddMemo; - loadMemo?: Memo; -} - -const isLoadMemo = (loadMemo: Memo) => - isString(loadMemo.id) && - isString(loadMemo.value) && - isObject(loadMemo.ui) && - isBoolean(loadMemo.ui.active) && - isNumber(loadMemo.ui.top) && - isNumber(loadMemo.ui.left) && - isNumber(loadMemo.ui.width) && - isNumber(loadMemo.ui.height) && - isNumber(loadMemo.ui.zIndex); - -export class MemoModel implements Memo { - id: string; - value = ''; - ui: MemoUI = { - active: false, - left: SIZE_START_X, - top: SIZE_START_Y, - zIndex: 2, - width: SIZE_MEMO_WIDTH, - height: SIZE_MEMO_HEIGHT, - }; - - constructor({ addMemo, loadMemo }: MemoData) { - if (addMemo) { - const { id, ui } = addMemo; - - this.id = id; - this.ui = Object.assign(this.ui, ui); - } else if (loadMemo && isLoadMemo(loadMemo)) { - const { id, value, ui } = cloneDeep(loadMemo); - - this.id = id; - this.value = value; - this.ui = Object.assign(this.ui, ui); - } else { - throw new Error('not found memo'); - } - } -} diff --git a/packages-legacy/vuerd/src/engine/store/models/relationship.model.ts b/packages-legacy/vuerd/src/engine/store/models/relationship.model.ts deleted file mode 100644 index 2a943b5b..00000000 --- a/packages-legacy/vuerd/src/engine/store/models/relationship.model.ts +++ /dev/null @@ -1,100 +0,0 @@ -import { - cloneDeep, - isArray, - isBoolean, - isNumber, - isObject, - isString, -} from '@/core/helper'; -import { migrationRelationshipType } from '@/core/migration/relationshipType'; -import { AddRelationship } from '@@types/engine/command/relationship.cmd'; -import { - Relationship, - RelationshipPoint, - RelationshipType, - StartRelationshipType, -} from '@@types/engine/store/relationship.state'; - -interface RelationshipData { - addRelationship?: AddRelationship; - loadRelationship?: Relationship; -} - -const isLoadRelationship = (loadRelationship: Relationship) => - isString(loadRelationship.id) && - isBoolean(loadRelationship.identification) && - isString(loadRelationship.relationshipType) && - isObject(loadRelationship.start) && - isObject(loadRelationship.end) && - isString(loadRelationship.start.tableId) && - isNumber(loadRelationship.start.x) && - isNumber(loadRelationship.start.y) && - isString(loadRelationship.start.direction) && - isArray(loadRelationship.start.columnIds) && - isString(loadRelationship.end.tableId) && - isNumber(loadRelationship.end.x) && - isNumber(loadRelationship.end.y) && - isString(loadRelationship.end.direction) && - isArray(loadRelationship.end.columnIds); - -export class RelationshipModel implements Relationship { - id: string; - identification = false; - relationshipType: RelationshipType = 'ZeroN'; - startRelationshipType: StartRelationshipType = 'Dash'; - start: RelationshipPoint = { - tableId: '', - columnIds: [], - x: 0, - y: 0, - direction: 'bottom', - }; - end: RelationshipPoint = { - tableId: '', - columnIds: [], - x: 0, - y: 0, - direction: 'bottom', - }; - constraintName = ''; - visible = true; - - constructor({ addRelationship, loadRelationship }: RelationshipData) { - if (addRelationship) { - const { id, relationshipType, start, end, constraintName } = - addRelationship; - - this.id = id; - this.relationshipType = migrationRelationshipType(relationshipType); - this.start.tableId = start.tableId; - this.start.columnIds = [...start.columnIds]; - this.end.tableId = end.tableId; - this.end.columnIds = [...end.columnIds]; - this.constraintName = constraintName; - } else if (loadRelationship && isLoadRelationship(loadRelationship)) { - const { - id, - identification, - relationshipType, - startRelationshipType, - start, - end, - constraintName, - visible, - } = cloneDeep(loadRelationship); - - this.id = id; - this.identification = identification; - this.relationshipType = migrationRelationshipType(relationshipType); - this.start = start; - this.end = end; - this.constraintName = constraintName || ''; - if (startRelationshipType) { - this.startRelationshipType = startRelationshipType; - } - if (isBoolean(visible)) this.visible = visible; - } else { - throw new Error('not found relationship'); - } - } -} diff --git a/packages-legacy/vuerd/src/engine/store/models/table.model.helper.ts b/packages-legacy/vuerd/src/engine/store/models/table.model.helper.ts deleted file mode 100644 index 8d7c8c45..00000000 --- a/packages-legacy/vuerd/src/engine/store/models/table.model.helper.ts +++ /dev/null @@ -1,102 +0,0 @@ -import { - SIZE_COLUMN_MARGIN_RIGHT, - SIZE_COLUMN_OPTION_AI, - SIZE_COLUMN_OPTION_NN, - SIZE_COLUMN_OPTION_UQ, - SIZE_MIN_WIDTH, -} from '@/core/layout'; -import { Show, ShowKey } from '@@types/engine/store/canvas.state'; -import { Column, ColumnWidth } from '@@types/engine/store/table.state'; - -type ColumnWidthKey = - | 'width' - | 'name' - | 'comment' - | 'dataType' - | 'default' - | 'notNull' - | 'autoIncrement' - | 'unique'; - -export function getMaxWidthColumn(columns: Column[], show: Show) { - const columnWidth: ColumnWidth = { - width: 0, - name: 0, - comment: 0, - dataType: 0, - default: 0, - notNull: 0, - autoIncrement: 0, - unique: 0, - }; - - columns.forEach(column => { - columnWidth.name < column.ui.widthName && - (columnWidth.name = column.ui.widthName); - - show.columnComment && - columnWidth.comment < column.ui.widthComment && - (columnWidth.comment = column.ui.widthComment); - - show.columnDataType && - columnWidth.dataType < column.ui.widthDataType && - (columnWidth.dataType = column.ui.widthDataType); - - show.columnDefault && - columnWidth.default < column.ui.widthDefault && - (columnWidth.default = column.ui.widthDefault); - }); - - show.columnNotNull && (columnWidth.notNull = SIZE_COLUMN_OPTION_NN); - show.columnUnique && (columnWidth.unique = SIZE_COLUMN_OPTION_UQ); - show.columnAutoIncrement && - (columnWidth.autoIncrement = SIZE_COLUMN_OPTION_AI); - - Object.keys(columnWidth) - .filter(key => key !== 'width') - .forEach(key => { - const k = key as ColumnWidthKey; - if (!columnWidth[k]) return; - - columnWidth.width += columnWidth[k] + SIZE_COLUMN_MARGIN_RIGHT; - }); - - return columnWidth; -} - -const defaultWidthColumnMap: Array<{ key: ShowKey; width: number }> = [ - { - key: 'columnComment', - width: SIZE_MIN_WIDTH, - }, - { - key: 'columnDataType', - width: SIZE_MIN_WIDTH, - }, - { - key: 'columnDefault', - width: SIZE_MIN_WIDTH, - }, - { - key: 'columnNotNull', - width: SIZE_COLUMN_OPTION_NN, - }, - { - key: 'columnAutoIncrement', - width: SIZE_COLUMN_OPTION_AI, - }, - { - key: 'columnUnique', - width: SIZE_COLUMN_OPTION_UQ, - }, -]; - -export function getDefaultWidthColumn(show: Show): number { - let width = SIZE_MIN_WIDTH + SIZE_COLUMN_MARGIN_RIGHT; - - defaultWidthColumnMap.forEach( - data => show[data.key] && (width += data.width + SIZE_COLUMN_MARGIN_RIGHT) - ); - - return width; -} diff --git a/packages-legacy/vuerd/src/engine/store/models/table.model.ts b/packages-legacy/vuerd/src/engine/store/models/table.model.ts deleted file mode 100644 index 0cb58675..00000000 --- a/packages-legacy/vuerd/src/engine/store/models/table.model.ts +++ /dev/null @@ -1,128 +0,0 @@ -import { - cloneDeep, - isArray, - isBoolean, - isNumber, - isObject, - isString, -} from '@/core/helper'; -import { - SIZE_COLUMN_CLOSE, - SIZE_COLUMN_HEIGHT, - SIZE_COLUMN_KEY, - SIZE_COLUMN_MARGIN_RIGHT, - SIZE_MIN_WIDTH, - SIZE_START_X, - SIZE_START_Y, - SIZE_TABLE_HEADER_HEIGHT, -} from '@/core/layout'; -import { AddTable } from '@@types/engine/command/table.cmd'; -import { Show } from '@@types/engine/store/canvas.state'; -import { - Column, - ColumnWidth, - PureTable, - Table, - TableUI, -} from '@@types/engine/store/table.state'; - -import { getDefaultWidthColumn, getMaxWidthColumn } from './table.model.helper'; - -interface TableData { - addTable?: AddTable; - loadTable?: PureTable; -} - -const isLoadTable = (loadTable: PureTable) => - isString(loadTable.id) && - isString(loadTable.name) && - isString(loadTable.comment) && - isArray(loadTable.columns) && - isObject(loadTable.ui) && - isBoolean(loadTable.ui.active) && - isNumber(loadTable.ui.left) && - isNumber(loadTable.ui.top) && - isNumber(loadTable.ui.zIndex) && - isNumber(loadTable.ui.widthName) && - isNumber(loadTable.ui.widthComment); - -export class TableModel implements Table { - id: string; - name = ''; - comment = ''; - columns: Column[] = []; - ui: TableUI = { - active: false, - left: SIZE_START_X, - top: SIZE_START_Y, - zIndex: 2, - widthName: SIZE_MIN_WIDTH, - widthComment: SIZE_MIN_WIDTH, - }; - visible = true; - - private _show: Show; - - constructor({ addTable, loadTable }: TableData, show: Show) { - this._show = show; - - if (addTable) { - const { id, ui } = addTable; - - this.id = id; - this.ui = Object.assign(this.ui, ui); - this.visible = true; - } else if (loadTable && isLoadTable(loadTable)) { - const { id, name, comment, columns, ui, visible } = cloneDeep(loadTable); - - this.id = id; - this.name = name; - this.comment = comment; - this.columns = columns; - this.ui = Object.assign(this.ui, ui); - if (isBoolean(visible)) this.visible = visible; - } else { - throw new Error('not found table'); - } - } - - width(): number { - // table header width - let width = this.ui.widthName + SIZE_COLUMN_MARGIN_RIGHT; - if (this._show.tableComment) { - width += this.ui.widthComment + SIZE_COLUMN_MARGIN_RIGHT; - } - - // default width column - const defaultWidthColumn = - getDefaultWidthColumn(this._show) + - SIZE_COLUMN_CLOSE + - SIZE_COLUMN_KEY + - SIZE_COLUMN_MARGIN_RIGHT; - - if (width < defaultWidthColumn) { - width = defaultWidthColumn; - } - - // max width column - const maxWidthColumn = - this.maxWidthColumn().width + - SIZE_COLUMN_CLOSE + - SIZE_COLUMN_KEY + - SIZE_COLUMN_MARGIN_RIGHT; - - if (width < maxWidthColumn) { - width = maxWidthColumn; - } - - return width; - } - - height(): number { - return SIZE_TABLE_HEADER_HEIGHT + this.columns.length * SIZE_COLUMN_HEIGHT; - } - - maxWidthColumn(): ColumnWidth { - return getMaxWidthColumn(this.columns, this._show); - } -} diff --git a/packages-legacy/vuerd/src/engine/store/relationship.state.ts b/packages-legacy/vuerd/src/engine/store/relationship.state.ts deleted file mode 100644 index a05cbdb6..00000000 --- a/packages-legacy/vuerd/src/engine/store/relationship.state.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { - RelationshipState, - RelationshipType, -} from '@@types/engine/store/relationship.state'; - -export const oneRelationshipTypes: RelationshipType[] = [ - 'ZeroOne', - 'OneOnly', - 'One', -]; - -export const nRelationshipTypes: RelationshipType[] = [ - 'ZeroOneN', - 'ZeroN', - 'OneN', - 'N', -]; - -export const createRelationshipState = (): RelationshipState => ({ - relationships: [], -}); diff --git a/packages-legacy/vuerd/src/engine/store/table.state.ts b/packages-legacy/vuerd/src/engine/store/table.state.ts deleted file mode 100644 index 2a62cceb..00000000 --- a/packages-legacy/vuerd/src/engine/store/table.state.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { ColumnOptionKey, TableState } from '@@types/engine/store/table.state'; - -export const columnOptionKeys: ColumnOptionKey[] = [ - 'autoIncrement', - 'primaryKey', - 'unique', - 'notNull', -]; - -export const createTableState = (): TableState => ({ - tables: [], - indexes: [], -}); diff --git a/packages-legacy/vuerd/src/extensions/builtin.ts b/packages-legacy/vuerd/src/extensions/builtin.ts deleted file mode 100644 index 83bb7480..00000000 --- a/packages-legacy/vuerd/src/extensions/builtin.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { extension } from '@/core/extension'; - -import { generatorCodePanel } from './panels/generator-code'; -import { SQLDDLPanel } from './panels/sql-ddl'; -import { visualizationPanel } from './panels/visualization'; - -extension({ - panels: [visualizationPanel(), SQLDDLPanel(), generatorCodePanel()], -}); diff --git a/packages-legacy/vuerd/src/extensions/panels/generator-code/components/index.ts b/packages-legacy/vuerd/src/extensions/panels/generator-code/components/index.ts deleted file mode 100644 index e4bef07d..00000000 --- a/packages-legacy/vuerd/src/extensions/panels/generator-code/components/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Panel } from '@@types/index'; - -export class GeneratorCodePanel implements Panel { - el = document.createElement('vuerd-generator-code'); - - render() { - return this.el; - } -} diff --git a/packages-legacy/vuerd/src/extensions/panels/generator-code/index.ts b/packages-legacy/vuerd/src/extensions/panels/generator-code/index.ts deleted file mode 100644 index 0d82eb72..00000000 --- a/packages-legacy/vuerd/src/extensions/panels/generator-code/index.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { PanelConfig } from '@@types/index'; - -import { GeneratorCodePanel } from './components'; - -const generatorCodePanelConfig: PanelConfig = { - type: GeneratorCodePanel, - icon: { - prefix: 'fas', - name: 'file-code', - }, - key: '@vuerd/builtin-generator-code', - name: 'Generator Code', -}; - -export const generatorCodePanel = () => generatorCodePanelConfig; diff --git a/packages-legacy/vuerd/src/extensions/panels/sql-ddl/components/index.ts b/packages-legacy/vuerd/src/extensions/panels/sql-ddl/components/index.ts deleted file mode 100644 index c70f47ad..00000000 --- a/packages-legacy/vuerd/src/extensions/panels/sql-ddl/components/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Panel } from '@@types/index'; - -export class SQLDDLPanel implements Panel { - el = document.createElement('vuerd-sql-ddl'); - - render() { - return this.el; - } -} diff --git a/packages-legacy/vuerd/src/extensions/panels/sql-ddl/index.ts b/packages-legacy/vuerd/src/extensions/panels/sql-ddl/index.ts deleted file mode 100644 index c973f939..00000000 --- a/packages-legacy/vuerd/src/extensions/panels/sql-ddl/index.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { PanelConfig } from '@@types/index'; - -import { SQLDDLPanel as SQLDDLPanelUI } from './components'; - -const SQLDDLPanelConfig: PanelConfig = { - type: SQLDDLPanelUI, - icon: { - prefix: 'mdi', - name: 'database-export', - size: 20, - }, - key: '@vuerd/builtin-sql-ddl', - name: 'SQL DDL', -}; - -export const SQLDDLPanel = () => SQLDDLPanelConfig; diff --git a/packages-legacy/vuerd/src/extensions/panels/visualization/components/Column.template.ts b/packages-legacy/vuerd/src/extensions/panels/visualization/components/Column.template.ts deleted file mode 100644 index ee50121c..00000000 --- a/packages-legacy/vuerd/src/extensions/panels/visualization/components/Column.template.ts +++ /dev/null @@ -1,131 +0,0 @@ -import { html, TemplateResult } from '@vuerd/lit-observable'; -import { repeat } from 'lit-html/directives/repeat'; - -import { ERDEditorContext } from '@@types/core/ERDEditorContext'; -import { ColumnType } from '@@types/engine/store/canvas.state'; - -import { VisualizationColumnProps } from './Column'; - -interface ReshapeColumn { - columnType: ColumnType; - template: TemplateResult; -} - -export function columnTpl( - props: VisualizationColumnProps, - { - store: { - canvasState: { show, setting }, - }, - }: ERDEditorContext -) { - const { column } = props; - - const reshapeColumns = setting.columnOrder - .map(columnType => { - switch (columnType) { - case 'columnName': - return { - columnType, - template: html` - - `, - }; - - case 'columnDefault': - return show.columnDefault - ? { - columnType, - template: html` - - `, - } - : null; - - case 'columnComment': - return show.columnComment - ? { - columnType, - template: html` - - `, - } - : null; - - case 'columnDataType': - return show.columnDataType - ? { - columnType, - template: html` - - `, - } - : null; - - case 'columnNotNull': - return show.columnNotNull - ? { - columnType, - template: html` - - `, - } - : null; - - case 'columnUnique': - return show.columnUnique - ? { - columnType, - template: html` - - `, - } - : null; - - case 'columnAutoIncrement': - return show.columnAutoIncrement - ? { - columnType, - template: html` - - `, - } - : null; - - default: - return null; - } - }) - .filter(reshapeColumn => !!reshapeColumn) as ReshapeColumn[]; - - return repeat( - reshapeColumns, - reshapeColumn => reshapeColumn.columnType, - reshapeColumn => reshapeColumn.template - ); -} diff --git a/packages-legacy/vuerd/src/extensions/panels/visualization/components/Column.ts b/packages-legacy/vuerd/src/extensions/panels/visualization/components/Column.ts deleted file mode 100644 index ac544bb2..00000000 --- a/packages-legacy/vuerd/src/extensions/panels/visualization/components/Column.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { - defineComponent, - FunctionalComponent, - html, -} from '@vuerd/lit-observable'; -import { classMap } from 'lit-html/directives/class-map'; - -import { useAPI } from '@/extensions/panels/visualization/hooks/api.hook'; -import { Column } from '@@types/engine/store/table.state'; - -import { columnTpl } from './Column.template'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-visualization-column': VisualizationColumnElement; - } -} - -export interface VisualizationColumnProps { - active: boolean; - widthName: number; - widthDataType: number; - widthNotNull: number; - widthDefault: number; - widthComment: number; - column: Column; -} - -export interface VisualizationColumnElement - extends VisualizationColumnProps, - HTMLElement {} - -const VisualizationColumn: FunctionalComponent< - VisualizationColumnProps, - VisualizationColumnElement -> = (props, ctx) => { - const apiRef = useAPI(ctx); - - return () => { - const { ui } = props.column; - - return html` -
    - - ${columnTpl(props, apiRef.value)} -
    - `; - }; -}; - -defineComponent('vuerd-visualization-column', { - observedProps: [ - 'active', - 'widthName', - 'widthDataType', - 'widthNotNull', - 'widthDefault', - 'widthComment', - 'column', - ], - shadow: false, - render: VisualizationColumn, -}); diff --git a/packages-legacy/vuerd/src/extensions/panels/visualization/components/Table.ts b/packages-legacy/vuerd/src/extensions/panels/visualization/components/Table.ts deleted file mode 100644 index f6edad33..00000000 --- a/packages-legacy/vuerd/src/extensions/panels/visualization/components/Table.ts +++ /dev/null @@ -1,109 +0,0 @@ -import './Column'; - -import { - defineComponent, - FunctionalComponent, - html, -} from '@vuerd/lit-observable'; -import { repeat } from 'lit-html/directives/repeat'; -import { styleMap } from 'lit-html/directives/style-map'; - -import { SIZE_TABLE_PADDING } from '@/core/layout'; -import { useAPI } from '@/extensions/panels/visualization/hooks/api.hook'; -import { Table } from '@@types/engine/store/table.state'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-visualization-table': VisualizationTableElement; - } -} - -export interface VisualizationTableProps { - table: Table; - columnId: string | null; - top: number; - left: number; -} - -export interface VisualizationTableElement - extends VisualizationTableProps, - HTMLElement {} - -const VisualizationTable: FunctionalComponent< - VisualizationTableProps, - VisualizationTableElement -> = (props, ctx) => { - const apiRef = useAPI(ctx); - - return () => { - const { show } = apiRef.value.store.canvasState; - const { table } = props; - const widthColumn = table.maxWidthColumn(); - - return html` -
    -
    -
    -
    -
    -
    - - ${show.tableComment - ? html` - - ` - : null} -
    -
    -
    - ${repeat( - props.table.columns, - column => column.id, - column => html` - - ` - )} -
    -
    - `; - }; -}; - -defineComponent('vuerd-visualization-table', { - observedProps: ['table', 'columnId', 'top', 'left'], - shadow: false, - render: VisualizationTable, -}); diff --git a/packages-legacy/vuerd/src/extensions/panels/visualization/components/Visualization.style.ts b/packages-legacy/vuerd/src/extensions/panels/visualization/components/Visualization.style.ts deleted file mode 100644 index 0e09826d..00000000 --- a/packages-legacy/vuerd/src/extensions/panels/visualization/components/Visualization.style.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { css } from '@/core/tagged'; - -export const VisualizationStyle = css` - .vuerd-visualization { - position: relative; - height: 100%; - overflow: auto; - background-color: var(--vuerd-color-visualization); - } -`; diff --git a/packages-legacy/vuerd/src/extensions/panels/visualization/components/Visualization.ts b/packages-legacy/vuerd/src/extensions/panels/visualization/components/Visualization.ts deleted file mode 100644 index 1d11abfe..00000000 --- a/packages-legacy/vuerd/src/extensions/panels/visualization/components/Visualization.ts +++ /dev/null @@ -1,154 +0,0 @@ -import './Table'; - -import { - beforeMount, - defineComponent, - FunctionalComponent, - html, - observable, - unmounted, - watch, -} from '@vuerd/lit-observable'; - -import { getData } from '@/core/helper'; -import { useUnmounted } from '@/core/hooks/unmounted.hook'; -import { createVisualization } from '@/extensions/panels/visualization/core/visualization'; -import { Table } from '@@types/engine/store/table.state'; -import { ERDEditorContext } from '@@types/index'; - -import { IndexStyle } from './index.style'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-visualization': VisualizationElement; - } -} - -export interface VisualizationProps { - width: number; - height: number; -} - -export interface VisualizationElement extends VisualizationProps, HTMLElement { - api: ERDEditorContext; -} - -interface VisualizationState { - preview: boolean; - drag: boolean; - table?: Table | null; - columnId: string | null; - top: number; - left: number; -} - -const HEIGHT = 1200; -const MARGIN = 20; - -const Visualization: FunctionalComponent< - VisualizationProps, - VisualizationElement -> = (props, ctx) => { - const state = observable({ - preview: false, - drag: false, - table: null, - columnId: null, - top: 0, - left: 0, - }); - let d3SVG: any = null; - const { unmountedGroup } = useUnmounted(); - - const dragStart = () => { - state.drag = true; - }; - - const dragEnd = () => { - state.drag = false; - }; - - const startPreview = (tableId: string, columnId: string) => { - const { tables } = ctx.api.store.tableState; - state.preview = true; - state.table = getData(tables, tableId); - state.columnId = columnId; - }; - - const endPreview = () => { - state.preview = false; - }; - - const setViewBox = () => { - d3SVG?.attr('viewBox', [ - -props.width / 2, - -HEIGHT / 2, - props.width, - HEIGHT, - ]); - }; - - const onMousemove = (event: MouseEvent) => { - state.top = event.clientY; - state.left = event.clientX; - }; - - beforeMount(() => { - d3SVG = createVisualization(ctx.api.store, { - dragStart, - dragEnd, - startPreview, - endPreview, - }); - - setViewBox(); - - unmountedGroup.push( - watch(props, propName => { - if (propName !== 'width') return; - - setViewBox(); - }) - ); - }); - - unmounted(() => { - d3SVG?.remove(); - d3SVG = null; - }); - - return () => html` -
    - ${d3SVG.node()} - ${state.table && !state.drag && state.preview - ? html` - - ` - : null} -
    - `; -}; - -defineComponent('vuerd-visualization', { - observedProps: [ - { - name: 'width', - default: 0, - }, - { - name: 'height', - default: 0, - }, - ], - styleMap: { - width: '100%', - height: '100%', - }, - style: IndexStyle, - render: Visualization, -}); diff --git a/packages-legacy/vuerd/src/extensions/panels/visualization/components/index.style.ts b/packages-legacy/vuerd/src/extensions/panels/visualization/components/index.style.ts deleted file mode 100644 index 046d569d..00000000 --- a/packages-legacy/vuerd/src/extensions/panels/visualization/components/index.style.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ScrollbarStyle } from '@/components/css/scrollbar.style'; -import { InputStyle } from '@/components/editor/Input.style'; -import { ColumnStyle } from '@/components/editor/table/column/Column.style'; -import { ColumnAutoIncrementStyle } from '@/components/editor/table/column/ColumnAutoIncrement.style'; -import { ColumnDataTypeStyle } from '@/components/editor/table/column/ColumnDataType.style'; -import { ColumnKeyStyle } from '@/components/editor/table/column/ColumnKey.style'; -import { ColumnNotNullStyle } from '@/components/editor/table/column/ColumnNotNull.style'; -import { ColumnUniqueStyle } from '@/components/editor/table/column/ColumnUnique.style'; -import { TableStyle } from '@/components/editor/table/Table.style'; - -import { VisualizationStyle } from './Visualization.style'; - -export const IndexStyle = [ - VisualizationStyle, - ScrollbarStyle, - TableStyle, - InputStyle, - ColumnStyle, - ColumnKeyStyle, - ColumnDataTypeStyle, - ColumnNotNullStyle, - ColumnUniqueStyle, - ColumnAutoIncrementStyle, -].join(''); diff --git a/packages-legacy/vuerd/src/extensions/panels/visualization/components/index.ts b/packages-legacy/vuerd/src/extensions/panels/visualization/components/index.ts deleted file mode 100644 index 168d553e..00000000 --- a/packages-legacy/vuerd/src/extensions/panels/visualization/components/index.ts +++ /dev/null @@ -1,31 +0,0 @@ -import './Visualization'; - -import { ERDEditorContext, Panel, PanelProps } from '@@types/index'; - -export class VisualizationPanel implements Panel { - el = document.createElement('vuerd-visualization'); - props: PanelProps; - - constructor(props: PanelProps, api: ERDEditorContext) { - this.props = props; - this.el.api = api; - this.setViewport(); - } - - setViewport() { - this.el.width = this.props.width; - this.el.height = this.props.height; - } - - beforeFirstUpdate() { - this.setViewport(); - } - - beforeUpdate() { - this.setViewport(); - } - - render() { - return this.el; - } -} diff --git a/packages-legacy/vuerd/src/extensions/panels/visualization/core/visualization.ts b/packages-legacy/vuerd/src/extensions/panels/visualization/core/visualization.ts deleted file mode 100644 index 8795c90c..00000000 --- a/packages-legacy/vuerd/src/extensions/panels/visualization/core/visualization.ts +++ /dev/null @@ -1,182 +0,0 @@ -import { - create, - drag, - forceLink, - forceManyBody, - forceSimulation, - forceX, - forceY, - scaleOrdinal, - schemeCategory10, -} from 'd3'; - -import { Store } from '@@types/engine/store'; - -type Group = 'table' | 'column'; - -interface Node { - id: string; - group: Group; - name: string; - tableId?: string; -} - -interface Link { - source: string; - target: string; -} - -interface Visualization { - nodes: Node[]; - links: Link[]; -} - -function convertVisualization(store: Store): Visualization { - const { tableState, relationshipState } = store; - const data: Visualization = { - nodes: [], - links: [], - }; - const tables = tableState.tables; - const relationships = relationshipState.relationships; - - tables.forEach(table => { - data.nodes.push({ - id: table.id, - name: table.name, - group: 'table', - }); - table.columns.forEach(column => { - data.nodes.push({ - id: column.id, - name: column.name, - group: 'column', - tableId: table.id, - }); - data.links.push({ - source: table.id, - target: column.id, - }); - }); - }); - - relationships.forEach(relationship => { - const { start, end } = relationship; - if ( - start.tableId !== end.tableId && - isLink(data.links, start.tableId, end.tableId) - ) { - data.links.push({ - source: start.tableId, - target: end.tableId, - }); - } - }); - - return data; -} - -function isLink( - links: Link[], - startTableId: string, - endTableId: string -): boolean { - let result = true; - for (const link of links) { - if (link.source === startTableId && link.target === endTableId) { - result = false; - break; - } - } - return result; -} - -/** - * https://observablehq.com/@d3/disjoint-force-directed-graph - */ -const scale = scaleOrdinal(schemeCategory10); - -function onDrag(simulation: any, callbacks: any): any { - return drag() - .on('start', (event, d: any) => { - if (!event.active) simulation.alphaTarget(0.3).restart(); - d.fx = d.x; - d.fy = d.y; - callbacks.dragStart(); - }) - .on('drag', (event, d: any) => { - d.fx = event.x; - d.fy = event.y; - }) - .on('end', (event, d: any) => { - if (!event.active) simulation.alphaTarget(0); - d.fx = null; - d.fy = null; - callbacks.dragEnd(); - }); -} - -export function createVisualization(store: Store, callbacks: any) { - const data = convertVisualization(store); - const links = data.links.map(d => Object.create(d)); - const nodes = data.nodes.map(d => Object.create(d)); - - const simulation = forceSimulation(nodes) - .force( - 'link', - forceLink(links).id((d: any) => d.id) - ) - .force('charge', forceManyBody()) - .force('x', forceX()) - .force('y', forceY()); - - const svg = create('svg'); - - const link = svg - .append('g') - .attr('stroke', '#999') - .attr('stroke-opacity', 0.6) - .selectAll('line') - .data(links) - .join('line') - .attr('stroke-width', Math.sqrt(2)); - - const node = svg - .append('g') - .attr('stroke', '#fff') - .attr('stroke-width', 1.5) - .selectAll('circle') - .data(nodes) - .join('circle') - .attr('r', 5) - .attr('fill', d => scale(d.group)) - .call(onDrag(simulation, callbacks)); - - node.on('mouseover', (event, d) => { - const node = data.nodes[d.index]; - let tableId: string | null = null; - let columnId: string | null = null; - if (node.group === 'table') { - tableId = node.id; - } else if (node.group === 'column' && node.tableId) { - tableId = node.tableId; - columnId = node.id; - } - callbacks.startPreview(tableId, columnId); - }); - node.on('mouseleave', () => { - callbacks.endPreview(); - }); - - simulation.on('tick', () => { - link - .attr('x1', d => d.source.x) - .attr('y1', d => d.source.y) - .attr('x2', d => d.target.x) - .attr('y2', d => d.target.y); - - node.attr('cx', d => d.x).attr('cy', d => d.y); - }); - - return svg; -} diff --git a/packages-legacy/vuerd/src/extensions/panels/visualization/hooks/api.hook.ts b/packages-legacy/vuerd/src/extensions/panels/visualization/hooks/api.hook.ts deleted file mode 100644 index af1e9355..00000000 --- a/packages-legacy/vuerd/src/extensions/panels/visualization/hooks/api.hook.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { beforeMount, closestElement } from '@vuerd/lit-observable'; - -import { VisualizationElement } from '@/extensions/panels/visualization/components/Visualization'; -import { ERDEditorContext } from '@@types/core/ERDEditorContext'; - -export function useAPI(ctx: HTMLElement) { - const ref: { value: ERDEditorContext | null } = { value: null }; - - beforeMount(() => { - const el = closestElement( - 'vuerd-visualization', - ctx - ) as VisualizationElement | null; - if (!el) return; - - ref.value = el.api; - }); - - return ref as { value: ERDEditorContext }; -} diff --git a/packages-legacy/vuerd/src/extensions/panels/visualization/index.ts b/packages-legacy/vuerd/src/extensions/panels/visualization/index.ts deleted file mode 100644 index 2cbe98a4..00000000 --- a/packages-legacy/vuerd/src/extensions/panels/visualization/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { mdiChartBubble } from '@mdi/js'; - -import { addIcon } from '@/core'; -import { createMDI } from '@/core/icon'; -import { PanelConfig } from '@@types/index'; - -import { VisualizationPanel } from './components'; - -addIcon(createMDI('chart-bubble', mdiChartBubble)); - -const visualizationPanelConfig: PanelConfig = { - type: VisualizationPanel, - icon: { - prefix: 'mdi', - name: 'chart-bubble', - size: 24, - }, - key: '@vuerd/builtin-visualization', - name: 'Visualization', -}; - -export const visualizationPanel = () => visualizationPanelConfig; diff --git a/packages-legacy/vuerd/src/index.dev.ts b/packages-legacy/vuerd/src/index.dev.ts deleted file mode 100644 index 1b663b7f..00000000 --- a/packages-legacy/vuerd/src/index.dev.ts +++ /dev/null @@ -1,11 +0,0 @@ -import './index'; - -function runEditor() { - const editor = document.createElement('vuerd-editor'); - editor.automaticLayout = true; - document.body.style.margin = '0'; - document.body.style.height = '100vh'; - document.body.appendChild(editor); -} - -runEditor(); diff --git a/packages-legacy/vuerd/src/index.ts b/packages-legacy/vuerd/src/index.ts deleted file mode 100644 index cdc3a576..00000000 --- a/packages-legacy/vuerd/src/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -import '@/core/config'; -import '@/components/ERDEditor'; -import '@/extensions/builtin'; - -export * from '@/core'; diff --git a/packages-legacy/vuerd/src/internal-types/ERDEditorContext.d.ts b/packages-legacy/vuerd/src/internal-types/ERDEditorContext.d.ts deleted file mode 100644 index b0496be7..00000000 --- a/packages-legacy/vuerd/src/internal-types/ERDEditorContext.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { showAlertDef } from '@/core/hooks/alert.hook'; -import { showPromptDef } from '@/core/hooks/prompt.hook'; -import { ERDEditorContext } from '@@types/core/ERDEditorContext'; - -import { EventBus, GlobalEventObservable } from './event.helper'; -import { IHelper } from './helper'; -import { IStore } from './store'; - -export interface IERDEditorContext extends ERDEditorContext { - globalEvent: GlobalEventObservable; - eventBus: EventBus; - store: IStore; - helper: IHelper; - showPrompt: showPromptDef; - showAlert: showAlertDef; -} diff --git a/packages-legacy/vuerd/src/internal-types/command.d.ts b/packages-legacy/vuerd/src/internal-types/command.d.ts deleted file mode 100644 index 3467683e..00000000 --- a/packages-legacy/vuerd/src/internal-types/command.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { State } from '@@types/engine/store'; - -export type ExecuteCommand = (state: State, data: any) => void; diff --git a/packages-legacy/vuerd/src/internal-types/env.d.ts b/packages-legacy/vuerd/src/internal-types/env.d.ts deleted file mode 100644 index c2155c33..00000000 --- a/packages-legacy/vuerd/src/internal-types/env.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -interface ImportMeta { - env: ImportMetaEnv; -} - -interface ImportMetaEnv { - VITE_VUERD_VERSION: string; -} diff --git a/packages-legacy/vuerd/src/internal-types/event.helper.d.ts b/packages-legacy/vuerd/src/internal-types/event.helper.d.ts deleted file mode 100644 index 977394f3..00000000 --- a/packages-legacy/vuerd/src/internal-types/event.helper.d.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Observable } from 'rxjs'; - -export interface Move { - movementX: number; - movementY: number; - x: number; - y: number; - event: MouseEvent | TouchEvent; -} - -export interface GlobalEventObservable { - mousedown$: Observable; - mouseup$: Observable; - mousemove$: Observable; - touchstart$: Observable; - touchend$: Observable; - touchmove$: Observable; - moveStart$: Observable; - moveEnd$: Observable; - move$: Observable; - drag$: Observable; - destroy(): void; -} - -export interface EventBus { - on(eventName: string): Observable; - emit(eventName: string, data?: any): void; -} diff --git a/packages-legacy/vuerd/src/internal-types/helper.d.ts b/packages-legacy/vuerd/src/internal-types/helper.d.ts deleted file mode 100644 index 4f1267aa..00000000 --- a/packages-legacy/vuerd/src/internal-types/helper.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Subject } from 'rxjs'; - -import { Helper } from '@@types/core/helper'; - -export interface IHelper extends Helper { - keydown$: Subject; - setGhostText(ghostText: HTMLSpanElement): void; - setGhostInput(ghostInput: HTMLInputElement): void; - focus(): void; - blur(): void; - destroy(): void; -} diff --git a/packages-legacy/vuerd/src/internal-types/history.d.ts b/packages-legacy/vuerd/src/internal-types/history.d.ts deleted file mode 100644 index d31ad249..00000000 --- a/packages-legacy/vuerd/src/internal-types/history.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -export interface Command { - undo(): void; - redo(): void; -} - -export type CommandKey = keyof Command; - -export interface History extends Command { - hasUndo(): boolean; - hasRedo(): boolean; - push(command: Command): void; - clear(): void; - setLimit(limit: number): void; -} diff --git a/packages-legacy/vuerd/src/internal-types/panel.d.ts b/packages-legacy/vuerd/src/internal-types/panel.d.ts deleted file mode 100644 index ce48755e..00000000 --- a/packages-legacy/vuerd/src/internal-types/panel.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { Icon } from '@@types/core/panel'; - -export interface IIcon extends Icon { - size: number; -} diff --git a/packages-legacy/vuerd/src/internal-types/store.d.ts b/packages-legacy/vuerd/src/internal-types/store.d.ts deleted file mode 100644 index cac1485c..00000000 --- a/packages-legacy/vuerd/src/internal-types/store.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Observable, Subject } from 'rxjs'; - -import { CommandTypeAll } from '@@types/engine/command'; -import { Store } from '@@types/engine/store'; - -export interface IStore extends Store { - history$: Subject>; - change$: Observable>; - destroy(): void; -} diff --git a/packages-legacy/vuerd/src/vite-env.d.ts b/packages-legacy/vuerd/src/vite-env.d.ts deleted file mode 100644 index dbb4c627..00000000 --- a/packages-legacy/vuerd/src/vite-env.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// - -declare const __APP_VERSION__: string; diff --git a/packages-legacy/vuerd/theme/abyss.css b/packages-legacy/vuerd/theme/abyss.css deleted file mode 100644 index 6b7fd715..00000000 --- a/packages-legacy/vuerd/theme/abyss.css +++ /dev/null @@ -1,22 +0,0 @@ -:root { - --vuerd-theme-canvas: #000c18; - --vuerd-theme-table: #060621; - --vuerd-theme-table-active: #ddbb88; - --vuerd-theme-focus: #ddbb88; - --vuerd-theme-key-pk: #b4b400; - --vuerd-theme-key-fk: #dda8b1; - --vuerd-theme-key-pfk: #60b9c4; - --vuerd-theme-font: #cccccc; - --vuerd-theme-font-active: #ffffff; - --vuerd-theme-font-placeholder: rgba(204, 204, 204, 0.5); - --vuerd-theme-contextmenu: #181f2f; - --vuerd-theme-contextmenu-active: #08286b; - --vuerd-theme-edit: #ffc107; - --vuerd-theme-column-select: #08286b; - --vuerd-theme-column-active: #061940; - --vuerd-theme-minimap-shadow: #000000; - --vuerd-theme-scrollbar-thumb: rgba(31, 34, 48, 0.67); - --vuerd-theme-scrollbar-thumb-active: rgba(59, 63, 81, 0.53); - --vuerd-theme-menubar: #051336; - --vuerd-theme-visualization: #000c18; -} diff --git a/packages-legacy/vuerd/theme/kimbie-dark.css b/packages-legacy/vuerd/theme/kimbie-dark.css deleted file mode 100644 index 4f8434c6..00000000 --- a/packages-legacy/vuerd/theme/kimbie-dark.css +++ /dev/null @@ -1,22 +0,0 @@ -:root { - --vuerd-theme-canvas: #221a0f; - --vuerd-theme-table: #362712; - --vuerd-theme-table-active: #d3af86; - --vuerd-theme-focus: #d3af86; - --vuerd-theme-key-pk: #b4b400; - --vuerd-theme-key-fk: #dda8b1; - --vuerd-theme-key-pfk: #60b9c4; - --vuerd-theme-font: #cccccc; - --vuerd-theme-font-active: #ffffff; - --vuerd-theme-font-placeholder: rgba(204, 204, 204, 0.5); - --vuerd-theme-contextmenu: #362712; - --vuerd-theme-contextmenu-active: #7c5021; - --vuerd-theme-edit: #ffc107; - --vuerd-theme-column-select: #7c5021; - --vuerd-theme-column-active: rgb(124, 80, 33); - --vuerd-theme-minimap-shadow: #000000; - --vuerd-theme-scrollbar-thumb: rgba(121, 121, 121, 0.4); - --vuerd-theme-scrollbar-thumb-active: rgba(100, 100, 100, 0.7); - --vuerd-theme-menubar: #221a0f; - --vuerd-theme-visualization: #221a0f; -} diff --git a/packages-legacy/vuerd/theme/monokai-dimmed.css b/packages-legacy/vuerd/theme/monokai-dimmed.css deleted file mode 100644 index 603daa91..00000000 --- a/packages-legacy/vuerd/theme/monokai-dimmed.css +++ /dev/null @@ -1,22 +0,0 @@ -:root { - --vuerd-theme-canvas: #1e1e1e; - --vuerd-theme-table: #272727; - --vuerd-theme-table-active: #c07020; - --vuerd-theme-focus: #c07020; - --vuerd-theme-key-pk: #b4b400; - --vuerd-theme-key-fk: #dda8b1; - --vuerd-theme-key-pfk: #60b9c4; - --vuerd-theme-font: #cccccc; - --vuerd-theme-font-active: #ffffff; - --vuerd-theme-font-placeholder: rgba(204, 204, 204, 0.5); - --vuerd-theme-contextmenu: #272727; - --vuerd-theme-contextmenu-active: #707070; - --vuerd-theme-edit: #ffc107; - --vuerd-theme-column-select: #707070; - --vuerd-theme-column-active: #444444; - --vuerd-theme-minimap-shadow: #000000; - --vuerd-theme-scrollbar-thumb: rgba(121, 121, 121, 0.4); - --vuerd-theme-scrollbar-thumb-active: rgba(100, 100, 100, 0.7); - --vuerd-theme-menubar: #353535; - --vuerd-theme-visualization: #1e1e1e; -} diff --git a/packages-legacy/vuerd/theme/monokai.css b/packages-legacy/vuerd/theme/monokai.css deleted file mode 100644 index 995bc135..00000000 --- a/packages-legacy/vuerd/theme/monokai.css +++ /dev/null @@ -1,22 +0,0 @@ -:root { - --vuerd-theme-canvas: #272822; - --vuerd-theme-table: #1e1f1c; - --vuerd-theme-table-active: #f8f8f0; - --vuerd-theme-focus: #f8f8f0; - --vuerd-theme-key-pk: #b4b400; - --vuerd-theme-key-fk: #dda8b1; - --vuerd-theme-key-pfk: #60b9c4; - --vuerd-theme-font: #cccccc; - --vuerd-theme-font-active: #ffffff; - --vuerd-theme-font-placeholder: rgba(204, 204, 204, 0.5); - --vuerd-theme-contextmenu: #1e1f1c; - --vuerd-theme-contextmenu-active: #75715e; - --vuerd-theme-edit: #ffc107; - --vuerd-theme-column-select: #75715e; - --vuerd-theme-column-active: #3e3d32; - --vuerd-theme-minimap-shadow: #000000; - --vuerd-theme-scrollbar-thumb: rgba(121, 121, 121, 0.4); - --vuerd-theme-scrollbar-thumb-active: rgba(100, 100, 100, 0.7); - --vuerd-theme-menubar: #272822; - --vuerd-theme-visualization: #272822; -} diff --git a/packages-legacy/vuerd/theme/one-dark-pro.css b/packages-legacy/vuerd/theme/one-dark-pro.css deleted file mode 100644 index df410f32..00000000 --- a/packages-legacy/vuerd/theme/one-dark-pro.css +++ /dev/null @@ -1,22 +0,0 @@ -:root { - --vuerd-theme-canvas: #282c34; - --vuerd-theme-table: #21252b; - --vuerd-theme-table-active: #528bff; - --vuerd-theme-focus: #528bff; - --vuerd-theme-key-pk: #b4b400; - --vuerd-theme-key-fk: #dda8b1; - --vuerd-theme-key-pfk: #60b9c4; - --vuerd-theme-font: #cccccc; - --vuerd-theme-font-active: #ffffff; - --vuerd-theme-font-placeholder: rgba(204, 204, 204, 0.5); - --vuerd-theme-contextmenu: #21252b; - --vuerd-theme-contextmenu-active: #2c313a; - --vuerd-theme-edit: #ffc107; - --vuerd-theme-column-select: #2c313a; - --vuerd-theme-column-active: #292d35; - --vuerd-theme-minimap-shadow: #000000; - --vuerd-theme-scrollbar-thumb: rgba(78, 86, 102, 0.38); - --vuerd-theme-scrollbar-thumb-active: rgba(90, 99, 117, 0.5); - --vuerd-theme-menubar: #21252b; - --vuerd-theme-visualization: #282c34; -} diff --git a/packages-legacy/vuerd/theme/red.css b/packages-legacy/vuerd/theme/red.css deleted file mode 100644 index 51ed7d54..00000000 --- a/packages-legacy/vuerd/theme/red.css +++ /dev/null @@ -1,22 +0,0 @@ -:root { - --vuerd-theme-canvas: #390000; - --vuerd-theme-table: #330000; - --vuerd-theme-table-active: #970000; - --vuerd-theme-focus: #970000; - --vuerd-theme-key-pk: #b4b400; - --vuerd-theme-key-fk: #dda8b1; - --vuerd-theme-key-pfk: #60b9c4; - --vuerd-theme-font: #cccccc; - --vuerd-theme-font-active: #ffffff; - --vuerd-theme-font-placeholder: rgba(204, 204, 204, 0.5); - --vuerd-theme-contextmenu: #580000; - --vuerd-theme-contextmenu-active: #880000; - --vuerd-theme-edit: #ffc107; - --vuerd-theme-column-select: #880000; - --vuerd-theme-column-active: #800000; - --vuerd-theme-minimap-shadow: #000000; - --vuerd-theme-scrollbar-thumb: rgba(121, 121, 121, 0.4); - --vuerd-theme-scrollbar-thumb-active: rgba(100, 100, 100, 0.7); - --vuerd-theme-menubar: #580000; - --vuerd-theme-visualization: #390000; -} diff --git a/packages-legacy/vuerd/theme/solarized-dark.css b/packages-legacy/vuerd/theme/solarized-dark.css deleted file mode 100644 index 191b6e56..00000000 --- a/packages-legacy/vuerd/theme/solarized-dark.css +++ /dev/null @@ -1,22 +0,0 @@ -:root { - --vuerd-theme-canvas: #002b36; - --vuerd-theme-table: #00212b; - --vuerd-theme-table-active: #d30102; - --vuerd-theme-focus: #d30102; - --vuerd-theme-key-pk: #b4b400; - --vuerd-theme-key-fk: #dda8b1; - --vuerd-theme-key-pfk: #60b9c4; - --vuerd-theme-font: #93a1a1; - --vuerd-theme-font-active: #ffffff; - --vuerd-theme-font-placeholder: rgba(147, 161, 161, 0.67); - --vuerd-theme-contextmenu: #00212b; - --vuerd-theme-contextmenu-active: #005a6f; - --vuerd-theme-edit: #ffc107; - --vuerd-theme-column-select: #005a6f; - --vuerd-theme-column-active: rgb(0, 68, 84); - --vuerd-theme-minimap-shadow: #000000; - --vuerd-theme-scrollbar-thumb: rgba(121, 121, 121, 0.4); - --vuerd-theme-scrollbar-thumb-active: rgba(100, 100, 100, 0.7); - --vuerd-theme-menubar: #003847; - --vuerd-theme-visualization: #002b36; -} diff --git a/packages-legacy/vuerd/theme/solarized-light.css b/packages-legacy/vuerd/theme/solarized-light.css deleted file mode 100644 index 8728f1b3..00000000 --- a/packages-legacy/vuerd/theme/solarized-light.css +++ /dev/null @@ -1,22 +0,0 @@ -:root { - --vuerd-theme-canvas: #fdf6e3; - --vuerd-theme-table: #eee8d5; - --vuerd-theme-table-active: #657b83; - --vuerd-theme-focus: #657b83; - --vuerd-theme-key-pk: #b4b400; - --vuerd-theme-key-fk: #dda8b1; - --vuerd-theme-key-pfk: #60b9c4; - --vuerd-theme-font: #586e75; - --vuerd-theme-font-active: #000000; - --vuerd-theme-font-placeholder: rgba(88, 110, 117, 0.67); - --vuerd-theme-contextmenu: #eee8d5; - --vuerd-theme-contextmenu-active: #dfca88; - --vuerd-theme-edit: #ffc107; - --vuerd-theme-column-select: #dfca88; - --vuerd-theme-column-active: rgb(223, 202, 136); - --vuerd-theme-minimap-shadow: #a8a8a8; - --vuerd-theme-scrollbar-thumb: rgba(100, 100, 100, 0.4); - --vuerd-theme-scrollbar-thumb-active: rgba(100, 100, 100, 0.7); - --vuerd-theme-menubar: #ddd6c1; - --vuerd-theme-visualization: #fdf6e3; -} diff --git a/packages-legacy/vuerd/theme/tomorrow-night-blue.css b/packages-legacy/vuerd/theme/tomorrow-night-blue.css deleted file mode 100644 index 5484efd1..00000000 --- a/packages-legacy/vuerd/theme/tomorrow-night-blue.css +++ /dev/null @@ -1,22 +0,0 @@ -:root { - --vuerd-theme-canvas: #002451; - --vuerd-theme-table: #001c40; - --vuerd-theme-table-active: #ffffff; - --vuerd-theme-focus: #ffffff; - --vuerd-theme-key-pk: #b4b400; - --vuerd-theme-key-fk: #dda8b1; - --vuerd-theme-key-pfk: #60b9c4; - --vuerd-theme-font: #cccccc; - --vuerd-theme-font-active: #ffffff; - --vuerd-theme-font-placeholder: rgba(204, 204, 204, 0.5); - --vuerd-theme-contextmenu: #001733; - --vuerd-theme-contextmenu-active: rgba(255, 255, 255, 0.38); - --vuerd-theme-edit: #ffc107; - --vuerd-theme-column-select: rgb(100, 100, 100); - --vuerd-theme-column-active: rgb(120, 120, 120); - --vuerd-theme-minimap-shadow: #000000; - --vuerd-theme-scrollbar-thumb: rgba(121, 121, 121, 0.4); - --vuerd-theme-scrollbar-thumb-active: rgba(100, 100, 100, 0.7); - --vuerd-theme-menubar: #001733; - --vuerd-theme-visualization: #002451; -} diff --git a/packages-legacy/vuerd/theme/vscode-dark.css b/packages-legacy/vuerd/theme/vscode-dark.css deleted file mode 100644 index 676bd5ef..00000000 --- a/packages-legacy/vuerd/theme/vscode-dark.css +++ /dev/null @@ -1,22 +0,0 @@ -:root { - --vuerd-theme-canvas: #1e1e1e; - --vuerd-theme-table: #252526; - --vuerd-theme-table-active: #aeafad; - --vuerd-theme-focus: #aeafad; - --vuerd-theme-key-pk: #b4b400; - --vuerd-theme-key-fk: #dda8b1; - --vuerd-theme-key-pfk: #60b9c4; - --vuerd-theme-font: #cccccc; - --vuerd-theme-font-active: #ffffff; - --vuerd-theme-font-placeholder: #a6a6a6; - --vuerd-theme-contextmenu: #252526; - --vuerd-theme-contextmenu-active: #094771; - --vuerd-theme-edit: #ffc107; - --vuerd-theme-column-select: #094771; - --vuerd-theme-column-active: #2a2d2e; - --vuerd-theme-minimap-shadow: #000000; - --vuerd-theme-scrollbar-thumb: rgba(121, 121, 121, 0.4); - --vuerd-theme-scrollbar-thumb-active: rgba(100, 100, 100, 0.7); - --vuerd-theme-menubar: #333333; - --vuerd-theme-visualization: #1e1e1e; -} diff --git a/packages-legacy/vuerd/tsconfig.json b/packages-legacy/vuerd/tsconfig.json deleted file mode 100644 index c0711e50..00000000 --- a/packages-legacy/vuerd/tsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "baseUrl": ".", - "paths": { - "@/*": ["src/*"], - "@@types/*": ["types/*"] - } - }, - "include": ["src/**/*.ts", "types/**/*.ts"], - "exclude": ["node_modules"] -} diff --git a/packages-legacy/vuerd/types/components/ERDEditorElement.d.ts b/packages-legacy/vuerd/types/components/ERDEditorElement.d.ts deleted file mode 100644 index a48fe8f1..00000000 --- a/packages-legacy/vuerd/types/components/ERDEditorElement.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { ExtensionConfig } from '../core/extension'; -import { Keymap } from '../core/keymap'; -import { LoadLiquibaseData } from '../core/liquibaseParser'; -import { Theme } from '../core/theme'; -import { Database } from '../engine/store/canvas.state'; - -export interface ERDEditorProps { - width: number; - height: number; - automaticLayout: boolean; - readonly: boolean; -} - -export interface ERDEditorElement extends ERDEditorProps, HTMLElement { - value: string; - focus(): void; - blur(): void; - clear(): void; - initLoadJson(json: string): void; - loadSQLDDL(sql: string): void; - loadLiquibase(data: LoadLiquibaseData): void; - setTheme(theme: Partial): void; - setKeymap(keymap: Partial): void; - getSQLDDL(database?: Database): string; - extension(config: Partial): void; -} diff --git a/packages-legacy/vuerd/types/core/ERDEditorContext.d.ts b/packages-legacy/vuerd/types/core/ERDEditorContext.d.ts deleted file mode 100644 index 6a768353..00000000 --- a/packages-legacy/vuerd/types/core/ERDEditorContext.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Command } from '../engine/command'; -import { Store } from '../engine/store'; -import { Snapshot } from '../engine/store/snapshot'; -import { Helper } from './helper'; -import { Keymap } from './keymap'; -import { Theme } from './theme'; - -export interface ERDEditorContext { - theme: Theme; - keymap: Keymap; - store: Store; - snapshots: Snapshot[]; - command: Command; - helper: Helper; -} diff --git a/packages-legacy/vuerd/types/core/contextmenu.d.ts b/packages-legacy/vuerd/types/core/contextmenu.d.ts deleted file mode 100644 index 06218398..00000000 --- a/packages-legacy/vuerd/types/core/contextmenu.d.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Icon } from './panel'; - -export interface MenuOptions { - nameWidth?: number; - keymapWidth?: number; - close?: boolean; -} - -export interface Menu { - name: string; - keymap?: string; - keymapTooltip?: string; - icon?: Icon; - iconBase64?: string; - children?: Menu[]; - options?: MenuOptions; - execute?(): void; -} diff --git a/packages-legacy/vuerd/types/core/extension.d.ts b/packages-legacy/vuerd/types/core/extension.d.ts deleted file mode 100644 index 177382fd..00000000 --- a/packages-legacy/vuerd/types/core/extension.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { PanelConfig } from './panel'; - -export interface ExtensionConfig { - panels: PanelConfig[]; - excludePanel: RegExp[]; -} - -export declare function extension(config: Partial): void; diff --git a/packages-legacy/vuerd/types/core/file.d.ts b/packages-legacy/vuerd/types/core/file.d.ts deleted file mode 100644 index 7abee7a0..00000000 --- a/packages-legacy/vuerd/types/core/file.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -export interface ExportOptions { - fileName: string; - saveDirectly?: boolean; -} - -export declare function setExportFileCallback( - callback: (blob: Blob, options: ExportOptions) => void -): void; - -export interface ImportOptions { - type: 'json' | 'sql'; - accept: string; -} - -export declare function setImportFileCallback( - callback: (options: ImportOptions) => void -): void; diff --git a/packages-legacy/vuerd/types/core/helper.d.ts b/packages-legacy/vuerd/types/core/helper.d.ts deleted file mode 100644 index 7bf8323e..00000000 --- a/packages-legacy/vuerd/types/core/helper.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -export interface Helper { - getTextWidth(value: string): number; - getTextWidthLegacy(value: string): number; - getFastTextWidth(value: string): number; -} diff --git a/packages-legacy/vuerd/types/core/icon.d.ts b/packages-legacy/vuerd/types/core/icon.d.ts deleted file mode 100644 index f96126fb..00000000 --- a/packages-legacy/vuerd/types/core/icon.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -export interface IconDefinition { - prefix: string; - iconName: string; - icon: [ - number, // width - number, // height - string[] | undefined, // ligatures - string | undefined, // unicode - string // svgPathData - ]; -} - -export declare function addIcon(...newIcons: IconDefinition[]): void; diff --git a/packages-legacy/vuerd/types/core/keymap.d.ts b/packages-legacy/vuerd/types/core/keymap.d.ts deleted file mode 100644 index 55cce171..00000000 --- a/packages-legacy/vuerd/types/core/keymap.d.ts +++ /dev/null @@ -1,44 +0,0 @@ -export interface KeymapOption { - metaKey?: boolean; - ctrlKey?: boolean; - altKey?: boolean; - shiftKey?: boolean; - key?: string; - preventDefault?: boolean; - stopPropagation?: boolean; -} - -export interface Keymap { - edit: KeymapOption[]; - stop: KeymapOption[]; - find: KeymapOption[]; - undo: KeymapOption[]; - redo: KeymapOption[]; - addTable: KeymapOption[]; - addColumn: KeymapOption[]; - addMemo: KeymapOption[]; - removeTable: KeymapOption[]; - removeColumn: KeymapOption[]; - primaryKey: KeymapOption[]; - selectAllTable: KeymapOption[]; - selectAllColumn: KeymapOption[]; - copyColumn: KeymapOption[]; - pasteColumn: KeymapOption[]; - relationshipZeroOne: KeymapOption[]; - relationshipZeroN: KeymapOption[]; - relationshipOneOnly: KeymapOption[]; - relationshipOneN: KeymapOption[]; - tableProperties: KeymapOption[]; - zoomIn: KeymapOption[]; - zoomOut: KeymapOption[]; -} - -export type KeymapKey = keyof Keymap; - -export type MultipleKey = 'altKey' | 'metaKey' | 'ctrlKey' | 'shiftKey'; - -export type RelationshipKeymapName = - | 'relationshipZeroOne' - | 'relationshipZeroN' - | 'relationshipOneN' - | 'relationshipOneOnly'; diff --git a/packages-legacy/vuerd/types/core/observable.d.ts b/packages-legacy/vuerd/types/core/observable.d.ts deleted file mode 100644 index c7870f10..00000000 --- a/packages-legacy/vuerd/types/core/observable.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -export type PropName = string | number | symbol; -export type Observer = () => void; -export type Unsubscribe = () => void; -export type SubjectObserver = (value: T) => void; - -export declare function observable(raw: T): T; -export declare function observer(f: Observer): Unsubscribe; -export declare function watch( - proxy: any, - observer: SubjectObserver -): Unsubscribe; diff --git a/packages-legacy/vuerd/types/core/panel.d.ts b/packages-legacy/vuerd/types/core/panel.d.ts deleted file mode 100644 index ba03a1e2..00000000 --- a/packages-legacy/vuerd/types/core/panel.d.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { ERDEditorContext } from './ERDEditorContext'; - -export interface Panel { - render(): HTMLElement; - beforeMount?(): void; - mounted?(): void; - unmounted?(): void; - beforeFirstUpdate?(): void; - firstUpdated?(): void; - beforeUpdate?(): void; - updated?(): void; -} - -export interface PanelProps { - width: number; - height: number; -} - -export interface PanelClass { - new (props: PanelProps, api: ERDEditorContext): Panel; -} - -export interface Icon { - prefix: string; - name: string; - size?: number; -} - -export interface PanelConfig { - type: PanelClass; - icon: Icon; - name?: string; - key: string; -} diff --git a/packages-legacy/vuerd/types/core/theme.d.ts b/packages-legacy/vuerd/types/core/theme.d.ts deleted file mode 100644 index 8e726c5c..00000000 --- a/packages-legacy/vuerd/types/core/theme.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -export interface Theme { - canvas: string; - table: string; - tableActive: string; - focus: string; - keyPK: string; - keyFK: string; - keyPFK: string; - font: string; - fontActive: string; - fontPlaceholder: string; - contextmenu: string; - contextmenuActive: string; - edit: string; - columnSelect: string; - columnActive: string; - minimapShadow: string; - scrollbarThumb: string; - scrollbarThumbActive: string; - menubar: string; - visualization: string; - diffAdd: string; - diffModify: string; - diffRemove: string; -} - -export type ThemeKey = keyof Theme; diff --git a/packages-legacy/vuerd/types/engine/command/canvas.cmd.d.ts b/packages-legacy/vuerd/types/engine/command/canvas.cmd.d.ts deleted file mode 100644 index 33c3faed..00000000 --- a/packages-legacy/vuerd/types/engine/command/canvas.cmd.d.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { - BracketType, - ColumnType, - Database, - HighlightTheme, - Language, - NameCase, - ShowKey, -} from '../store/canvas.state'; - -export interface MoveCanvas { - scrollTop: number; - scrollLeft: number; -} - -export interface MovementCanvas { - movementX: number; - movementY: number; -} - -export interface ResizeCanvas { - width: number; - height: number; -} - -export interface ZoomCanvas { - zoomLevel: number; -} - -export interface MovementZoomCanvas { - movementZoomLevel: number; -} - -export interface ChangeCanvasShow { - showKey: ShowKey; - value: boolean; -} - -export interface ChangeDatabase { - database: Database; -} - -export interface ChangeDatabaseName { - value: string; -} - -export interface ChangeCanvasType { - canvasType: string; -} - -export interface ChangeLanguage { - language: Language; -} - -export interface ChangeNameCase { - nameCase: NameCase; -} - -export interface ChangeRelationshipDataTypeSync { - value: boolean; -} - -export interface ChangeRelationshipOptimization { - value: boolean; -} - -export interface MoveColumnOrder { - columnType: ColumnType; - targetColumnType: ColumnType; -} - -export interface ChangeHighlightTheme { - highlightTheme: HighlightTheme; -} - -export interface ChangeBracketType { - bracketType: BracketType; -} - -export interface ChangePluginSerialization { - key: string; - value: string; -} - -export interface CanvasCommandMap { - 'canvas.move': MoveCanvas; - 'canvas.movement': MovementCanvas; - 'canvas.resize': ResizeCanvas; - 'canvas.zoom': ZoomCanvas; - 'canvas.movementZoom': MovementZoomCanvas; - 'canvas.changeShow': ChangeCanvasShow; - 'canvas.changeDatabase': ChangeDatabase; - 'canvas.changeDatabaseName': ChangeDatabaseName; - 'canvas.changeCanvasType': ChangeCanvasType; - 'canvas.changeLanguage': ChangeLanguage; - 'canvas.changeTableCase': ChangeNameCase; - 'canvas.changeColumnCase': ChangeNameCase; - 'canvas.changeRelationshipDataTypeSync': ChangeRelationshipDataTypeSync; - 'canvas.changeRelationshipOptimization': ChangeRelationshipOptimization; - 'canvas.moveColumnOrder': MoveColumnOrder; - 'canvas.changeHighlightTheme': ChangeHighlightTheme; - 'canvas.changeBracketType': ChangeBracketType; - 'canvas.changePluginSerialization': ChangePluginSerialization; -} diff --git a/packages-legacy/vuerd/types/engine/command/canvas.cmd.helper.d.ts b/packages-legacy/vuerd/types/engine/command/canvas.cmd.helper.d.ts deleted file mode 100644 index 62ab7faf..00000000 --- a/packages-legacy/vuerd/types/engine/command/canvas.cmd.helper.d.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { Store } from '../store'; -import { - BracketType, - ColumnType, - Database, - HighlightTheme, - Language, - NameCase, - ShowKey, -} from '../store/canvas.state'; -import { CommandType } from './index'; - -export declare function moveCanvas( - scrollTop: number, - scrollLeft: number -): CommandType<'canvas.move'>; - -export declare function movementCanvas( - movementX: number, - movementY: number -): CommandType<'canvas.movement'>; - -export declare function resizeCanvas( - width: number, - height: number -): CommandType<'canvas.resize'>; - -export declare function zoomCanvas( - zoomLevel: number -): CommandType<'canvas.zoom'>; - -export declare function movementZoomCanvas( - movementZoomLevel: number -): CommandType<'canvas.movementZoom'>; - -export declare function changeCanvasShow( - store: Store, - showKey: ShowKey -): CommandType<'canvas.changeShow'>; - -export declare function changeDatabase( - database: Database -): CommandType<'canvas.changeDatabase'>; - -export declare function changeDatabaseName( - value: string -): CommandType<'canvas.changeDatabaseName'>; - -export declare function changeCanvasType( - canvasType: string -): CommandType<'canvas.changeCanvasType'>; - -export declare function changeLanguage( - language: Language -): CommandType<'canvas.changeLanguage'>; - -export declare function changeTableCase( - nameCase: NameCase -): CommandType<'canvas.changeTableCase'>; - -export declare function changeColumnCase( - nameCase: NameCase -): CommandType<'canvas.changeColumnCase'>; - -export declare function changeRelationshipDataTypeSync( - value: boolean -): CommandType<'canvas.changeRelationshipDataTypeSync'>; - -export declare function changeRelationshipOptimization( - value: boolean -): CommandType<'canvas.changeRelationshipOptimization'>; - -export declare function moveColumnOrder( - columnType: ColumnType, - targetColumnType: ColumnType -): CommandType<'canvas.moveColumnOrder'>; - -export declare function changeHighlightTheme( - highlightTheme: HighlightTheme -): CommandType<'canvas.changeHighlightTheme'>; - -export declare function changeBracketType( - bracketType: BracketType -): CommandType<'canvas.changeBracketType'>; - -export declare function changePluginSerialization( - key: string, - value: string -): CommandType<'canvas.changePluginSerialization'>; diff --git a/packages-legacy/vuerd/types/engine/command/column.cmd.d.ts b/packages-legacy/vuerd/types/engine/command/column.cmd.d.ts deleted file mode 100644 index b55d8f0c..00000000 --- a/packages-legacy/vuerd/types/engine/command/column.cmd.d.ts +++ /dev/null @@ -1,87 +0,0 @@ -import { Column, ColumnOption } from '../store/table.state'; - -export interface AddColumn { - id: string; - tableId: string; -} - -interface AddCustomColumnUI { - active: boolean; - pk: boolean; - fk: boolean; - pfk: boolean; -} - -interface AddCustomColumnValue { - name: string; - comment: string; - dataType: string; - default: string; - widthName: number; - widthComment: number; - widthDataType: number; - widthDefault: number; -} - -export interface AddCustomColumn { - tableId: string; - id: string; - option: ColumnOption | null; - ui: AddCustomColumnUI | null; - value: AddCustomColumnValue | null; -} - -export interface RemoveColumn { - tableId: string; - columnIds: string[]; -} - -export interface ChangeColumnValue { - tableId: string; - columnId: string; - value: string; - width: number; -} - -export interface ChangeColumnOption { - tableId: string; - columnId: string; - value: boolean; -} - -export interface MoveColumn { - tableId: string; - columnIds: string[]; - targetTableId: string; - targetColumnId: string; -} - -export interface ActiveColumn { - tableId: string; - columnIds: string[]; -} - -export interface LoadColumn { - tableId: string; - columns: Column[]; - indexList: number[]; -} - -export interface ColumnCommandMap { - 'column.add': Array; - 'column.addCustom': Array; - 'column.remove': RemoveColumn; - 'column.removeOnly': RemoveColumn; - 'column.changeName': ChangeColumnValue; - 'column.changeComment': ChangeColumnValue; - 'column.changeDataType': ChangeColumnValue; - 'column.changeDefault': ChangeColumnValue; - 'column.changeAutoIncrement': ChangeColumnOption; - 'column.changePrimaryKey': ChangeColumnOption; - 'column.changeUnique': ChangeColumnOption; - 'column.changeNotNull': ChangeColumnOption; - 'column.move': MoveColumn; - 'column.active': Array; - 'column.activeEnd': Array; - 'column.load': LoadColumn; -} diff --git a/packages-legacy/vuerd/types/engine/command/column.cmd.helper.d.ts b/packages-legacy/vuerd/types/engine/command/column.cmd.helper.d.ts deleted file mode 100644 index 8e1752bb..00000000 --- a/packages-legacy/vuerd/types/engine/command/column.cmd.helper.d.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { Helper } from '../../core/helper'; -import { Store } from '../store'; -import { Relationship } from '../store/relationship.state'; -import { Column, ColumnOption } from '../store/table.state'; -import { AddCustomColumnUI, AddCustomColumnValue } from './column.cmd'; -import { CommandType } from './index'; - -export * from './column.cmd.helper.gen'; - -export declare function addColumn( - store: Store, - tableId?: string -): CommandType<'column.add'>; - -export declare function addCustomColumn( - option: ColumnOption | null, - ui: AddCustomColumnUI | null, - value: AddCustomColumnValue | null, - tableIds: string[] -): CommandType<'column.addCustom'>; - -export declare function removeColumn( - tableId: string, - columnIds: string[] -): CommandType<'column.remove'>; - -export declare function removeOnlyColumn( - tableId: string, - columnIds: string[] -): CommandType<'column.removeOnly'>; - -export declare function changeColumnName( - helper: Helper, - tableId: string, - columnId: string, - value: string -): CommandType<'column.changeName'>; - -export declare function changeColumnComment( - helper: Helper, - tableId: string, - columnId: string, - value: string -): CommandType<'column.changeComment'>; - -export declare function changeColumnDataType( - helper: Helper, - tableId: string, - columnId: string, - value: string -): CommandType<'column.changeDataType'>; - -export declare function changeColumnDefault( - helper: Helper, - tableId: string, - columnId: string, - value: string -): CommandType<'column.changeDefault'>; - -export declare function changeColumnAutoIncrement( - store: Store, - tableId: string, - columnId: string -): CommandType<'column.changeAutoIncrement'>; - -export declare function changeColumnPrimaryKey( - store: Store, - tableId: string, - columnId: string -): CommandType<'column.changePrimaryKey'>; - -export declare function changeColumnUnique( - store: Store, - tableId: string, - columnId: string -): CommandType<'column.changeUnique'>; - -export declare function changeColumnNotNull( - store: Store, - tableId: string, - columnId: string -): CommandType<'column.changeNotNull'>; - -export declare function moveColumn( - tableId: string, - columnIds: string[], - targetTableId: string, - targetColumnId: string -): CommandType<'column.move'>; - -export declare function activeColumn( - relationship: Relationship -): CommandType<'column.active'>; - -export declare function activeEndColumn( - relationship: Relationship -): CommandType<'column.activeEnd'>; - -export declare function loadColumn( - tableId: string, - columns: Column[], - indexList: number[] -): CommandType<'column.load'>; diff --git a/packages-legacy/vuerd/types/engine/command/column.cmd.helper.gen.d.ts b/packages-legacy/vuerd/types/engine/command/column.cmd.helper.gen.d.ts deleted file mode 100644 index 4c0a8134..00000000 --- a/packages-legacy/vuerd/types/engine/command/column.cmd.helper.gen.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { Store } from '../store'; -import { CommandType } from './index'; - -export declare function addColumn$( - store: Store, - tableId?: string -): Generator | CommandType<'editor.focusColumn'>>; - -export declare function removeColumn$( - store: Store, - tableId: string, - columnIds: string[] -): Generator< - | CommandType<'column.remove'> - | CommandType<'editor.focusTable'> - | CommandType<'editor.focusColumn'> ->; - -export declare function changeColumnPrimaryKey$( - store: Store, - tableId: string, - columnId: string -): Generator< - CommandType<'column.changePrimaryKey'> | CommandType<'column.changeNotNull'> ->; - -export declare function moveColumn$( - store: Store, - tableId: string, - columnIds: string[], - targetTableId: string, - targetColumnId: string -): Generator< - | CommandType<'column.move'> - | CommandType<'editor.draggableColumn'> - | CommandType<'table.select'> - | CommandType<'editor.focusColumn'> ->; diff --git a/packages-legacy/vuerd/types/engine/command/editor.cmd.d.ts b/packages-legacy/vuerd/types/engine/command/editor.cmd.d.ts deleted file mode 100644 index e98c7ac5..00000000 --- a/packages-legacy/vuerd/types/engine/command/editor.cmd.d.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { ColumnType } from '../store/canvas.state'; -import { - DraggableColumn, - MoveKey, - TableType, - Viewport, -} from '../store/editor.state'; -import { RelationshipType } from '../store/relationship.state'; -import { FilterCommandMap } from './editor/filter.cmd'; - -export interface HasUndoRedo { - hasUndo: boolean; - hasRedo: boolean; -} - -export interface FocusTable { - tableId: string; - focusType?: TableType; -} - -export interface FocusColumn { - tableId: string; - columnId: string; - focusType: ColumnType; - ctrlKey: boolean; - shiftKey: boolean; -} - -export interface FocusMoveTable { - moveKey: MoveKey; - shiftKey: boolean; -} - -export interface DrawStartRelationship { - relationshipType: RelationshipType; -} - -export interface DrawStartAddRelationship { - tableId: string; -} - -export interface DrawRelationship { - x: number; - y: number; -} - -export interface LoadJson { - value: string; -} - -export interface CopyColumn { - tableId: string; - columnIds: string[]; -} - -export interface ReadonlyEditor { - readonly: boolean; -} - -export interface EditorCommandMap extends FilterCommandMap { - 'editor.hasUndoRedo': HasUndoRedo; - 'editor.focusTable': FocusTable; - 'editor.focusColumn': FocusColumn; - 'editor.focusTableEnd': null; - 'editor.focusMoveTable': FocusMoveTable; - 'editor.editTable': null; - 'editor.editTableEnd': null; - 'editor.selectAllColumn': null; - 'editor.drawStartRelationship': DrawStartRelationship; - 'editor.drawStartAddRelationship': DrawStartAddRelationship; - 'editor.drawEndRelationship': null; - 'editor.drawRelationship': DrawRelationship; - 'editor.draggableColumn': DraggableColumn; - 'editor.draggableColumnEnd': null; - 'editor.loadJson': LoadJson; - 'editor.initLoadJson': LoadJson; - 'editor.clear': null; - 'editor.initClear': null; - 'editor.changeViewport': Viewport; - 'editor.copyColumn': CopyColumn; - 'editor.findActive': null; - 'editor.findActiveEnd': null; - 'editor.readonly': ReadonlyEditor; -} diff --git a/packages-legacy/vuerd/types/engine/command/editor.cmd.helper.d.ts b/packages-legacy/vuerd/types/engine/command/editor.cmd.helper.d.ts deleted file mode 100644 index 4f16e736..00000000 --- a/packages-legacy/vuerd/types/engine/command/editor.cmd.helper.d.ts +++ /dev/null @@ -1,91 +0,0 @@ -import { Store } from '../store'; -import { ColumnType } from '../store/canvas.state'; -import { MoveKey, TableType } from '../store/editor.state'; -import { RelationshipType } from '../store/relationship.state'; -import { CommandType } from './index'; - -export * from './editor.cmd.helper.gen'; -export * from './editor/filter.cmd.helper'; - -export declare function hasUndoRedo( - hasUndo: boolean, - hasRedo: boolean -): CommandType<'editor.hasUndoRedo'>; - -export declare function focusTable( - tableId: string, - focusType: TableType -): CommandType<'editor.focusTable'>; - -export declare function focusColumn( - tableId: string, - columnId: string, - focusType: ColumnType, - ctrlKey: boolean, - shiftKey: boolean -): CommandType<'editor.focusColumn'>; - -export declare function focusTableEnd(): CommandType<'editor.focusTableEnd'>; - -export declare function focusMoveTable( - moveKey: MoveKey, - shiftKey: boolean -): CommandType<'editor.focusMoveTable'>; - -export declare function editTable(): CommandType<'editor.editTable'>; - -export declare function editTableEnd(): CommandType<'editor.editTableEnd'>; - -export declare function selectAllColumn(): CommandType<'editor.selectAllColumn'>; - -export declare function drawStartRelationship( - relationshipType: RelationshipType -): CommandType<'editor.drawStartRelationship'>; - -export declare function drawStartAddRelationship( - tableId: string -): CommandType<'editor.drawStartAddRelationship'>; - -export declare function drawEndRelationship(): CommandType<'editor.drawEndRelationship'>; - -export declare function drawRelationship( - x: number, - y: number -): CommandType<'editor.drawRelationship'>; - -export declare function draggableColumn( - store: Store, - tableId: string, - columnId: string, - ctrlKey: boolean -): CommandType<'editor.draggableColumn'>; - -export declare function draggableColumnEnd(): CommandType<'editor.draggableColumnEnd'>; - -export declare function loadJson(value: string): CommandType<'editor.loadJson'>; - -export declare function initLoadJson( - value: string -): CommandType<'editor.initLoadJson'>; - -export declare function clear(): CommandType<'editor.clear'>; - -export declare function initClear(): CommandType<'editor.initClear'>; - -export declare function changeViewport( - width: number, - height: number -): CommandType<'editor.changeViewport'>; - -export declare function copyColumn( - tableId: string, - columnIds: string[] -): CommandType<'editor.copyColumn'>; - -export declare function findActive(): CommandType<'editor.findActive'>; - -export declare function findActiveEnd(): CommandType<'editor.findActiveEnd'>; - -export declare function readonlyEditor( - readonly: boolean -): CommandType<'editor.readonly'>; diff --git a/packages-legacy/vuerd/types/engine/command/editor.cmd.helper.gen.d.ts b/packages-legacy/vuerd/types/engine/command/editor.cmd.helper.gen.d.ts deleted file mode 100644 index 27c238d0..00000000 --- a/packages-legacy/vuerd/types/engine/command/editor.cmd.helper.gen.d.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { Store } from '../store'; -import { MoveKey } from '../store/editor.state'; -import { RelationshipType } from '../store/relationship.state'; -import { addColumn$ } from './column.cmd.helper'; -import { CommandType } from './index'; -import { selectEndTable$ } from './table.cmd.helper.gen'; - -export declare function focusMoveTable$( - store: Store, - moveKey: MoveKey, - shiftKey: boolean -): Generator< - CommandType<'editor.focusMoveTable'> | ReturnType ->; - -export declare function drawStartRelationship$( - store: Store, - relationshipType: RelationshipType -): Generator< - | CommandType<'editor.drawStartRelationship'> - | CommandType<'editor.drawEndRelationship'> ->; - -export declare function drawStartAddRelationship$( - store: Store, - tableId: string -): Generator< - | CommandType<'editor.drawStartAddRelationship'> - | CommandType<'column.addCustom'> - | CommandType<'editor.focusColumn'> ->; - -export declare function loadJson$( - value: string -): Generator | CommandType<'editor.loadJson'>>; - -export declare function initLoadJson$( - value: string -): Generator< - CommandType<'editor.initClear'> | CommandType<'editor.initLoadJson'> ->; - -export declare function pasteColumn$( - store: Store -): Generator>; - -export declare function findActive$(): Generator< - | CommandType<'editor.findActive'> - | ReturnType - | CommandType<'memo.selectEnd'> ->; - -export declare function readonlyEditor$( - readonly: boolean -): Generator< - | CommandType<'editor.editTableEnd'> - | CommandType<'editor.drawEndRelationship'> - | CommandType<'editor.draggableColumnEnd'> - | CommandType<'editor.readonly'> ->; diff --git a/packages-legacy/vuerd/types/engine/command/editor/filter.cmd.d.ts b/packages-legacy/vuerd/types/engine/command/editor/filter.cmd.d.ts deleted file mode 100644 index 2189cda3..00000000 --- a/packages-legacy/vuerd/types/engine/command/editor/filter.cmd.d.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { MoveKey } from '../../store/editor.state'; -import { - ColumnType, - Draggable, - FocusFilterType, - OperatorType, - TextFilterCode, -} from '../../store/editor/filter.state'; - -export interface AddFilter { - id: string; -} - -export interface RemoveFilter { - filterIds: string[]; -} - -export interface ChangeFilterColumnType { - filterId: string; - columnType: ColumnType; -} - -export interface changeFilterCode { - filterId: string; - filterCode: TextFilterCode; -} - -export interface ChangeFilterValue { - filterId: string; - value: string; -} - -export interface MoveFilter { - filterIds: string[]; - targetFilterId: string; -} - -export interface ChangeOperatorType { - operatorType: OperatorType; -} - -export interface Focus { - focusType?: 'operatorType'; -} - -export interface FocusFilter { - filterId: string; - focusType: FocusFilterType; - ctrlKey: boolean; - shiftKey: boolean; -} - -export interface FocusMove { - moveKey: MoveKey; - shiftKey: boolean; -} - -export interface FilterCommandMap { - 'editor.filter.active': null; - 'editor.filter.activeEnd': null; - 'editor.filter.add': AddFilter; - 'editor.filter.remove': RemoveFilter; - 'editor.filter.changeColumnType': ChangeFilterColumnType; - 'editor.filter.changeFilterCode': changeFilterCode; - 'editor.filter.changeValue': ChangeFilterValue; - 'editor.filter.move': MoveFilter; - 'editor.filter.changeOperatorType': ChangeOperatorType; - 'editor.filter.focus': Focus; - 'editor.filter.focusFilter': FocusFilter; - 'editor.filter.focusEnd': null; - 'editor.filter.focusMove': FocusMove; - 'editor.filter.edit': null; - 'editor.filter.editEnd': null; - 'editor.filter.selectAll': null; - 'editor.filter.draggable': Draggable; - 'editor.filter.draggableEnd': null; -} diff --git a/packages-legacy/vuerd/types/engine/command/editor/filter.cmd.helper.d.ts b/packages-legacy/vuerd/types/engine/command/editor/filter.cmd.helper.d.ts deleted file mode 100644 index 93d293e0..00000000 --- a/packages-legacy/vuerd/types/engine/command/editor/filter.cmd.helper.d.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { Store } from '../../store'; -import { MoveKey } from '../../store/editor.state'; -import { - ColumnType, - FocusFilterType, - OperatorType, - TextFilterCode, -} from '../../store/editor/filter.state'; -import { CommandType } from '../index'; - -export * from './filter.cmd.helper.gen'; - -export declare function filterActive(): CommandType<'editor.filter.active'>; - -export declare function filterActiveEnd(): CommandType<'editor.filter.activeEnd'>; - -export declare function addFilter(): CommandType<'editor.filter.add'>; - -export declare function removeFilter( - filterIds: string[] -): CommandType<'editor.filter.remove'>; - -export declare function changeFilterColumnType( - filterId: string, - columnType: ColumnType -): CommandType<'editor.filter.changeColumnType'>; - -export declare function changeFilterCode( - filterId: string, - filterCode: TextFilterCode -): CommandType<'editor.filter.changeFilterCode'>; - -export declare function changeFilterValue( - filterId: string, - value: string -): CommandType<'editor.filter.changeValue'>; - -export declare function moveFilter( - filterIds: string[], - targetFilterId: string -): CommandType<'editor.filter.move'>; - -export declare function changeFilterOperatorType( - operatorType: OperatorType -): CommandType<'editor.filter.changeOperatorType'>; - -export declare function filterFocus( - focusType?: 'operatorType' -): CommandType<'editor.filter.focus'>; - -export declare function focusFilter( - filterId: string, - focusType: FocusFilterType, - ctrlKey: boolean, - shiftKey: boolean -): CommandType<'editor.filter.focusFilter'>; - -export declare function focusFilterEnd(): CommandType<'editor.filter.focusEnd'>; - -export declare function focusMoveFilter( - moveKey: MoveKey, - shiftKey: boolean -): CommandType<'editor.filter.focusMove'>; - -export declare function editFilter(): CommandType<'editor.filter.edit'>; - -export declare function editFilterEnd(): CommandType<'editor.filter.editEnd'>; - -export declare function selectAllFilter(): CommandType<'editor.filter.selectAll'>; - -export declare function draggableFilter( - store: Store, - filterId: string, - ctrlKey: boolean -): CommandType<'editor.filter.draggable'>; - -export declare function draggableFilterEnd(): CommandType<'editor.filter.draggableEnd'>; diff --git a/packages-legacy/vuerd/types/engine/command/editor/filter.cmd.helper.gen.d.ts b/packages-legacy/vuerd/types/engine/command/editor/filter.cmd.helper.gen.d.ts deleted file mode 100644 index b505b79e..00000000 --- a/packages-legacy/vuerd/types/engine/command/editor/filter.cmd.helper.gen.d.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Store } from '../../store'; -import { MoveKey } from '../../store/editor.state'; -import { CommandType } from '../index'; - -export declare function filterActive$(): Generator< - CommandType<'editor.filter.active'> | CommandType<'editor.filter.focus'> ->; - -export declare function filterActiveEnd$(): Generator< - CommandType<'editor.filter.activeEnd'> | CommandType<'editor.filter.focusEnd'> ->; - -export declare function addFilter$(): Generator< - CommandType<'editor.filter.add'> | CommandType<'editor.filter.focusFilter'> ->; - -export declare function removeFilter$( - store: Store, - filterIds: string[] -): Generator< - | CommandType<'editor.filter.remove'> - | CommandType<'editor.filter.focus'> - | CommandType<'editor.filter.focusFilter'> ->; - -export declare function focusMoveFilter$( - store: Store, - moveKey: MoveKey, - shiftKey: boolean -): Generator< - CommandType<'editor.filter.focusMove'> | ReturnType ->; diff --git a/packages-legacy/vuerd/types/engine/command/index.cmd.d.ts b/packages-legacy/vuerd/types/engine/command/index.cmd.d.ts deleted file mode 100644 index 0ed2c5ba..00000000 --- a/packages-legacy/vuerd/types/engine/command/index.cmd.d.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { Index, OrderType } from '../store/table.state'; - -export interface AddIndex { - id: string; - tableId: string; -} - -export interface RemoveIndex { - indexIds: string[]; -} - -export interface ChangeIndexValue { - indexId: string; - value: string; -} - -export interface ChangeIndexUnique { - indexId: string; - value: boolean; -} - -export interface AddIndexColumn { - indexId: string; - columnId: string; -} - -export interface RemoveIndexColumn { - indexId: string; - columnId: string; -} - -export interface MoveIndexColumn { - indexId: string; - columnId: string; - targetColumnId: string; -} - -export interface ChangeIndexColumnOrderType { - indexId: string; - columnId: string; - value: OrderType; -} - -export interface IndexCommandMap { - 'index.add': AddIndex; - 'index.remove': RemoveIndex; - 'index.changeName': ChangeIndexValue; - 'index.changeUnique': ChangeIndexUnique; - 'index.addColumn': AddIndexColumn; - 'index.removeColumn': RemoveIndexColumn; - 'index.moveColumn': MoveIndexColumn; - 'index.changeColumnOrderType': ChangeIndexColumnOrderType; - 'index.load': Index; -} diff --git a/packages-legacy/vuerd/types/engine/command/index.cmd.helper.d.ts b/packages-legacy/vuerd/types/engine/command/index.cmd.helper.d.ts deleted file mode 100644 index 13f79579..00000000 --- a/packages-legacy/vuerd/types/engine/command/index.cmd.helper.d.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { Index, OrderType } from '../store/table.state'; -import { CommandType } from './index'; - -export function addIndex(tableId: string): CommandType<'index.add'>; - -export function removeIndex(indexIds: string[]): CommandType<'index.remove'>; - -export function changeIndexName( - indexId: string, - value: string -): CommandType<'index.changeName'>; - -export function changeIndexUnique( - indexId: string, - value: boolean -): CommandType<'index.changeUnique'>; - -export function addIndexColumn( - indexId: string, - columnId: string -): CommandType<'index.addColumn'>; - -export function removeIndexColumn( - indexId: string, - columnId: string -): CommandType<'index.removeColumn'>; - -export function moveIndexColumn( - indexId: string, - columnId: string, - targetColumnId: string -): CommandType<'index.moveColumn'>; - -export function changeIndexColumnOrderType( - indexId: string, - columnId: string, - value: OrderType -): CommandType<'index.changeColumnOrderType'>; - -export function loadIndex(index: Index): CommandType<'index.load'>; diff --git a/packages-legacy/vuerd/types/engine/command/index.d.ts b/packages-legacy/vuerd/types/engine/command/index.d.ts deleted file mode 100644 index 2a319215..00000000 --- a/packages-legacy/vuerd/types/engine/command/index.d.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { CanvasCommandMap } from './canvas.cmd'; -import * as CanvasCommand from './canvas.cmd.helper'; -import { ColumnCommandMap } from './column.cmd'; -import * as ColumnCommand from './column.cmd.helper'; -import { EditorCommandMap } from './editor.cmd'; -import * as EditorCommand from './editor.cmd.helper'; -import { IndexCommandMap } from './index.cmd'; -import * as IndexCommand from './index.cmd.helper'; -import { MemoCommandMap } from './memo.cmd'; -import * as MemoCommand from './memo.cmd.helper'; -import { RelationshipCommandMap } from './relationship.cmd'; -import * as RelationshipCommand from './relationship.cmd.helper'; -import { TableCommandMap } from './table.cmd'; -import * as TableCommand from './table.com.helper'; - -export interface CommandMap - extends CanvasCommandMap, - MemoCommandMap, - TableCommandMap, - ColumnCommandMap, - EditorCommandMap, - RelationshipCommandMap, - IndexCommandMap {} - -export type CommandKey = keyof CommandMap; - -export interface CommandType { - name: K; - data: CommandMap[K]; - timestamp: number; -} - -export interface CommandTypeAny { - name: string; - data: any; - timestamp: number; -} - -export type CommandTypeAll = CommandType; - -export type RecursionGenerator = Generator>; - -export type BatchCommand = Array>; - -export interface Command { - canvas: typeof CanvasCommand; - memo: typeof MemoCommand; - table: typeof TableCommand; - column: typeof ColumnCommand; - editor: typeof EditorCommand; - relationship: typeof RelationshipCommand; - index: typeof IndexCommand; -} diff --git a/packages-legacy/vuerd/types/engine/command/memo.cmd.d.ts b/packages-legacy/vuerd/types/engine/command/memo.cmd.d.ts deleted file mode 100644 index eb61b877..00000000 --- a/packages-legacy/vuerd/types/engine/command/memo.cmd.d.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { Memo, MemoUI } from '../store/memo.state'; -import { Point } from '../store/relationship.state'; - -export interface AddMemo { - id: string; - ui: MemoUI; -} - -export interface MoveMemo { - movementX: number; - movementY: number; - tableIds: string[]; - memoIds: string[]; -} - -export interface RemoveMemo { - memoIds: string[]; -} - -export interface SelectMemo { - ctrlKey: boolean; - memoId: string; - zIndex: number; -} - -export interface ChangeMemoValue { - memoId: string; - value: string; -} - -export interface ResizeMemo { - memoId: string; - top: number; - left: number; - width: number; - height: number; -} - -export interface DragSelectMemo { - min: Point; - max: Point; -} - -export interface ChangeColorMemo { - tableIds: string[]; - memoIds: string[]; - color: string; -} - -export interface MemoCommandMap { - 'memo.add': AddMemo; - 'memo.move': MoveMemo; - 'memo.remove': RemoveMemo; - 'memo.select': SelectMemo; - 'memo.selectEnd': null; - 'memo.selectAll': null; - 'memo.changeValue': ChangeMemoValue; - 'memo.resize': ResizeMemo; - 'memo.dragSelect': DragSelectMemo; - 'memo.load': Memo; - 'memo.changeColor': ChangeColorMemo; -} diff --git a/packages-legacy/vuerd/types/engine/command/memo.cmd.helper.d.ts b/packages-legacy/vuerd/types/engine/command/memo.cmd.helper.d.ts deleted file mode 100644 index 9ac56bcd..00000000 --- a/packages-legacy/vuerd/types/engine/command/memo.cmd.helper.d.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { Store } from '../store'; -import { Memo } from '../store/memo.state'; -import { Point } from '../store/relationship.state'; -import { CommandType } from './index'; - -export * from './memo.cmd.helper.gen'; - -export declare function addMemo( - store: Store, - active?: boolean -): CommandType<'memo.add'>; - -export declare function moveMemo( - store: Store, - ctrlKey: boolean, - movementX: number, - movementY: number, - memoId: string -): CommandType<'memo.move'>; - -export declare function removeMemo( - store: Store, - memoId?: string -): CommandType<'memo.remove'>; - -export declare function selectMemo( - store: Store, - ctrlKey: boolean, - memoId: string -): CommandType<'memo.select'>; - -export declare function selectEndMemo(): CommandType<'memo.selectEnd'>; - -export declare function selectAllMemo(): CommandType<'memo.selectAll'>; - -export declare function changeMemoValue( - memoId: string, - value: string -): CommandType<'memo.changeValue'>; - -export declare function resizeMemo( - memoId: string, - top: number, - left: number, - width: number, - height: number -): CommandType<'memo.resize'>; - -export declare function dragSelectMemo( - min: Point, - max: Point -): CommandType<'memo.dragSelect'>; - -export declare function loadMemo(memo: Memo): CommandType<'memo.load'>; - -export declare function changeColorMemo( - store: Store, - ctrlKey: boolean, - color: string, - memoId: string -): CommandType<'memo.changeColor'>; diff --git a/packages-legacy/vuerd/types/engine/command/memo.cmd.helper.gen.d.ts b/packages-legacy/vuerd/types/engine/command/memo.cmd.helper.gen.d.ts deleted file mode 100644 index 6e5fc5c5..00000000 --- a/packages-legacy/vuerd/types/engine/command/memo.cmd.helper.gen.d.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Store } from '../store'; -import { CommandType } from './index'; -import { selectEndTable$ } from './table.com.helper'; - -export declare function addMemo$( - store: Store, - active?: boolean -): Generator< - | CommandType<'memo.selectEnd'> - | CommandType<'memo.add'> - | ReturnType ->; - -export declare function selectMemo$( - store: Store, - ctrlKey: boolean, - memoId: string -): Generator | ReturnType>; diff --git a/packages-legacy/vuerd/types/engine/command/relationship.cmd.d.ts b/packages-legacy/vuerd/types/engine/command/relationship.cmd.d.ts deleted file mode 100644 index af13e5a4..00000000 --- a/packages-legacy/vuerd/types/engine/command/relationship.cmd.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { - Relationship, - RelationshipType, - StartRelationshipType, -} from '../store/relationship.state'; - -export interface AddRelationshipPoint { - tableId: string; - columnIds: string[]; -} - -export interface AddRelationship { - id: string; - relationshipType: RelationshipType; - start: AddRelationshipPoint; - end: AddRelationshipPoint; - constraintName: string; -} - -export interface RemoveRelationship { - relationshipIds: string[]; -} - -export interface ChangeRelationshipType { - relationshipId: string; - relationshipType: RelationshipType; -} - -export interface ChangeStartRelationshipType { - relationshipId: string; - startRelationshipType: StartRelationshipType; -} - -export interface ChangeIdentification { - relationshipId: string; - identification: boolean; -} - -export interface HideRelationship { - relationshipId: string; -} - -export interface ShowRelationship { - relationshipId: string; -} - -export interface RelationshipCommandMap { - 'relationship.add': AddRelationship; - 'relationship.remove': RemoveRelationship; - 'relationship.changeRelationshipType': ChangeRelationshipType; - 'relationship.changeStartRelationshipType': ChangeStartRelationshipType; - 'relationship.changeIdentification': ChangeIdentification; - 'relationship.load': Relationship; - 'relationship.hide': HideRelationship; - 'relationship.show': ShowRelationship; -} diff --git a/packages-legacy/vuerd/types/engine/command/relationship.cmd.helper.d.ts b/packages-legacy/vuerd/types/engine/command/relationship.cmd.helper.d.ts deleted file mode 100644 index 6a7bbf60..00000000 --- a/packages-legacy/vuerd/types/engine/command/relationship.cmd.helper.d.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { - Relationship, - RelationshipType, - StartRelationshipType, -} from '../store/relationship.state'; -import { Table } from '../store/table.state'; -import { CommandType } from './index'; - -export function addRelationship( - relationshipType: RelationshipType, - startTable: Table, - endTableId: string, - constraintName: string -): CommandType<'relationship.add'>; - -export function removeRelationship( - relationshipIds: string[] -): CommandType<'relationship.remove'>; - -export function changeRelationshipType( - relationshipId: string, - relationshipType: RelationshipType -): CommandType<'relationship.changeRelationshipType'>; - -export function changeStartRelationshipType( - relationshipId: string, - startRelationshipType: StartRelationshipType -): CommandType<'relationship.changeStartRelationshipType'>; - -export function changeIdentification( - relationshipId: string, - identification: boolean -): CommandType<'relationship.changeIdentification'>; - -export function loadRelationship( - relationship: Relationship -): CommandType<'relationship.load'>; diff --git a/packages-legacy/vuerd/types/engine/command/table.cmd.d.ts b/packages-legacy/vuerd/types/engine/command/table.cmd.d.ts deleted file mode 100644 index f7a72429..00000000 --- a/packages-legacy/vuerd/types/engine/command/table.cmd.d.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { Point } from '../store/relationship.state'; -import { PureTable } from '../store/table.state'; - -export interface AddTableUI { - active: boolean; - top: number; - left: number; - zIndex: number; -} - -export interface AddTable { - id: string; - ui: AddTableUI; -} - -export interface MoveTable { - movementX: number; - movementY: number; - tableIds: string[]; - memoIds: string[]; -} - -export interface RemoveTable { - tableIds: string[]; -} - -export interface SelectTable { - ctrlKey: boolean; - tableId: string; - zIndex: number; -} - -export interface ChangeTableValue { - tableId: string; - value: string; - width: number; -} - -export interface DragSelectTable { - min: Point; - max: Point; -} - -export interface ChangeColorTable { - tableIds: string[]; - memoIds: string[]; - color: string; -} - -export interface TableCommandMap { - 'table.add': AddTable; - 'table.move': MoveTable; - 'table.remove': RemoveTable; - 'table.select': SelectTable; - 'table.selectEnd': null; - 'table.selectAll': null; - 'table.changeName': ChangeTableValue; - 'table.changeComment': ChangeTableValue; - 'table.dragSelect': DragSelectTable; - 'table.sort': null; - 'table.load': PureTable; - 'table.changeColor': ChangeColorTable; -} diff --git a/packages-legacy/vuerd/types/engine/command/table.cmd.helper.gen.d.ts b/packages-legacy/vuerd/types/engine/command/table.cmd.helper.gen.d.ts deleted file mode 100644 index 705e4836..00000000 --- a/packages-legacy/vuerd/types/engine/command/table.cmd.helper.gen.d.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { Helper } from '../../core/helper'; -import { Store } from '../store'; -import { drawStartAddRelationship$ } from './editor.cmd.helper'; -import { CommandType } from './index'; - -export declare function addTable$( - store: Store, - active?: boolean -): Generator< - | CommandType<'table.selectEnd'> - | CommandType<'memo.selectEnd'> - | CommandType<'table.add'> - | CommandType<'editor.focusTable'> ->; - -export declare function selectTable$( - store: Store, - ctrlKey: boolean, - tableId: string -): Generator< - | CommandType<'table.select'> - | CommandType<'memo.selectEnd'> - | CommandType<'editor.focusTable'> - | CommandType<'editor.drawEndRelationship'> - | CommandType<'relationship.add'> - | CommandType<'column.addCustom'> - | ReturnType ->; - -export declare function selectEndTable$(): Generator< - CommandType<'table.selectEnd'> | CommandType<'editor.focusTableEnd'> ->; - -export declare function addTableDefault$( - tableId: string, - helper: Helper -): Generator>; diff --git a/packages-legacy/vuerd/types/engine/command/table.com.helper.d.ts b/packages-legacy/vuerd/types/engine/command/table.com.helper.d.ts deleted file mode 100644 index 1467602c..00000000 --- a/packages-legacy/vuerd/types/engine/command/table.com.helper.d.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { Helper } from '../../core/helper'; -import { Store } from '../store'; -import { Point } from '../store/relationship.state'; -import { PureTable } from '../store/table.state'; -import { CommandType } from './index'; - -export * from './table.cmd.helper.gen'; - -export declare function addTable( - store: Store, - active?: boolean -): CommandType<'table.add'>; - -export declare function moveTable( - store: Store, - ctrlKey: boolean, - movementX: number, - movementY: number, - tableId: string -): CommandType<'table.move'>; - -export declare function removeTable( - store: Store, - tableId?: string -): CommandType<'table.remove'>; - -export declare function selectTable( - store: Store, - ctrlKey: boolean, - tableId: string -): CommandType<'table.select'>; - -export declare function selectEndTable(): CommandType<'table.selectEnd'>; - -export declare function selectAllTable(): CommandType<'table.selectAll'>; - -export declare function changeTableName( - helper: Helper, - tableId: string, - value: string -): CommandType<'table.changeName'>; - -export declare function changeTableComment( - helper: Helper, - tableId: string, - value: string -): CommandType<'table.changeComment'>; - -export declare function dragSelectTable( - min: Point, - max: Point -): CommandType<'table.dragSelect'>; - -export declare function sortTable(): CommandType<'table.sort'>; - -export declare function loadTable(table: PureTable): CommandType<'table.load'>; - -export declare function changeColorTable( - store: Store, - ctrlKey: boolean, - color: string, - tableId: string -): CommandType<'table.changeColor'>; diff --git a/packages-legacy/vuerd/types/engine/store/canvas.state.d.ts b/packages-legacy/vuerd/types/engine/store/canvas.state.d.ts deleted file mode 100644 index 345b9820..00000000 --- a/packages-legacy/vuerd/types/engine/store/canvas.state.d.ts +++ /dev/null @@ -1,82 +0,0 @@ -export interface CanvasState { - version: string; // ADD: version 2.0.0 - width: number; - height: number; - scrollTop: number; - scrollLeft: number; - zoomLevel: number; // ADD: version 2.0.0 - show: Show; - database: Database; - databaseName: string; - canvasType: string; - language: Language; // ADD: version 0.2.16 - tableCase: NameCase; // ADD: version 0.2.18 - columnCase: NameCase; // ADD: version 0.2.18 - highlightTheme: HighlightTheme; // ADD: version 2.0.0 - bracketType: BracketType; // ADD: version 2.0.11 - setting: Setting; // ADD: version 1.1.0 - pluginSerializationMap: Record; // ADD: version 2.2.3 -} - -export interface Show { - tableComment: boolean; - columnComment: boolean; - columnDataType: boolean; - columnDefault: boolean; - columnAutoIncrement: boolean; - columnPrimaryKey: boolean; - columnUnique: boolean; - columnNotNull: boolean; - relationship: boolean; -} -export type ShowKey = keyof Show; - -export interface Setting { - relationshipDataTypeSync: boolean; // ADD: version 1.1.0 - relationshipOptimization: boolean; // ADD: version 2.2.10 - columnOrder: ColumnType[]; // ADD: version 1.1.1 -} - -export type ColumnType = - | 'columnUnique' - | 'columnAutoIncrement' - | 'columnName' - | 'columnDataType' - | 'columnNotNull' - | 'columnDefault' - | 'columnComment'; - -export type CanvasType = - | 'ERD' - | '@vuerd/builtin-sql-ddl' - | '@vuerd/builtin-grid' - | '@vuerd/builtin-generator-code' - | '@vuerd/builtin-visualization'; - -export type Database = - | 'MariaDB' - | 'MSSQL' - | 'MySQL' - | 'Oracle' - | 'PostgreSQL' - | 'SQLite'; - -export type Language = - | 'GraphQL' - | 'C#' - | 'Java' - | 'Kotlin' - | 'TypeScript' - | 'JPA' - | 'Scala'; - -export type NameCase = 'none' | 'camelCase' | 'pascalCase' | 'snakeCase'; - -export type HighlightTheme = - | 'AtomOneDark' - | 'AtomOneLight' - | 'MonokaiSublime' - | 'GithubGist' - | 'VS2015'; - -export type BracketType = 'none' | 'doubleQuote' | 'singleQuote' | 'backtick'; diff --git a/packages-legacy/vuerd/types/engine/store/editor.state.d.ts b/packages-legacy/vuerd/types/engine/store/editor.state.d.ts deleted file mode 100644 index 693fef7c..00000000 --- a/packages-legacy/vuerd/types/engine/store/editor.state.d.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { PanelConfig } from '../../core/panel'; -import { ColumnType } from './canvas.state'; -import { FilterState } from './editor/filter.state'; -import { Point, RelationshipType } from './relationship.state'; -import { Column, Table } from './table.state'; - -export interface EditorState { - panels: PanelConfig[]; - excludePanel: RegExp[]; - hasUndo: boolean; - hasRedo: boolean; - focusTable: FocusTable | null; - drawRelationship: DrawRelationship | null; - draggableColumn: DraggableColumn | null; - viewport: Viewport; - copyColumns: Column[]; - findActive: boolean; - readonly: boolean; - filterState: FilterState; - erdUiEventNone: boolean; -} - -export interface FocusTable { - table: Table; - columnId: string | null; - focusType: FocusType; - selectColumnIds: string[]; - prevSelectColumnId: string | null; - edit: boolean; -} - -export interface DrawRelationship { - relationshipType: RelationshipType; - start: DrawStartPoint | null; - end: Point; -} - -export interface DrawStartPoint extends Point { - table: Table; -} - -export interface DraggableColumn { - tableId: string; - columnIds: string[]; -} - -export interface Viewport { - width: number; - height: number; -} - -export type TableType = 'tableName' | 'tableComment'; - -export type FocusType = TableType | ColumnType; - -export type MoveKey = - | 'ArrowUp' - | 'ArrowRight' - | 'ArrowDown' - | 'ArrowLeft' - | 'Tab'; diff --git a/packages-legacy/vuerd/types/engine/store/editor/filter.state.d.ts b/packages-legacy/vuerd/types/engine/store/editor/filter.state.d.ts deleted file mode 100644 index 1ecd57a9..00000000 --- a/packages-legacy/vuerd/types/engine/store/editor/filter.state.d.ts +++ /dev/null @@ -1,43 +0,0 @@ -export interface FilterState { - active: boolean; - filters: Filter[]; - operatorType: OperatorType; - focus: Focus | null; - draggable: Draggable | null; -} - -export interface Filter { - id: string; - columnType: ColumnType; - filterCode: TextFilterCode; - value: string; -} - -export interface Focus { - filterId: string | null; - focusType: FocusType; - selectFilterIds: string[]; - prevSelectFilterId: string | null; - edit: boolean; -} - -export interface Draggable { - filterIds: string[]; -} - -export type OperatorType = 'AND' | 'OR'; - -export type TextFilterCode = 'eq' | 'ne' | 'contain' | 'start' | 'end'; - -export type ColumnType = - | 'tableName' - | 'tableComment' - | 'option' - | 'name' - | 'dataType' - | 'default' - | 'comment'; - -export type FocusFilterType = 'columnType' | 'filterCode' | 'value'; - -export type FocusType = FocusFilterType | 'operatorType'; diff --git a/packages-legacy/vuerd/types/engine/store/index.d.ts b/packages-legacy/vuerd/types/engine/store/index.d.ts deleted file mode 100644 index 1757900e..00000000 --- a/packages-legacy/vuerd/types/engine/store/index.d.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { BatchCommand } from '../command'; -import { CanvasState } from './canvas.state'; -import { EditorState } from './editor.state'; -import { MemoState } from './memo.state'; -import { RelationshipState } from './relationship.state'; -import { TableState } from './table.state'; - -export interface State { - readonly canvasState: CanvasState; - readonly tableState: TableState; - readonly memoState: MemoState; - readonly relationshipState: RelationshipState; - readonly editorState: EditorState; -} - -export interface Store extends State { - dispatch(...commands: BatchCommand): void; - dispatch(...commands: unknown[]): void; - dispatchSync(...commands: BatchCommand): void; - dispatchSync(...commands: unknown[]): void; - undo(): void; - redo(): void; -} - -export interface ExportedStore { - canvas: CanvasState; - table: TableState; - memo: MemoState; - relationship: RelationshipState; -} diff --git a/packages-legacy/vuerd/types/engine/store/memo.state.d.ts b/packages-legacy/vuerd/types/engine/store/memo.state.d.ts deleted file mode 100644 index 14e7bbd5..00000000 --- a/packages-legacy/vuerd/types/engine/store/memo.state.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -export interface MemoState { - memos: Memo[]; -} - -export interface Memo { - id: string; - value: string; - ui: MemoUI; -} - -export interface MemoUI { - active: boolean; - top: number; - left: number; - width: number; - height: number; - zIndex: number; - color?: string; // ADD: version 2.1.? -} diff --git a/packages-legacy/vuerd/types/engine/store/relationship.state.d.ts b/packages-legacy/vuerd/types/engine/store/relationship.state.d.ts deleted file mode 100644 index 6ad7c00c..00000000 --- a/packages-legacy/vuerd/types/engine/store/relationship.state.d.ts +++ /dev/null @@ -1,40 +0,0 @@ -export interface RelationshipState { - relationships: Relationship[]; -} - -export interface Relationship { - id: string; - identification: boolean; - relationshipType: RelationshipType; - startRelationshipType?: StartRelationshipType; // ADD: version 2.0.3 - start: RelationshipPoint; - end: RelationshipPoint; - constraintName?: string; // ADD: version 2.1.0 - visible?: boolean; -} - -export interface RelationshipPoint { - tableId: string; - columnIds: string[]; - x: number; - y: number; - direction: Direction; -} - -export interface Point { - x: number; - y: number; -} - -export type RelationshipType = - | 'ZeroOneN' - | 'ZeroOne' - | 'ZeroN' - | 'OneOnly' - | 'OneN' - | 'One' - | 'N'; - -export type StartRelationshipType = 'Ring' | 'Dash'; - -export type Direction = 'left' | 'right' | 'top' | 'bottom'; diff --git a/packages-legacy/vuerd/types/engine/store/snapshot.d.ts b/packages-legacy/vuerd/types/engine/store/snapshot.d.ts deleted file mode 100644 index 12f3f636..00000000 --- a/packages-legacy/vuerd/types/engine/store/snapshot.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Statement } from '@/core/parser'; - -import { ExportedStore } from '.'; - -export interface Snapshot { - metadata?: SnapshotMetadata; - data: ExportedStore; -} - -export interface SnapshotMetadata { - filename: string; - type: - | 'before-import' - | 'after-import' - | 'before-export' - | 'after-export' - | 'user'; - statements?: Statement[]; -} diff --git a/packages-legacy/vuerd/types/engine/store/table.state.d.ts b/packages-legacy/vuerd/types/engine/store/table.state.d.ts deleted file mode 100644 index 59367665..00000000 --- a/packages-legacy/vuerd/types/engine/store/table.state.d.ts +++ /dev/null @@ -1,85 +0,0 @@ -export interface TableState { - tables: Table[]; - indexes: Index[]; // ADD: version 1.2.0 -} - -export interface PureTable { - id: string; - name: string; - comment: string; - columns: Column[]; - ui: TableUI; - visible?: boolean; -} - -export interface Table extends PureTable { - width(): number; - height(): number; - maxWidthColumn(): ColumnWidth; -} - -export interface ColumnWidth { - width: number; - name: number; - comment: number; - dataType: number; - default: number; - notNull: number; - autoIncrement: number; - unique: number; -} - -export interface TableUI { - active: boolean; - top: number; - left: number; - zIndex: number; - widthName: number; - widthComment: number; - color?: string; // ADD: version 2.1.? -} - -export interface Column { - id: string; - name: string; - comment: string; - dataType: string; - default: string; - option: ColumnOption; - ui: ColumnUI; -} - -export interface ColumnOption { - autoIncrement: boolean; - primaryKey: boolean; - unique: boolean; - notNull: boolean; -} - -export type ColumnOptionKey = keyof ColumnOption; - -export interface ColumnUI { - active: boolean; - pk: boolean; - fk: boolean; - pfk: boolean; - widthName: number; - widthComment: number; - widthDataType: number; - widthDefault: number; -} - -export interface Index { - id: string; - name: string; - tableId: string; - columns: IndexColumn[]; - unique: boolean; -} - -export interface IndexColumn { - id: string; - orderType: OrderType; -} - -export type OrderType = 'ASC' | 'DESC'; diff --git a/packages-legacy/vuerd/types/index.d.ts b/packages-legacy/vuerd/types/index.d.ts deleted file mode 100644 index 665fcb59..00000000 --- a/packages-legacy/vuerd/types/index.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { ERDEditorElement } from './components/ERDEditorElement'; - -export { ERDEditorElement } from './components/ERDEditorElement'; -export { ERDEditorContext } from './core/ERDEditorContext'; -export * from './core/extension'; -export * from './core/file'; -export * from './core/icon'; -export * from './core/observable'; -export * from './core/panel'; - -declare global { - interface HTMLElementTagNameMap { - 'vuerd-editor': ERDEditorElement; - } -} diff --git a/packages-legacy/vuerd/vite.config.ts b/packages-legacy/vuerd/vite.config.ts deleted file mode 100644 index 8a3bec23..00000000 --- a/packages-legacy/vuerd/vite.config.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { readFileSync } from 'node:fs'; -import { join } from 'node:path'; - -import strip from '@rollup/plugin-strip'; -import { defineConfig } from 'vite'; - -const pkg = JSON.parse(readFileSync('package.json', { encoding: 'utf8' })); - -const banner = `/*! - * ${pkg.name} - * @version ${pkg.version} | ${new Date().toDateString()} - * @author ${pkg.author} - * @license ${pkg.license} - */`; - -export default defineConfig(({ command }) => { - const isBuild = command === 'build'; - - return { - define: { - __APP_VERSION__: JSON.stringify(pkg.version), - ...(isBuild - ? { 'process.env.NODE_ENV': JSON.stringify('production') } - : {}), - }, - build: { - lib: { - entry: './src/index.ts', - fileName: pkg.name, - formats: ['es'], - }, - rollupOptions: { - output: { - banner, - }, - }, - }, - resolve: { - alias: { - '@': join(__dirname, 'src'), - }, - dedupe: ['lit-html'], - }, - plugins: [ - isBuild && - strip({ - debugger: true, - include: '**/*.ts', - functions: ['Logger.debug', 'Logger.log', 'console.log'], - }), - ].filter(Boolean), - server: { - open: true, - }, - }; -}); diff --git a/packages/erd-editor-vscode-webview/environment/.env.legacy b/packages/erd-editor-vscode-webview/environment/.env.legacy deleted file mode 100644 index eb21906a..00000000 --- a/packages/erd-editor-vscode-webview/environment/.env.legacy +++ /dev/null @@ -1 +0,0 @@ -VITE_TARGET='legacy' \ No newline at end of file diff --git a/packages/erd-editor-vscode-webview/environment/.env.legacy-lazy b/packages/erd-editor-vscode-webview/environment/.env.legacy-lazy deleted file mode 100644 index 3d9c3d8e..00000000 --- a/packages/erd-editor-vscode-webview/environment/.env.legacy-lazy +++ /dev/null @@ -1 +0,0 @@ -VITE_TARGET='legacy-lazy' \ No newline at end of file diff --git a/packages/erd-editor-vscode-webview/package.json b/packages/erd-editor-vscode-webview/package.json index e178e27e..5229a0ca 100644 --- a/packages/erd-editor-vscode-webview/package.json +++ b/packages/erd-editor-vscode-webview/package.json @@ -7,9 +7,8 @@ "author": "SeungHwan-Lee ", "license": "MIT", "scripts": { - "build": "pnpm build:modern && pnpm build:legacy", - "build:modern": "vite build --mode modern && vite build --mode modern-lazy", - "build:legacy": "vite build --mode legacy && vite build --mode legacy-lazy" + "build": "vite build --mode modern && vite build --mode modern-lazy", + "build:modern": "vite build --mode modern && vite build --mode modern-lazy" }, "devDependencies": { "@dineug/erd-editor": "workspace:*", @@ -18,7 +17,6 @@ "@types/vscode-webview": "1.57.5", "base64-arraybuffer": "^1.0.2", "typescript": "5.4.5", - "vite": "^5.2.8", - "vuerd": "workspace:*" + "vite": "^5.2.8" } } diff --git a/packages/erd-editor-vscode-webview/vite.config.ts b/packages/erd-editor-vscode-webview/vite.config.ts index 607cd8a7..1483a55a 100644 --- a/packages/erd-editor-vscode-webview/vite.config.ts +++ b/packages/erd-editor-vscode-webview/vite.config.ts @@ -22,20 +22,6 @@ export default defineConfig(({ command, mode }) => { outDir: '../erd-editor-vscode/public', emptyOutDir: false, }, - legacy: { - entry: './src/legacy/index.ts', - name: 'webview', - fileName: () => 'webview.js', - outDir: '../erd-editor-vscode/public-legacy', - emptyOutDir: true, - }, - 'legacy-lazy': { - entry: './src/legacy/lazy.ts', - name: 'lazy', - fileName: () => 'lazy.js', - outDir: '../erd-editor-vscode/public-legacy', - emptyOutDir: false, - }, }; const entry = targetMap[target].entry; diff --git a/packages/erd-editor-vscode/CHANGELOG.md b/packages/erd-editor-vscode/CHANGELOG.md index ea51f013..c88dcb30 100644 --- a/packages/erd-editor-vscode/CHANGELOG.md +++ b/packages/erd-editor-vscode/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 2.0.0 + +### Fixed + +- Legacy support for `.vuerd` and `.vuerd.json` has ended. They now operate with the new version. + ## 1.0.20 ### Fixed diff --git a/packages/erd-editor-vscode/README.md b/packages/erd-editor-vscode/README.md index fcf9cddd..90fb6e91 100644 --- a/packages/erd-editor-vscode/README.md +++ b/packages/erd-editor-vscode/README.md @@ -20,10 +20,6 @@ create an empty file with a `.erd`, `.erd.json` extension and open it in Visual - Undo, Redo - Settings -## Migration Guide - -rename files with the extensions `.vuerd` and `.vuerd.json` to `.erd` and `.erd.json` respectively. - ## New Features ### Multiple editors supported per document. diff --git a/packages/erd-editor-vscode/package.json b/packages/erd-editor-vscode/package.json index 2c964ef1..13099b40 100644 --- a/packages/erd-editor-vscode/package.json +++ b/packages/erd-editor-vscode/package.json @@ -1,6 +1,6 @@ { "name": "vuerd-vscode", - "version": "1.0.20", + "version": "2.0.0", "private": true, "description": "Entity-Relationship Diagram Editor VSCode Extension", "icon": "./assets/erd-editor.png", @@ -131,14 +131,14 @@ { "command": "vuerd.showEditor", "alt": "vuerd.showEditorToSide", - "when": "activeCustomEditorId != 'editor.erd' && activeCustomEditorId != 'vuerd.editor' && resourceFilename =~ /^.+\\.(erd|vuerd)(.json)?$/", + "when": "activeCustomEditorId != 'editor.erd' && resourceFilename =~ /^.+\\.(erd|vuerd)(.json)?$/", "group": "navigation" }, { "command": "vuerd.showSource", "alt": "vuerd.showSourceToSide", "group": "navigation", - "when": "(activeCustomEditorId == 'editor.erd' || activeCustomEditorId == 'vuerd.editor') && resourceFilename =~ /^.+\\.(erd|vuerd)(.json)?$/" + "when": "activeCustomEditorId == 'editor.erd' && resourceFilename =~ /^.+\\.(erd|vuerd)(.json)?$/" } ] }, @@ -153,14 +153,7 @@ }, { "filenamePattern": "*.erd.json" - } - ] - }, - { - "viewType": "vuerd.editor", - "displayName": "erd-editor", - "priority": "default", - "selector": [ + }, { "filenamePattern": "*.vuerd" }, @@ -231,122 +224,6 @@ ] } } - }, - { - "title": "vuerd", - "properties": { - "dineug.vuerd-vscode.themeSync": { - "description": "Synchronize the current vscode theme", - "type": "boolean", - "default": false - }, - "dineug.vuerd-vscode.theme": { - "description": "Custom Theme", - "type": "object", - "properties": { - "canvas": { - "description": "background color", - "type": "string", - "default": "#282828" - }, - "table": { - "description": "background color", - "type": "string", - "default": "#191919" - }, - "tableActive": { - "description": "active color", - "type": "string", - "default": "#14496d" - }, - "focus": { - "description": "focus color", - "type": "string", - "default": "#00a9ff" - }, - "keyPK": { - "description": "primaryKey color", - "type": "string", - "default": "#b4b400" - }, - "keyFK": { - "description": "foreignKey color", - "type": "string", - "default": "#dda8b1" - }, - "keyPFK": { - "description": "identification color", - "type": "string", - "default": "#60b9c4" - }, - "font": { - "description": "font color", - "type": "string", - "default": "#a2a2a2" - }, - "fontActive": { - "description": "active color", - "type": "string", - "default": "white" - }, - "fontPlaceholder": { - "description": "placeholder color", - "type": "string", - "default": "#6d6d6d" - }, - "contextmenu": { - "description": "background color", - "type": "string", - "default": "#191919" - }, - "contextmenuActive": { - "description": "active color", - "type": "string", - "default": "#383d41" - }, - "edit": { - "description": "edit color", - "type": "string", - "default": "#ffc107" - }, - "columnSelect": { - "description": "select color", - "type": "string", - "default": "#232a2f" - }, - "columnActive": { - "description": "active color", - "type": "string", - "default": "#372908" - }, - "minimapShadow": { - "description": "shadow color", - "type": "string", - "default": "black" - }, - "scrollbarThumb": { - "description": "thumb color", - "type": "string", - "default": "#6d6d6d" - }, - "scrollbarThumbActive": { - "description": "active color", - "type": "string", - "default": "#a2a2a2" - }, - "menubar": { - "description": "background color", - "type": "string", - "default": "black" - }, - "visualization": { - "description": "background color", - "type": "string", - "default": "#191919" - } - } - } - } } ] } diff --git a/packages/erd-editor-vscode/src/constants/viewType.ts b/packages/erd-editor-vscode/src/constants/viewType.ts index c2bee35e..b24f63e6 100644 --- a/packages/erd-editor-vscode/src/constants/viewType.ts +++ b/packages/erd-editor-vscode/src/constants/viewType.ts @@ -1,2 +1 @@ export const MODERN_VIEW_TYPE = 'editor.erd'; -export const LEGACY_VIEW_TYPE = 'vuerd.editor'; diff --git a/packages/erd-editor-vscode/src/erd-editor-legacy.ts b/packages/erd-editor-vscode/src/erd-editor-legacy.ts deleted file mode 100644 index 8d26b4f6..00000000 --- a/packages/erd-editor-vscode/src/erd-editor-legacy.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { - AnyAction, - webviewImportFileAction, - webviewInitialValueAction, - webviewUpdateReadonlyAction, - webviewUpdateThemeLegacyAction, -} from '@dineug/erd-editor-vscode-bridge'; -import { decode } from 'base64-arraybuffer'; -import * as os from 'os'; -import * as path from 'path'; -import * as vscode from 'vscode'; - -import { getThemeLegacy } from '@/configuration'; -import { Editor } from '@/editor'; -import { textDecoder, textEncoder } from '@/utils'; - -const THEME_KEYS = [ - 'dineug.vuerd-vscode.themeSync', - 'dineug.vuerd-vscode.theme', - 'workbench.colorTheme', -]; - -export class ErdEditorLegacy extends Editor { - assetsDir = 'public-legacy'; - - async bootstrapWebview() { - this.webview.options = { - enableScripts: true, - }; - - const dispatch = (action: AnyAction) => { - this.webview.postMessage(action); - }; - - const unsubscribe = this.bridge.on({ - vscodeInitial: () => { - dispatch(webviewUpdateThemeLegacyAction(getThemeLegacy())); - dispatch(webviewUpdateReadonlyAction(this.readonly)); - dispatch( - webviewInitialValueAction({ - value: textDecoder.decode(this.document.content), - }) - ); - }, - vscodeSaveValue: async ({ payload: { value } }) => { - await this.document.update(textEncoder.encode(value)); - }, - vscodeImportFile: async ({ payload: { type, op } }) => { - const uris = await vscode.window.showOpenDialog(); - if (!uris || !uris.length) return; - - const uri = uris[0]; - const regexp = new RegExp(`\.(${type}|erd|vuerd)$`, 'i'); - - if (!regexp.test(uri.path)) { - vscode.window.showInformationMessage(`Just import the ${type} file`); - return; - } - - const value = await vscode.workspace.fs.readFile(uris[0]); - dispatch( - webviewImportFileAction({ - type, - op, - value: textDecoder.decode(value), - }) - ); - }, - vscodeExportFile: async ({ payload: { value, fileName } }) => { - let defaultPath = os.homedir(); - - if ( - Array.isArray(vscode.workspace.workspaceFolders) && - vscode.workspace.workspaceFolders.length - ) { - defaultPath = vscode.workspace.workspaceFolders[0].uri.fsPath; - } - - const uri = await vscode.window.showSaveDialog({ - defaultUri: vscode.Uri.file(path.join(defaultPath, fileName)), - }); - if (!uri) return; - - await vscode.workspace.fs.writeFile(uri, new Uint8Array(decode(value))); - }, - }); - - const listeners: vscode.Disposable[] = [ - this.webview.onDidReceiveMessage(action => this.bridge.emit(action)), - ...THEME_KEYS.map(key => - vscode.workspace.onDidChangeConfiguration(event => { - if (!event.affectsConfiguration(key, this.document.uri)) { - return; - } - dispatch(webviewUpdateThemeLegacyAction(getThemeLegacy())); - }) - ), - ]; - - this.webview.html = await this.buildHtmlForWebview(); - - return new vscode.Disposable(() => { - unsubscribe(); - listeners.forEach(listener => listener.dispose()); - }); - } -} diff --git a/packages/erd-editor-vscode/src/erd-editor-provider.ts b/packages/erd-editor-vscode/src/erd-editor-provider.ts index 32657e7e..04401439 100644 --- a/packages/erd-editor-vscode/src/erd-editor-provider.ts +++ b/packages/erd-editor-vscode/src/erd-editor-provider.ts @@ -24,15 +24,22 @@ export class ErdEditorProvider static register( context: vscode.ExtensionContext, - viewType: string, createEditor: CreateEditor ): vscode.Disposable { - const provider = new ErdEditorProvider(context, viewType, createEditor); + const provider = new ErdEditorProvider( + context, + MODERN_VIEW_TYPE, + createEditor + ); - return vscode.window.registerCustomEditorProvider(viewType, provider, { - webviewOptions: { retainContextWhenHidden: true }, - supportsMultipleEditorsPerDocument: viewType === MODERN_VIEW_TYPE, - }); + return vscode.window.registerCustomEditorProvider( + MODERN_VIEW_TYPE, + provider, + { + webviewOptions: { retainContextWhenHidden: true }, + supportsMultipleEditorsPerDocument: true, + } + ); } async openCustomDocument( @@ -49,10 +56,7 @@ export class ErdEditorProvider }); let unsubscribe = () => {}; - if ( - this.viewType === MODERN_VIEW_TYPE && - !this.docToWebviewMap.has(document) - ) { + if (!this.docToWebviewMap.has(document)) { this.docToWebviewMap.set(document, new Set()); } diff --git a/packages/erd-editor-vscode/src/extension.ts b/packages/erd-editor-vscode/src/extension.ts index fc7aa96b..498bbfcf 100644 --- a/packages/erd-editor-vscode/src/extension.ts +++ b/packages/erd-editor-vscode/src/extension.ts @@ -1,25 +1,13 @@ import * as vscode from 'vscode'; -import { LEGACY_VIEW_TYPE, MODERN_VIEW_TYPE } from '@/constants/viewType'; +import { MODERN_VIEW_TYPE } from '@/constants/viewType'; import { widthEditor } from '@/editor'; import { ErdEditor } from '@/erd-editor'; -import { ErdEditorLegacy } from '@/erd-editor-legacy'; import { ErdEditorProvider } from '@/erd-editor-provider'; export function activate(context: vscode.ExtensionContext) { context.subscriptions.push( - ErdEditorProvider.register( - context, - MODERN_VIEW_TYPE, - widthEditor(ErdEditor) - ) - ); - context.subscriptions.push( - ErdEditorProvider.register( - context, - LEGACY_VIEW_TYPE, - widthEditor(ErdEditorLegacy) - ) + ErdEditorProvider.register(context, widthEditor(ErdEditor)) ); context.subscriptions.push( vscode.commands.registerCommand('vuerd.showSource', showSource) @@ -44,9 +32,10 @@ function showSource(uri: vscode.Uri, viewColumn?: vscode.ViewColumn) { } function showEditor(uri: vscode.Uri, viewColumn?: vscode.ViewColumn) { - const viewType = /^.+\.erd(.json)?$/.test(uri.path) - ? MODERN_VIEW_TYPE - : LEGACY_VIEW_TYPE; - - vscode.commands.executeCommand('vscode.openWith', uri, viewType, viewColumn); + vscode.commands.executeCommand( + 'vscode.openWith', + uri, + MODERN_VIEW_TYPE, + viewColumn + ); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 146dabb0..91086af3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '6.0' +lockfileVersion: '9.0' settings: autoInstallPeers: true @@ -13,7 +13,7 @@ importers: devDependencies: '@typescript-eslint/eslint-plugin': specifier: ^7.6.0 - version: 7.6.0(@typescript-eslint/parser@7.6.0)(eslint@8.57.0)(typescript@5.4.5) + version: 7.6.0(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': specifier: ^7.6.0 version: 7.6.0(eslint@8.57.0)(typescript@5.4.5) @@ -25,10 +25,10 @@ importers: version: 9.1.0(eslint@8.57.0) eslint-plugin-import: specifier: ^2.29.1 - version: 2.29.1(@typescript-eslint/parser@7.6.0)(eslint@8.57.0) + version: 2.29.1(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0) eslint-plugin-prettier: specifier: ^5.1.3 - version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5) + version: 5.1.3(@types/eslint@8.56.0)(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.2.5) eslint-plugin-react-hooks: specifier: ^4.6.0 version: 4.6.0(eslint@8.57.0) @@ -46,7 +46,7 @@ importers: version: 15.2.2 nx: specifier: 18.2.4 - version: 18.2.4 + version: 18.2.4(@swc/core@1.3.101) prettier: specifier: ^3.2.5 version: 3.2.5 @@ -58,116 +58,7 @@ importers: version: 5.4.5 vite: specifier: ^5.2.8 - version: 5.2.8(@types/node@18.19.31) - - packages-legacy/lit-observable: - dependencies: - lit-html: - specifier: ^1.4.1 - version: 1.4.1 - lodash-es: - specifier: ^4.17.21 - version: 4.17.21 - devDependencies: - '@types/lodash-es': - specifier: ^4.17.12 - version: 4.17.12 - typescript: - specifier: 5.4.5 - version: 5.4.5 - vite: - specifier: ^5.2.8 - version: 5.2.8(@types/node@18.19.31) - - packages-legacy/sql-ddl-parser: - devDependencies: - typescript: - specifier: 5.4.5 - version: 5.4.5 - vite: - specifier: ^5.2.8 - version: 5.2.8(@types/node@18.19.31) - vitest: - specifier: ^1.5.0 - version: 1.5.0 - - packages-legacy/vuerd: - devDependencies: - '@dineug/erd-editor-schema': - specifier: workspace:* - version: link:../../packages/erd-editor-schema - '@easylogic/colorpicker': - specifier: ^1.10.11 - version: 1.10.11 - '@fortawesome/free-solid-svg-icons': - specifier: ^5.15.4 - version: 5.15.4 - '@mdi/js': - specifier: 7.3.67 - version: 7.3.67 - '@popperjs/core': - specifier: 2.9.3 - version: 2.9.3 - '@rollup/plugin-strip': - specifier: ^3.0.4 - version: 3.0.4 - '@tweenjs/tween.js': - specifier: ^18.6.4 - version: 18.6.4 - '@types/d3': - specifier: ^7.4.3 - version: 7.4.3 - '@types/lodash-es': - specifier: ^4.17.12 - version: 4.17.12 - '@types/ramda': - specifier: 0.27.44 - version: 0.27.44 - '@types/uuid': - specifier: ^9.0.8 - version: 9.0.8 - '@vuerd/lit-observable': - specifier: workspace:* - version: link:../lit-observable - '@vuerd/sql-ddl-parser': - specifier: workspace:* - version: link:../sql-ddl-parser - d3: - specifier: ^7.8.5 - version: 7.8.5 - highlight.js: - specifier: ^10.7.3 - version: 10.7.3 - highlightjs-graphql: - specifier: ^1.0.2 - version: 1.0.2 - html-to-image: - specifier: ^1.11.11 - version: 1.11.11 - lit-html: - specifier: ^1.4.1 - version: 1.4.1 - lodash-es: - specifier: ^4.17.21 - version: 4.17.21 - ramda: - specifier: 0.27.1 - version: 0.27.1 - rxjs: - specifier: ^7.8.1 - version: 7.8.1 - tippy.js: - specifier: ^6.3.7 - version: 6.3.7 - typescript: - specifier: 5.4.5 - version: 5.4.5 - uuid: - specifier: ^9.0.1 - version: 9.0.1 - vite: - specifier: ^5.2.8 - version: 5.2.8(@types/node@18.19.31) + version: 5.2.8(@types/node@18.19.31)(terser@5.26.0) packages/erd-editor: devDependencies: @@ -215,28 +106,28 @@ importers: version: 3.0.0 '@rollup/plugin-typescript': specifier: ^11.1.6 - version: 11.1.6(tslib@2.6.2)(typescript@5.4.5) + version: 11.1.6(rollup@4.14.2)(tslib@2.6.2)(typescript@5.4.5) '@storybook/addon-essentials': specifier: ^8.0.8 - version: 8.0.8(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) + version: 8.0.8(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/addon-interactions': specifier: ^8.0.8 - version: 8.0.8 + version: 8.0.8(vitest@1.5.0(@types/node@18.19.31)(terser@5.26.0)) '@storybook/addon-links': specifier: ^8.0.8 version: 8.0.8(react@18.2.0) '@storybook/blocks': specifier: ^8.0.8 - version: 8.0.8(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) + version: 8.0.8(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/html': specifier: ^8.0.8 version: 8.0.8 '@storybook/html-vite': specifier: ^8.0.8 - version: 8.0.8(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.5)(vite@5.2.8) + version: 8.0.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.5)(vite@5.2.8(@types/node@18.19.31)(terser@5.26.0)) '@storybook/test': specifier: ^8.0.8 - version: 8.0.8 + version: 8.0.8(vitest@1.5.0(@types/node@18.19.31)(terser@5.26.0)) '@types/color': specifier: ^3.0.6 version: 3.0.6 @@ -266,7 +157,7 @@ importers: version: 4.3.1 framer-motion: specifier: ^11.0.28 - version: 11.0.28(react-dom@18.2.0)(react@18.2.0) + version: 11.0.28(react-dom@18.2.0(react@18.2.0))(react@18.2.0) fuse.js: specifier: ^7.0.0 version: 7.0.0 @@ -284,7 +175,7 @@ importers: version: 3.4.4 rollup-plugin-visualizer: specifier: ^5.12.0 - version: 5.12.0 + version: 5.12.0(rollup@4.14.2) rxjs: specifier: ^7.8.1 version: 7.8.1 @@ -293,7 +184,7 @@ importers: version: 0.17.0 storybook: specifier: ^8.0.8 - version: 8.0.8(react-dom@18.2.0)(react@18.2.0) + version: 8.0.8(@babel/preset-env@7.23.6(@babel/core@7.24.4))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) tinykeys: specifier: ^2.1.0 version: 2.1.0 @@ -305,10 +196,10 @@ importers: version: 5.4.5 vite: specifier: ^5.2.8 - version: 5.2.8(@types/node@18.19.31) + version: 5.2.8(@types/node@18.19.31)(terser@5.26.0) vite-plugin-dts: specifier: ^3.8.2 - version: 3.8.2(@types/node@18.19.31)(typescript@5.4.5)(vite@5.2.8) + version: 3.8.2(@types/node@18.19.31)(rollup@4.14.2)(typescript@5.4.5)(vite@5.2.8(@types/node@18.19.31)(terser@5.26.0)) packages/erd-editor-app: dependencies: @@ -332,7 +223,7 @@ importers: version: 1.3.0(react@18.2.0) '@radix-ui/themes': specifier: 2.0.3 - version: 2.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) + version: 2.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@sentry/react': specifier: ^7.110.0 version: 7.110.0(react@18.2.0) @@ -353,7 +244,7 @@ importers: version: 2.8.0(@types/react@18.2.77)(react@18.2.0) jotai-immer: specifier: ^0.3.0 - version: 0.3.0(immer@10.0.4)(jotai@2.8.0)(react@18.2.0) + version: 0.3.0(immer@10.0.4)(jotai@2.8.0(@types/react@18.2.77)(react@18.2.0))(react@18.2.0) lodash-es: specifier: ^4.17.21 version: 4.17.21 @@ -368,7 +259,7 @@ importers: version: 18.2.0(react@18.2.0) react-router-dom: specifier: ^6.22.3 - version: 6.22.3(react-dom@18.2.0)(react@18.2.0) + version: 6.22.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) socket.io-client: specifier: ^4.7.5 version: 4.7.5 @@ -396,7 +287,7 @@ importers: devDependencies: '@pmmmwh/react-refresh-webpack-plugin': specifier: ^0.5.11 - version: 0.5.11(react-refresh@0.14.0)(webpack-dev-server@4.15.2)(webpack@5.91.0) + version: 0.5.11(react-refresh@0.14.0)(type-fest@3.13.1)(webpack-dev-server@4.15.2(webpack-cli@5.1.4)(webpack@5.91.0))(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)) '@swc-jotai/debug-label': specifier: ^0.1.0 version: 0.1.0 @@ -420,31 +311,31 @@ importers: version: 18.2.25 copy-webpack-plugin: specifier: ^12.0.2 - version: 12.0.2(webpack@5.91.0) + version: 12.0.2(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)) core-js: specifier: ^3.36.1 version: 3.36.1 css-loader: specifier: ^7.1.1 - version: 7.1.1(webpack@5.91.0) + version: 7.1.1(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)) html-webpack-plugin: specifier: ^5.6.0 - version: 5.6.0(webpack@5.91.0) + version: 5.6.0(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)) jotai-devtools: specifier: ^0.8.0 - version: 0.8.0(@emotion/react@11.11.4)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0)(redux@5.0.1) + version: 0.8.0(@emotion/react@11.11.4(@types/react@18.2.77)(react@18.2.0))(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(redux@5.0.1) mini-css-extract-plugin: specifier: ^2.8.1 - version: 2.8.1(webpack@5.91.0) + version: 2.8.1(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)) react-refresh: specifier: ^0.14.0 version: 0.14.0 style-loader: specifier: ^4.0.0 - version: 4.0.0(webpack@5.91.0) + version: 4.0.0(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)) swc-loader: specifier: 0.2.6 - version: 0.2.6(@swc/core@1.3.101)(webpack@5.91.0) + version: 0.2.6(@swc/core@1.3.101)(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)) tsconfig-paths-webpack-plugin: specifier: ^4.1.0 version: 4.1.0 @@ -468,7 +359,7 @@ importers: version: 4.3.0 workbox-webpack-plugin: specifier: ^7.0.0 - version: 7.0.0(webpack@5.91.0) + version: 7.0.0(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)) packages/erd-editor-intellij-webview: devDependencies: @@ -492,19 +383,19 @@ importers: version: 3.36.1 css-loader: specifier: ^7.1.1 - version: 7.1.1(webpack@5.91.0) + version: 7.1.1(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)) html-webpack-plugin: specifier: ^5.6.0 - version: 5.6.0(webpack@5.91.0) + version: 5.6.0(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)) mini-css-extract-plugin: specifier: ^2.8.1 - version: 2.8.1(webpack@5.91.0) + version: 2.8.1(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)) style-loader: specifier: ^4.0.0 - version: 4.0.0(webpack@5.91.0) + version: 4.0.0(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)) swc-loader: specifier: 0.2.6 - version: 0.2.6(@swc/core@1.3.101)(webpack@5.91.0) + version: 0.2.6(@swc/core@1.3.101)(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)) tsconfig-paths-webpack-plugin: specifier: ^4.1.0 version: 4.1.0 @@ -531,7 +422,7 @@ importers: version: link:../shared '@rollup/plugin-typescript': specifier: ^11.1.6 - version: 11.1.6(tslib@2.6.2)(typescript@5.4.5) + version: 11.1.6(rollup@4.14.2)(tslib@2.6.2)(typescript@5.4.5) '@types/lodash-es': specifier: ^4.17.12 version: 4.17.12 @@ -540,7 +431,7 @@ importers: version: 4.17.21 rollup-plugin-visualizer: specifier: ^5.12.0 - version: 5.12.0 + version: 5.12.0(rollup@4.14.2) tslib: specifier: ^2.6.2 version: 2.6.2 @@ -549,22 +440,22 @@ importers: version: 5.4.5 vite: specifier: ^5.2.8 - version: 5.2.8(@types/node@18.19.31) + version: 5.2.8(@types/node@18.19.31)(terser@5.26.0) vite-plugin-dts: specifier: ^3.8.2 - version: 3.8.2(@types/node@18.19.31)(typescript@5.4.5)(vite@5.2.8) + version: 3.8.2(@types/node@18.19.31)(rollup@4.14.2)(typescript@5.4.5)(vite@5.2.8(@types/node@18.19.31)(terser@5.26.0)) packages/erd-editor-shiki-worker: devDependencies: '@rollup/plugin-typescript': specifier: ^11.1.6 - version: 11.1.6(tslib@2.6.2)(typescript@5.4.5) + version: 11.1.6(rollup@4.14.2)(tslib@2.6.2)(typescript@5.4.5) comlink: specifier: 4.4.1 version: 4.4.1 rollup-plugin-visualizer: specifier: ^5.12.0 - version: 5.12.0 + version: 5.12.0(rollup@4.14.2) shiki: specifier: 0.14.7 version: 0.14.7 @@ -576,13 +467,13 @@ importers: version: 5.4.5 vite: specifier: ^5.2.8 - version: 5.2.8(@types/node@18.19.31) + version: 5.2.8(@types/node@18.19.31)(terser@5.26.0) vite-plugin-dts: specifier: ^3.8.2 - version: 3.8.2(@types/node@18.19.31)(typescript@5.4.5)(vite@5.2.8) + version: 3.8.2(@types/node@18.19.31)(rollup@4.14.2)(typescript@5.4.5)(vite@5.2.8(@types/node@18.19.31)(terser@5.26.0)) vite-tsconfig-paths: specifier: 4.3.2 - version: 4.3.2(typescript@5.4.5)(vite@5.2.8) + version: 4.3.2(typescript@5.4.5)(vite@5.2.8(@types/node@18.19.31)(terser@5.26.0)) packages/erd-editor-vscode: devDependencies: @@ -615,7 +506,7 @@ importers: version: 3.3.2 ts-loader: specifier: ^9.5.1 - version: 9.5.1(typescript@5.4.5)(webpack@5.91.0) + version: 9.5.1(typescript@5.4.5)(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)) tsconfig-paths-webpack-plugin: specifier: ^4.1.0 version: 4.1.0 @@ -624,7 +515,7 @@ importers: version: 5.4.5 webpack: specifier: ^5.91.0 - version: 5.91.0(webpack-cli@5.1.4) + version: 5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4) webpack-cli: specifier: ^5.1.4 version: 5.1.4(webpack@5.91.0) @@ -636,10 +527,10 @@ importers: version: link:../shared '@rollup/plugin-typescript': specifier: ^11.1.6 - version: 11.1.6(tslib@2.6.2)(typescript@5.4.5) + version: 11.1.6(rollup@4.14.2)(tslib@2.6.2)(typescript@5.4.5) rollup-plugin-visualizer: specifier: ^5.12.0 - version: 5.12.0 + version: 5.12.0(rollup@4.14.2) tslib: specifier: ^2.6.2 version: 2.6.2 @@ -648,10 +539,10 @@ importers: version: 5.4.5 vite: specifier: ^5.2.8 - version: 5.2.8(@types/node@18.19.31) + version: 5.2.8(@types/node@18.19.31)(terser@5.26.0) vite-plugin-dts: specifier: ^3.8.2 - version: 3.8.2(@types/node@18.19.31)(typescript@5.4.5)(vite@5.2.8) + version: 3.8.2(@types/node@18.19.31)(rollup@4.14.2)(typescript@5.4.5)(vite@5.2.8(@types/node@18.19.31)(terser@5.26.0)) packages/erd-editor-vscode-webview: devDependencies: @@ -675,19 +566,16 @@ importers: version: 5.4.5 vite: specifier: ^5.2.8 - version: 5.2.8(@types/node@18.19.31) - vuerd: - specifier: workspace:* - version: link:../../packages-legacy/vuerd + version: 5.2.8(@types/node@18.19.31)(terser@5.26.0) packages/r-html: devDependencies: '@rollup/plugin-typescript': specifier: ^11.1.6 - version: 11.1.6(tslib@2.6.2)(typescript@5.4.5) + version: 11.1.6(rollup@4.14.2)(tslib@2.6.2)(typescript@5.4.5) rollup-plugin-visualizer: specifier: ^5.12.0 - version: 5.12.0 + version: 5.12.0(rollup@4.14.2) tslib: specifier: ^2.6.2 version: 2.6.2 @@ -696,19 +584,19 @@ importers: version: 5.4.5 vite: specifier: ^5.2.8 - version: 5.2.8(@types/node@18.19.31) + version: 5.2.8(@types/node@18.19.31)(terser@5.26.0) vite-plugin-dts: specifier: ^3.8.2 - version: 3.8.2(@types/node@18.19.31)(typescript@5.4.5)(vite@5.2.8) + version: 3.8.2(@types/node@18.19.31)(rollup@4.14.2)(typescript@5.4.5)(vite@5.2.8(@types/node@18.19.31)(terser@5.26.0)) packages/schema-sql-parser: devDependencies: '@rollup/plugin-typescript': specifier: ^11.1.6 - version: 11.1.6(tslib@2.6.2)(typescript@5.4.5) + version: 11.1.6(rollup@4.14.2)(tslib@2.6.2)(typescript@5.4.5) rollup-plugin-visualizer: specifier: ^5.12.0 - version: 5.12.0 + version: 5.12.0(rollup@4.14.2) tslib: specifier: ^2.6.2 version: 2.6.2 @@ -717,19 +605,19 @@ importers: version: 5.4.5 vite: specifier: ^5.2.8 - version: 5.2.8(@types/node@18.19.31) + version: 5.2.8(@types/node@18.19.31)(terser@5.26.0) vite-plugin-dts: specifier: ^3.8.2 - version: 3.8.2(@types/node@18.19.31)(typescript@5.4.5)(vite@5.2.8) + version: 3.8.2(@types/node@18.19.31)(rollup@4.14.2)(typescript@5.4.5)(vite@5.2.8(@types/node@18.19.31)(terser@5.26.0)) vitest: specifier: ^1.5.0 - version: 1.5.0 + version: 1.5.0(@types/node@18.19.31)(terser@5.26.0) packages/shared: devDependencies: '@rollup/plugin-typescript': specifier: ^11.1.6 - version: 11.1.6(tslib@2.6.2)(typescript@5.4.5) + version: 11.1.6(rollup@4.14.2)(tslib@2.6.2)(typescript@5.4.5) '@types/node': specifier: ^18.19.31 version: 18.19.31 @@ -738,7 +626,7 @@ importers: version: 5.0.7 rollup-plugin-visualizer: specifier: ^5.12.0 - version: 5.12.0 + version: 5.12.0(rollup@4.14.2) tslib: specifier: ^2.6.2 version: 2.6.2 @@ -747,10 +635,10 @@ importers: version: 5.4.5 vite: specifier: ^5.2.8 - version: 5.2.8(@types/node@18.19.31) + version: 5.2.8(@types/node@18.19.31)(terser@5.26.0) vite-plugin-dts: specifier: ^3.8.2 - version: 3.8.2(@types/node@18.19.31)(typescript@5.4.5)(vite@5.2.8) + version: 3.8.2(@types/node@18.19.31)(rollup@4.14.2)(typescript@5.4.5)(vite@5.2.8(@types/node@18.19.31)(terser@5.26.0)) packages/vite-plugin-r-html: dependencies: @@ -760,1441 +648,736 @@ importers: devDependencies: '@rollup/plugin-typescript': specifier: ^11.1.6 - version: 11.1.6(tslib@2.6.2)(typescript@5.4.5) + version: 11.1.6(rollup@4.14.2)(tslib@2.6.2)(typescript@5.4.5) '@rollup/pluginutils': specifier: ^5.1.0 - version: 5.1.0 + version: 5.1.0(rollup@4.14.2) rollup-plugin-visualizer: specifier: ^5.12.0 - version: 5.12.0 + version: 5.12.0(rollup@4.14.2) typescript: specifier: 5.4.5 version: 5.4.5 vite: specifier: ^5.2.8 - version: 5.2.8(@types/node@18.19.31) + version: 5.2.8(@types/node@18.19.31)(terser@5.26.0) vite-plugin-dts: specifier: ^3.8.2 - version: 3.8.2(@types/node@18.19.31)(typescript@5.4.5)(vite@5.2.8) + version: 3.8.2(@types/node@18.19.31)(rollup@4.14.2)(typescript@5.4.5)(vite@5.2.8(@types/node@18.19.31)(terser@5.26.0)) packages: - /@aashutoshrathi/word-wrap@1.2.6: + '@aashutoshrathi/word-wrap@1.2.6': resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} engines: {node: '>=0.10.0'} - dev: true - /@adobe/css-tools@4.3.3: + '@adobe/css-tools@4.3.3': resolution: {integrity: sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==} - dev: true - /@ampproject/remapping@2.2.1: + '@ampproject/remapping@2.2.1': resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.25 - /@apideck/better-ajv-errors@0.3.6(ajv@8.12.0): + '@apideck/better-ajv-errors@0.3.6': resolution: {integrity: sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==} engines: {node: '>=10'} peerDependencies: ajv: '>=8' - dependencies: - ajv: 8.12.0 - json-schema: 0.4.0 - jsonpointer: 5.0.1 - leven: 3.1.0 - dev: true - /@aw-web-design/x-default-browser@1.4.126: + '@aw-web-design/x-default-browser@1.4.126': resolution: {integrity: sha512-Xk1sIhyNC/esHGGVjL/niHLowM0csl/kFO5uawBy4IrWwy0o1G8LGt3jP6nmWGz+USxeeqbihAmp/oVZju6wug==} hasBin: true - dependencies: - default-browser-id: 3.0.0 - dev: true - /@babel/code-frame@7.23.5: + '@babel/code-frame@7.23.5': resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.23.4 - chalk: 2.4.2 - /@babel/code-frame@7.24.2: + '@babel/code-frame@7.24.2': resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.24.2 - picocolors: 1.0.0 - /@babel/compat-data@7.23.5: + '@babel/compat-data@7.23.5': resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} engines: {node: '>=6.9.0'} - /@babel/core@7.24.4: + '@babel/core@7.24.4': resolution: {integrity: sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==} engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.4 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) - '@babel/helpers': 7.24.4 - '@babel/parser': 7.24.4 - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.1 - '@babel/types': 7.24.0 - convert-source-map: 2.0.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - /@babel/generator@7.23.6: + '@babel/generator@7.23.6': resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.6 - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.19 - jsesc: 2.5.2 - dev: true - /@babel/generator@7.24.4: + '@babel/generator@7.24.4': resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.0 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 - /@babel/helper-annotate-as-pure@7.22.5: + '@babel/helper-annotate-as-pure@7.22.5': resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.6 - dev: true - /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: + '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.6 - dev: true - /@babel/helper-compilation-targets@7.23.6: + '@babel/helper-compilation-targets@7.23.6': resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/helper-validator-option': 7.23.5 - browserslist: 4.22.2 - lru-cache: 5.1.1 - semver: 6.3.1 - /@babel/helper-create-class-features-plugin@7.23.6(@babel/core@7.24.4): + '@babel/helper-create-class-features-plugin@7.23.6': resolution: {integrity: sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.4) - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - semver: 6.3.1 - dev: true - /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.4): + '@babel/helper-create-regexp-features-plugin@7.22.15': resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.22.5 - regexpu-core: 5.3.2 - semver: 6.3.1 - dev: true - /@babel/helper-define-polyfill-provider@0.4.4(@babel/core@7.24.4): + '@babel/helper-define-polyfill-provider@0.4.4': resolution: {integrity: sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - debug: 4.3.4 - lodash.debounce: 4.0.8 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/helper-environment-visitor@7.22.20: + '@babel/helper-environment-visitor@7.22.20': resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} engines: {node: '>=6.9.0'} - /@babel/helper-function-name@7.22.5: + '@babel/helper-function-name@7.22.5': resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.22.15 - '@babel/types': 7.23.6 - dev: true - /@babel/helper-function-name@7.23.0: + '@babel/helper-function-name@7.23.0': resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.22.15 - '@babel/types': 7.23.6 - /@babel/helper-hoist-variables@7.22.5: + '@babel/helper-hoist-variables@7.22.5': resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.6 - /@babel/helper-member-expression-to-functions@7.23.0: + '@babel/helper-member-expression-to-functions@7.23.0': resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.6 - dev: true - /@babel/helper-module-imports@7.22.15: + '@babel/helper-module-imports@7.22.15': resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.6 - /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.4): + '@babel/helper-module-transforms@7.23.3': resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 - /@babel/helper-optimise-call-expression@7.22.5: + '@babel/helper-optimise-call-expression@7.22.5': resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.6 - dev: true - /@babel/helper-plugin-utils@7.22.5: + '@babel/helper-plugin-utils@7.22.5': resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} engines: {node: '>=6.9.0'} - dev: true - /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.4): + '@babel/helper-remap-async-to-generator@7.22.20': resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-wrap-function': 7.22.20 - dev: true - /@babel/helper-replace-supers@7.22.20(@babel/core@7.24.4): + '@babel/helper-replace-supers@7.22.20': resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - dev: true - /@babel/helper-simple-access@7.22.5: + '@babel/helper-simple-access@7.22.5': resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.6 - /@babel/helper-skip-transparent-expression-wrappers@7.22.5: + '@babel/helper-skip-transparent-expression-wrappers@7.22.5': resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.6 - dev: true - /@babel/helper-split-export-declaration@7.22.6: + '@babel/helper-split-export-declaration@7.22.6': resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.6 - /@babel/helper-string-parser@7.23.4: + '@babel/helper-string-parser@7.23.4': resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-identifier@7.22.20: + '@babel/helper-validator-identifier@7.22.20': resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-option@7.23.5: + '@babel/helper-validator-option@7.23.5': resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} - /@babel/helper-wrap-function@7.22.20: + '@babel/helper-wrap-function@7.22.20': resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-function-name': 7.22.5 - '@babel/template': 7.22.15 - '@babel/types': 7.23.6 - dev: true - /@babel/helpers@7.24.4: + '@babel/helpers@7.24.4': resolution: {integrity: sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.1 - '@babel/types': 7.24.0 - transitivePeerDependencies: - - supports-color - /@babel/highlight@7.23.4: + '@babel/highlight@7.23.4': resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.22.20 - chalk: 2.4.2 - js-tokens: 4.0.0 - /@babel/highlight@7.24.2: + '@babel/highlight@7.24.2': resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.22.20 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.0.0 - /@babel/parser@7.23.6: + '@babel/parser@7.23.6': resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} engines: {node: '>=6.0.0'} hasBin: true - dependencies: - '@babel/types': 7.23.6 - /@babel/parser@7.24.0: + '@babel/parser@7.24.0': resolution: {integrity: sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==} engines: {node: '>=6.0.0'} hasBin: true - dependencies: - '@babel/types': 7.23.6 - dev: true - /@babel/parser@7.24.4: + '@babel/parser@7.24.4': resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} engines: {node: '>=6.0.0'} hasBin: true - dependencies: - '@babel/types': 7.24.0 - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.24.4): + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3': resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.24.4): + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3': resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.24.4) - dev: true - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3(@babel/core@7.24.4): + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3': resolution: {integrity: sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.4): + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.4): + '@babel/plugin-syntax-async-generators@7.8.4': resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.4): + '@babel/plugin-syntax-class-properties@7.12.13': resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.4): + '@babel/plugin-syntax-class-static-block@7.14.5': resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.4): + '@babel/plugin-syntax-dynamic-import@7.8.3': resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.4): + '@babel/plugin-syntax-export-namespace-from@7.8.3': resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-flow@7.23.3(@babel/core@7.24.4): + '@babel/plugin-syntax-flow@7.23.3': resolution: {integrity: sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.24.4): + '@babel/plugin-syntax-import-assertions@7.23.3': resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.24.4): + '@babel/plugin-syntax-import-attributes@7.23.3': resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.4): + '@babel/plugin-syntax-import-meta@7.10.4': resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.4): + '@babel/plugin-syntax-json-strings@7.8.3': resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.4): + '@babel/plugin-syntax-jsx@7.23.3': resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.4): + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.4): + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.4): + '@babel/plugin-syntax-numeric-separator@7.10.4': resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.4): + '@babel/plugin-syntax-object-rest-spread@7.8.3': resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.4): + '@babel/plugin-syntax-optional-catch-binding@7.8.3': resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.4): + '@babel/plugin-syntax-optional-chaining@7.8.3': resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.4): + '@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 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.4): + '@babel/plugin-syntax-top-level-await@7.14.5': resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.24.4): + '@babel/plugin-syntax-typescript@7.23.3': resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.4): + '@babel/plugin-syntax-unicode-sets-regex@7.18.6': resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-arrow-functions@7.23.3': resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-async-generator-functions@7.23.4(@babel/core@7.24.4): + '@babel/plugin-transform-async-generator-functions@7.23.4': resolution: {integrity: sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.4) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-async-to-generator@7.23.3': resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-block-scoped-functions@7.23.3': resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.24.4): + '@babel/plugin-transform-block-scoping@7.23.4': resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-class-properties@7.23.3': resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.24.4): + '@babel/plugin-transform-class-static-block@7.23.4': resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-classes@7.23.5(@babel/core@7.24.4): + '@babel/plugin-transform-classes@7.23.5': resolution: {integrity: sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.4) - '@babel/helper-split-export-declaration': 7.22.6 - globals: 11.12.0 - dev: true - /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-computed-properties@7.23.3': resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/template': 7.22.15 - dev: true - /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-destructuring@7.23.3': resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-dotall-regex@7.23.3': resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-duplicate-keys@7.23.3': resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.24.4): + '@babel/plugin-transform-dynamic-import@7.23.4': resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-exponentiation-operator@7.23.3': resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.24.4): + '@babel/plugin-transform-export-namespace-from@7.23.4': resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-flow-strip-types@7.23.3': resolution: {integrity: sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.24.4): + '@babel/plugin-transform-for-of@7.23.6': resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - dev: true - /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-function-name@7.23.3': resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.24.4): + '@babel/plugin-transform-json-strings@7.23.4': resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-literals@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-literals@7.23.3': resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.24.4): + '@babel/plugin-transform-logical-assignment-operators@7.23.4': resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-member-expression-literals@7.23.3': resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-modules-amd@7.23.3': resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-modules-commonjs@7.23.3': resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-simple-access': 7.22.5 - dev: true - /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-modules-systemjs@7.23.3': resolution: {integrity: sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-identifier': 7.22.20 - dev: true - /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-modules-umd@7.23.3': resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.4): + '@babel/plugin-transform-named-capturing-groups-regex@7.22.5': resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-new-target@7.23.3': resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.24.4): + '@babel/plugin-transform-nullish-coalescing-operator@7.23.4': resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.24.4): + '@babel/plugin-transform-numeric-separator@7.23.4': resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.24.4): + '@babel/plugin-transform-object-rest-spread@7.23.4': resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.24.4 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-object-super@7.23.3': resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.24.4): + '@babel/plugin-transform-optional-catch-binding@7.23.4': resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.24.4): + '@babel/plugin-transform-optional-chaining@7.23.4': resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-parameters@7.23.3': resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-private-methods@7.23.3': resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.24.4): + '@babel/plugin-transform-private-property-in-object@7.23.4': resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-property-literals@7.23.3': resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-regenerator@7.23.3': resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - regenerator-transform: 0.15.2 - dev: true - /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-reserved-words@7.23.3': resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-shorthand-properties@7.23.3': resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-spread@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-spread@7.23.3': resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - dev: true - /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-sticky-regex@7.23.3': resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-template-literals@7.23.3': resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-typeof-symbol@7.23.3': resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-typescript@7.23.6(@babel/core@7.24.4): + '@babel/plugin-transform-typescript@7.23.6': resolution: {integrity: sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.24.4) - dev: true - /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-unicode-escapes@7.23.3': resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-unicode-property-regex@7.23.3': resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-unicode-regex@7.23.3': resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.24.4): + '@babel/plugin-transform-unicode-sets-regex@7.23.3': resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/preset-env@7.23.6(@babel/core@7.24.4): + '@babel/preset-env@7.23.6': resolution: {integrity: sha512-2XPn/BqKkZCpzYhUUNZ1ssXw7DcXfKQEjv/uXZUXgaebCMYmkEsfZ2yY+vv+xtXv50WmL5SGhyB6/xsWxIvvOQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.24.4 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.4) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.4) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.4) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.4) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.4) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.4) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.4) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.4) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.4) - '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-async-generator-functions': 7.23.4(@babel/core@7.24.4) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.24.4) - '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.24.4) - '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.24.4) - '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.24.4) - '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.24.4) - '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.24.4) - '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.24.4) - '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.24.4) - '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.4) - '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.24.4) - '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.24.4) - '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.24.4) - '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.24.4) - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.24.4) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.24.4) - '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.24.4) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.4) - babel-plugin-polyfill-corejs2: 0.4.7(@babel/core@7.24.4) - babel-plugin-polyfill-corejs3: 0.8.7(@babel/core@7.24.4) - babel-plugin-polyfill-regenerator: 0.5.4(@babel/core@7.24.4) - core-js-compat: 3.34.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/preset-flow@7.23.3(@babel/core@7.24.4): + '@babel/preset-flow@7.23.3': resolution: {integrity: sha512-7yn6hl8RIv+KNk6iIrGZ+D06VhVY35wLVf23Cz/mMu1zOr7u4MMP4j0nZ9tLf8+4ZFpnib8cFYgB/oYg9hfswA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.24.4) - dev: true - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.4): + '@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 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/types': 7.23.6 - esutils: 2.0.3 - dev: true - /@babel/preset-typescript@7.23.3(@babel/core@7.24.4): + '@babel/preset-typescript@7.23.3': resolution: {integrity: sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.4) - '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.24.4) - dev: true - /@babel/register@7.22.15(@babel/core@7.24.4): + '@babel/register@7.22.15': resolution: {integrity: sha512-V3Q3EqoQdn65RCgTLwauZaTfd1ShhwPmbBv+1dkZV/HpCGMKVyn6oFcRlI7RaKqiDQjX2Qd3AuoEguBgdjIKlg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.24.4 - 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 - dev: true - /@babel/regjsgen@0.8.0: + '@babel/regjsgen@0.8.0': resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - dev: true - /@babel/runtime@7.22.11: + '@babel/runtime@7.22.11': resolution: {integrity: sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA==} engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: 0.14.0 - /@babel/runtime@7.23.6: + '@babel/runtime@7.23.6': resolution: {integrity: sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==} engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: 0.14.0 - /@babel/template@7.22.15: + '@babel/template@7.22.15': resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.23.5 - '@babel/parser': 7.23.6 - '@babel/types': 7.23.6 - /@babel/template@7.24.0: + '@babel/template@7.24.0': resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.24.2 - '@babel/parser': 7.24.4 - '@babel/types': 7.24.0 - /@babel/traverse@7.24.0: + '@babel/traverse@7.24.0': resolution: {integrity: sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.24.0 - '@babel/types': 7.24.0 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/traverse@7.24.1: + '@babel/traverse@7.24.1': resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.4 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.24.4 - '@babel/types': 7.24.0 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - /@babel/types@7.23.6: + '@babel/types@7.23.6': resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.23.4 - '@babel/helper-validator-identifier': 7.22.20 - to-fast-properties: 2.0.0 - /@babel/types@7.24.0: + '@babel/types@7.24.0': resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.23.4 - '@babel/helper-validator-identifier': 7.22.20 - to-fast-properties: 2.0.0 - /@colors/colors@1.5.0: + '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} - requiresBuild: true - dev: true - optional: true - /@dineug/go@0.1.8: + '@dineug/go@0.1.8': resolution: {integrity: sha512-aoK/OVffvUEJ1O24ylLY1nkT8sM4RUfF1Sf+e9toz/nKIQk/ZRYp4iHsWJXtCoa4gNlg1Ng5uS2xCY6JLQXjaw==} - /@discoveryjs/json-ext@0.5.7: + '@discoveryjs/json-ext@0.5.7': resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} engines: {node: '>=10.0.0'} - dev: true - /@easylogic/colorpicker@1.10.11: + '@easylogic/colorpicker@1.10.11': resolution: {integrity: sha512-CHN/WTk0d1LH7Jzep7fjPkUe73XjZ6zQCFH/rhpHf1e06TDJQ0D9lRfJgtBjLsEZqKfAIP6C8q9MEt9cxh3Y/A==} - dev: true - /@egjs/agent@2.4.3: + '@egjs/agent@2.4.3': resolution: {integrity: sha512-XvksSENe8wPeFlEVouvrOhKdx8HMniJ3by7sro2uPF3M6QqWwjzVcmvwoPtdjiX8O1lfRoLhQMp1a7NGlVTdIA==} - dev: true - /@emotion/babel-plugin@11.11.0: + '@emotion/babel-plugin@11.11.0': resolution: {integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==} - dependencies: - '@babel/helper-module-imports': 7.22.15 - '@babel/runtime': 7.23.6 - '@emotion/hash': 0.9.1 - '@emotion/memoize': 0.8.1 - '@emotion/serialize': 1.1.3 - babel-plugin-macros: 3.1.0 - convert-source-map: 1.9.0 - escape-string-regexp: 4.0.0 - find-root: 1.1.0 - source-map: 0.5.7 - stylis: 4.2.0 - /@emotion/cache@11.11.0: + '@emotion/cache@11.11.0': resolution: {integrity: sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==} - dependencies: - '@emotion/memoize': 0.8.1 - '@emotion/sheet': 1.2.2 - '@emotion/utils': 1.2.1 - '@emotion/weak-memoize': 0.3.1 - stylis: 4.2.0 - /@emotion/hash@0.9.1: + '@emotion/hash@0.9.1': resolution: {integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==} - /@emotion/memoize@0.8.1: + '@emotion/memoize@0.8.1': resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} - /@emotion/react@11.11.4(@types/react@18.2.77)(react@18.2.0): + '@emotion/react@11.11.4': resolution: {integrity: sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==} peerDependencies: '@types/react': '*' @@ -2202,1327 +1385,725 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@emotion/babel-plugin': 11.11.0 - '@emotion/cache': 11.11.0 - '@emotion/serialize': 1.1.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) - '@emotion/utils': 1.2.1 - '@emotion/weak-memoize': 0.3.1 - '@types/react': 18.2.77 - hoist-non-react-statics: 3.3.2 - react: 18.2.0 - /@emotion/serialize@1.1.3: + '@emotion/serialize@1.1.3': resolution: {integrity: sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA==} - dependencies: - '@emotion/hash': 0.9.1 - '@emotion/memoize': 0.8.1 - '@emotion/unitless': 0.8.1 - '@emotion/utils': 1.2.1 - csstype: 3.1.2 - /@emotion/sheet@1.2.2: + '@emotion/sheet@1.2.2': resolution: {integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==} - /@emotion/unitless@0.8.1: + '@emotion/unitless@0.8.1': resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} - /@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.2.0): + '@emotion/use-insertion-effect-with-fallbacks@1.0.1': resolution: {integrity: sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==} peerDependencies: react: '>=16.8.0' - dependencies: - react: 18.2.0 - /@emotion/utils@1.2.1: + '@emotion/utils@1.2.1': resolution: {integrity: sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==} - /@emotion/weak-memoize@0.3.1: + '@emotion/weak-memoize@0.3.1': resolution: {integrity: sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==} - /@esbuild/aix-ppc64@0.20.2: + '@esbuild/aix-ppc64@0.20.2': resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} engines: {node: '>=12'} cpu: [ppc64] os: [aix] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-arm64@0.19.9: + '@esbuild/android-arm64@0.19.9': resolution: {integrity: sha512-q4cR+6ZD0938R19MyEW3jEsMzbb/1rulLXiNAJQADD/XYp7pT+rOS5JGxvpRW8dFDEfjW4wLgC/3FXIw4zYglQ==} engines: {node: '>=12'} cpu: [arm64] os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-arm64@0.20.2: + '@esbuild/android-arm64@0.20.2': resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} engines: {node: '>=12'} cpu: [arm64] os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-arm@0.19.9: + '@esbuild/android-arm@0.19.9': resolution: {integrity: sha512-jkYjjq7SdsWuNI6b5quymW0oC83NN5FdRPuCbs9HZ02mfVdAP8B8eeqLSYU3gb6OJEaY5CQabtTFbqBf26H3GA==} engines: {node: '>=12'} cpu: [arm] os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-arm@0.20.2: + '@esbuild/android-arm@0.20.2': resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} engines: {node: '>=12'} cpu: [arm] os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-x64@0.19.9: + '@esbuild/android-x64@0.19.9': resolution: {integrity: sha512-KOqoPntWAH6ZxDwx1D6mRntIgZh9KodzgNOy5Ebt9ghzffOk9X2c1sPwtM9P+0eXbefnDhqYfkh5PLP5ULtWFA==} engines: {node: '>=12'} cpu: [x64] os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-x64@0.20.2: + '@esbuild/android-x64@0.20.2': resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} engines: {node: '>=12'} cpu: [x64] os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/darwin-arm64@0.19.9: + '@esbuild/darwin-arm64@0.19.9': resolution: {integrity: sha512-KBJ9S0AFyLVx2E5D8W0vExqRW01WqRtczUZ8NRu+Pi+87opZn5tL4Y0xT0mA4FtHctd0ZgwNoN639fUUGlNIWw==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] - requiresBuild: true - dev: true - optional: true - /@esbuild/darwin-arm64@0.20.2: + '@esbuild/darwin-arm64@0.20.2': resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] - requiresBuild: true - dev: true - optional: true - /@esbuild/darwin-x64@0.19.9: + '@esbuild/darwin-x64@0.19.9': resolution: {integrity: sha512-vE0VotmNTQaTdX0Q9dOHmMTao6ObjyPm58CHZr1UK7qpNleQyxlFlNCaHsHx6Uqv86VgPmR4o2wdNq3dP1qyDQ==} engines: {node: '>=12'} cpu: [x64] os: [darwin] - requiresBuild: true - dev: true - optional: true - /@esbuild/darwin-x64@0.20.2: + '@esbuild/darwin-x64@0.20.2': resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} engines: {node: '>=12'} cpu: [x64] os: [darwin] - requiresBuild: true - dev: true - optional: true - /@esbuild/freebsd-arm64@0.19.9: + '@esbuild/freebsd-arm64@0.19.9': resolution: {integrity: sha512-uFQyd/o1IjiEk3rUHSwUKkqZwqdvuD8GevWF065eqgYfexcVkxh+IJgwTaGZVu59XczZGcN/YMh9uF1fWD8j1g==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/freebsd-arm64@0.20.2: + '@esbuild/freebsd-arm64@0.20.2': resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/freebsd-x64@0.19.9: + '@esbuild/freebsd-x64@0.19.9': resolution: {integrity: sha512-WMLgWAtkdTbTu1AWacY7uoj/YtHthgqrqhf1OaEWnZb7PQgpt8eaA/F3LkV0E6K/Lc0cUr/uaVP/49iE4M4asA==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/freebsd-x64@0.20.2: + '@esbuild/freebsd-x64@0.20.2': resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-arm64@0.19.9: + '@esbuild/linux-arm64@0.19.9': resolution: {integrity: sha512-PiPblfe1BjK7WDAKR1Cr9O7VVPqVNpwFcPWgfn4xu0eMemzRp442hXyzF/fSwgrufI66FpHOEJk0yYdPInsmyQ==} engines: {node: '>=12'} cpu: [arm64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-arm64@0.20.2: + '@esbuild/linux-arm64@0.20.2': resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} engines: {node: '>=12'} cpu: [arm64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-arm@0.19.9: + '@esbuild/linux-arm@0.19.9': resolution: {integrity: sha512-C/ChPohUYoyUaqn1h17m/6yt6OB14hbXvT8EgM1ZWaiiTYz7nWZR0SYmMnB5BzQA4GXl3BgBO1l8MYqL/He3qw==} engines: {node: '>=12'} cpu: [arm] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-arm@0.20.2: + '@esbuild/linux-arm@0.20.2': resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} engines: {node: '>=12'} cpu: [arm] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-ia32@0.19.9: + '@esbuild/linux-ia32@0.19.9': resolution: {integrity: sha512-f37i/0zE0MjDxijkPSQw1CO/7C27Eojqb+r3BbHVxMLkj8GCa78TrBZzvPyA/FNLUMzP3eyHCVkAopkKVja+6Q==} engines: {node: '>=12'} cpu: [ia32] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-ia32@0.20.2: + '@esbuild/linux-ia32@0.20.2': resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} engines: {node: '>=12'} cpu: [ia32] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-loong64@0.19.9: + '@esbuild/linux-loong64@0.19.9': resolution: {integrity: sha512-t6mN147pUIf3t6wUt3FeumoOTPfmv9Cc6DQlsVBpB7eCpLOqQDyWBP1ymXn1lDw4fNUSb/gBcKAmvTP49oIkaA==} engines: {node: '>=12'} cpu: [loong64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-loong64@0.20.2: + '@esbuild/linux-loong64@0.20.2': resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} engines: {node: '>=12'} cpu: [loong64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-mips64el@0.19.9: + '@esbuild/linux-mips64el@0.19.9': resolution: {integrity: sha512-jg9fujJTNTQBuDXdmAg1eeJUL4Jds7BklOTkkH80ZgQIoCTdQrDaHYgbFZyeTq8zbY+axgptncko3v9p5hLZtw==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-mips64el@0.20.2: + '@esbuild/linux-mips64el@0.20.2': resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-ppc64@0.19.9: + '@esbuild/linux-ppc64@0.19.9': resolution: {integrity: sha512-tkV0xUX0pUUgY4ha7z5BbDS85uI7ABw3V1d0RNTii7E9lbmV8Z37Pup2tsLV46SQWzjOeyDi1Q7Wx2+QM8WaCQ==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-ppc64@0.20.2: + '@esbuild/linux-ppc64@0.20.2': resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-riscv64@0.19.9: + '@esbuild/linux-riscv64@0.19.9': resolution: {integrity: sha512-DfLp8dj91cufgPZDXr9p3FoR++m3ZJ6uIXsXrIvJdOjXVREtXuQCjfMfvmc3LScAVmLjcfloyVtpn43D56JFHg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-riscv64@0.20.2: + '@esbuild/linux-riscv64@0.20.2': resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-s390x@0.19.9: + '@esbuild/linux-s390x@0.19.9': resolution: {integrity: sha512-zHbglfEdC88KMgCWpOl/zc6dDYJvWGLiUtmPRsr1OgCViu3z5GncvNVdf+6/56O2Ca8jUU+t1BW261V6kp8qdw==} engines: {node: '>=12'} cpu: [s390x] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-s390x@0.20.2: + '@esbuild/linux-s390x@0.20.2': resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} engines: {node: '>=12'} cpu: [s390x] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-x64@0.19.9: + '@esbuild/linux-x64@0.19.9': resolution: {integrity: sha512-JUjpystGFFmNrEHQnIVG8hKwvA2DN5o7RqiO1CVX8EN/F/gkCjkUMgVn6hzScpwnJtl2mPR6I9XV1oW8k9O+0A==} engines: {node: '>=12'} cpu: [x64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-x64@0.20.2: + '@esbuild/linux-x64@0.20.2': resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} engines: {node: '>=12'} cpu: [x64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/netbsd-x64@0.19.9: + '@esbuild/netbsd-x64@0.19.9': resolution: {integrity: sha512-GThgZPAwOBOsheA2RUlW5UeroRfESwMq/guy8uEe3wJlAOjpOXuSevLRd70NZ37ZrpO6RHGHgEHvPg1h3S1Jug==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/netbsd-x64@0.20.2: + '@esbuild/netbsd-x64@0.20.2': resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/openbsd-x64@0.19.9: + '@esbuild/openbsd-x64@0.19.9': resolution: {integrity: sha512-Ki6PlzppaFVbLnD8PtlVQfsYw4S9n3eQl87cqgeIw+O3sRr9IghpfSKY62mggdt1yCSZ8QWvTZ9jo9fjDSg9uw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/openbsd-x64@0.20.2: + '@esbuild/openbsd-x64@0.20.2': resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/sunos-x64@0.19.9: + '@esbuild/sunos-x64@0.19.9': resolution: {integrity: sha512-MLHj7k9hWh4y1ddkBpvRj2b9NCBhfgBt3VpWbHQnXRedVun/hC7sIyTGDGTfsGuXo4ebik2+3ShjcPbhtFwWDw==} engines: {node: '>=12'} cpu: [x64] os: [sunos] - requiresBuild: true - dev: true - optional: true - /@esbuild/sunos-x64@0.20.2: + '@esbuild/sunos-x64@0.20.2': resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} engines: {node: '>=12'} cpu: [x64] os: [sunos] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-arm64@0.19.9: + '@esbuild/win32-arm64@0.19.9': resolution: {integrity: sha512-GQoa6OrQ8G08guMFgeXPH7yE/8Dt0IfOGWJSfSH4uafwdC7rWwrfE6P9N8AtPGIjUzdo2+7bN8Xo3qC578olhg==} engines: {node: '>=12'} cpu: [arm64] os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-arm64@0.20.2: + '@esbuild/win32-arm64@0.20.2': resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} engines: {node: '>=12'} cpu: [arm64] os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-ia32@0.19.9: + '@esbuild/win32-ia32@0.19.9': resolution: {integrity: sha512-UOozV7Ntykvr5tSOlGCrqU3NBr3d8JqPes0QWN2WOXfvkWVGRajC+Ym0/Wj88fUgecUCLDdJPDF0Nna2UK3Qtg==} engines: {node: '>=12'} cpu: [ia32] os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-ia32@0.20.2: + '@esbuild/win32-ia32@0.20.2': resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-x64@0.19.9: + '@esbuild/win32-x64@0.19.9': resolution: {integrity: sha512-oxoQgglOP7RH6iasDrhY+R/3cHrfwIDvRlT4CGChflq6twk8iENeVvMJjmvBb94Ik1Z+93iGO27err7w6l54GQ==} engines: {node: '>=12'} cpu: [x64] os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-x64@0.20.2: + '@esbuild/win32-x64@0.20.2': resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} engines: {node: '>=12'} cpu: [x64] os: [win32] - requiresBuild: true - dev: true - optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.57.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: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 8.57.0 - eslint-visitor-keys: 3.4.3 - dev: true - /@eslint-community/regexpp@4.10.0: + '@eslint-community/regexpp@4.10.0': resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - dev: true - /@eslint-community/regexpp@4.7.0: + '@eslint-community/regexpp@4.7.0': resolution: {integrity: sha512-+HencqxU7CFJnQb7IKtuNBqS6Yx3Tz4kOL8BJXo+JyeiBm5MEX6pO8onXDkjrkCRlfYXS1Axro15ZjVFe9YgsA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - dev: true - /@eslint/eslintrc@2.1.4: + '@eslint/eslintrc@2.1.4': resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.4 - espree: 9.6.1 - globals: 13.21.0 - ignore: 5.2.4 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: true - /@eslint/js@8.57.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} - dev: true - /@fal-works/esbuild-plugin-global-externals@2.1.2: + '@fal-works/esbuild-plugin-global-externals@2.1.2': resolution: {integrity: sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==} - dev: true - /@floating-ui/core@1.5.0: + '@floating-ui/core@1.5.0': resolution: {integrity: sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==} - dependencies: - '@floating-ui/utils': 0.1.6 - /@floating-ui/dom@1.6.3: + '@floating-ui/dom@1.6.3': resolution: {integrity: sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==} - dependencies: - '@floating-ui/core': 1.5.0 - '@floating-ui/utils': 0.2.1 - /@floating-ui/react-dom@1.3.0(react-dom@18.2.0)(react@18.2.0): + '@floating-ui/react-dom@1.3.0': resolution: {integrity: sha512-htwHm67Ji5E/pROEAr7f8IKFShuiCKHwUC/UY4vC3I5jiSvGFAYnSYiZO5MlGmads+QqvUkR9ANHEguGrDv72g==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' - dependencies: - '@floating-ui/dom': 1.6.3 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: true - /@floating-ui/react-dom@2.0.2(react-dom@18.2.0)(react@18.2.0): + '@floating-ui/react-dom@2.0.2': resolution: {integrity: sha512-5qhlDvjaLmAst/rKb3VdlCinwTF4EYMiVxuuc/HVUjs46W0zgtbMmAZ1UTsDrRTxRmUEzl92mOtWbeeXL26lSQ==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' - dependencies: - '@floating-ui/dom': 1.6.3 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@floating-ui/react@0.19.2(react-dom@18.2.0)(react@18.2.0): + '@floating-ui/react@0.19.2': resolution: {integrity: sha512-JyNk4A0Ezirq8FlXECvRtQOX/iBe5Ize0W/pLkrZjfHW9GUV7Xnq6zm6fyZuQzaHHqEnVizmvlA96e1/CkZv+w==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' - dependencies: - '@floating-ui/react-dom': 1.3.0(react-dom@18.2.0)(react@18.2.0) - aria-hidden: 1.2.3 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - tabbable: 6.2.0 - dev: true - /@floating-ui/utils@0.1.6: + '@floating-ui/utils@0.1.6': resolution: {integrity: sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==} - /@floating-ui/utils@0.2.1: + '@floating-ui/utils@0.2.1': resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==} - /@fortawesome/fontawesome-common-types@0.2.36: - resolution: {integrity: sha512-a/7BiSgobHAgBWeN7N0w+lAhInrGxksn13uK7231n2m8EDPE3BMCl9NZLTGrj9ZXfCmC6LM0QLqXidIizVQ6yg==} - engines: {node: '>=6'} - requiresBuild: true - dev: true - - /@fortawesome/fontawesome-common-types@6.5.2: + '@fortawesome/fontawesome-common-types@6.5.2': resolution: {integrity: sha512-gBxPg3aVO6J0kpfHNILc+NMhXnqHumFxOmjYCFfOiLZfwhnnfhtsdA2hfJlDnj+8PjAs6kKQPenOTKj3Rf7zHw==} engines: {node: '>=6'} - requiresBuild: true - dev: true - /@fortawesome/free-regular-svg-icons@6.5.2: + '@fortawesome/free-regular-svg-icons@6.5.2': resolution: {integrity: sha512-iabw/f5f8Uy2nTRtJ13XZTS1O5+t+anvlamJ3zJGLEVE2pKsAWhPv2lq01uQlfgCX7VaveT3EVs515cCN9jRbw==} engines: {node: '>=6'} - requiresBuild: true - dependencies: - '@fortawesome/fontawesome-common-types': 6.5.2 - dev: true - - /@fortawesome/free-solid-svg-icons@5.15.4: - resolution: {integrity: sha512-JLmQfz6tdtwxoihXLg6lT78BorrFyCf59SAwBM6qV/0zXyVeDygJVb3fk+j5Qat+Yvcxp1buLTY5iDh1ZSAQ8w==} - engines: {node: '>=6'} - requiresBuild: true - dependencies: - '@fortawesome/fontawesome-common-types': 0.2.36 - dev: true - /@fortawesome/free-solid-svg-icons@6.5.2: + '@fortawesome/free-solid-svg-icons@6.5.2': resolution: {integrity: sha512-QWFZYXFE7O1Gr1dTIp+D6UcFUF0qElOnZptpi7PBUMylJh+vFmIedVe1Ir6RM1t2tEQLLSV1k7bR4o92M+uqlw==} engines: {node: '>=6'} - requiresBuild: true - dependencies: - '@fortawesome/fontawesome-common-types': 6.5.2 - dev: true - /@humanwhocodes/config-array@0.11.14: + '@humanwhocodes/config-array@0.11.14': resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - dev: true - /@humanwhocodes/module-importer@1.0.1: + '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - dev: true - /@humanwhocodes/object-schema@2.0.3: + '@humanwhocodes/object-schema@2.0.3': resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - dev: true - /@isaacs/cliui@8.0.2: + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} - dependencies: - string-width: 5.1.2 - string-width-cjs: /string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: /strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: /wrap-ansi@7.0.0 - dev: true - /@jest/schemas@29.6.3: + '@jest/schemas@29.6.3': resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@sinclair/typebox': 0.27.8 - dev: true - /@jimp/bmp@0.16.13(@jimp/custom@0.16.13): + '@jimp/bmp@0.16.13': resolution: {integrity: sha512-9edAxu7N2FX7vzkdl5Jo1BbACfycUtBQX+XBMcHA2bk62P8R0otgkHg798frgAk/WxQIzwxqOH6wMiCwrlAzdQ==} peerDependencies: '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.22.11 - '@jimp/custom': 0.16.13 - '@jimp/utils': 0.16.13 - bmp-js: 0.1.0 - dev: true - /@jimp/core@0.16.13: + '@jimp/core@0.16.13': resolution: {integrity: sha512-qXpA1tzTnlkTku9yqtuRtS/wVntvE6f3m3GNxdTdtmc+O+Wcg9Xo2ABPMh7Nc0AHbMKzwvwgB2JnjZmlmJEObg==} - dependencies: - '@babel/runtime': 7.22.11 - '@jimp/utils': 0.16.13 - any-base: 1.1.0 - buffer: 5.7.1 - exif-parser: 0.1.12 - file-type: 16.5.4 - load-bmfont: 1.4.1 - mkdirp: 0.5.6 - phin: 2.9.3 - pixelmatch: 4.0.2 - tinycolor2: 1.6.0 - dev: true - /@jimp/custom@0.16.13: + '@jimp/custom@0.16.13': resolution: {integrity: sha512-LTATglVUPGkPf15zX1wTMlZ0+AU7cGEGF6ekVF1crA8eHUWsGjrYTB+Ht4E3HTrCok8weQG+K01rJndCp/l4XA==} - dependencies: - '@babel/runtime': 7.22.11 - '@jimp/core': 0.16.13 - dev: true - /@jimp/gif@0.16.13(@jimp/custom@0.16.13): + '@jimp/gif@0.16.13': resolution: {integrity: sha512-yFAMZGv3o+YcjXilMWWwS/bv1iSqykFahFMSO169uVMtfQVfa90kt4/kDwrXNR6Q9i6VHpFiGZMlF2UnHClBvg==} peerDependencies: '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.22.11 - '@jimp/custom': 0.16.13 - '@jimp/utils': 0.16.13 - gifwrap: 0.9.4 - omggif: 1.0.10 - dev: true - /@jimp/jpeg@0.16.13(@jimp/custom@0.16.13): + '@jimp/jpeg@0.16.13': resolution: {integrity: sha512-BJHlDxzTlCqP2ThqP8J0eDrbBfod7npWCbJAcfkKqdQuFk0zBPaZ6KKaQKyKxmWJ87Z6ohANZoMKEbtvrwz1AA==} peerDependencies: '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.22.11 - '@jimp/custom': 0.16.13 - '@jimp/utils': 0.16.13 - jpeg-js: 0.4.4 - dev: true - /@jimp/plugin-blit@0.16.13(@jimp/custom@0.16.13): + '@jimp/plugin-blit@0.16.13': resolution: {integrity: sha512-8Z1k96ZFxlhK2bgrY1JNWNwvaBeI/bciLM0yDOni2+aZwfIIiC7Y6PeWHTAvjHNjphz+XCt01WQmOYWCn0ML6g==} peerDependencies: '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.22.11 - '@jimp/custom': 0.16.13 - '@jimp/utils': 0.16.13 - dev: true - /@jimp/plugin-blur@0.16.13(@jimp/custom@0.16.13): + '@jimp/plugin-blur@0.16.13': resolution: {integrity: sha512-PvLrfa8vkej3qinlebyhLpksJgCF5aiysDMSVhOZqwH5nQLLtDE9WYbnsofGw4r0VVpyw3H/ANCIzYTyCtP9Cg==} peerDependencies: '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.22.11 - '@jimp/custom': 0.16.13 - '@jimp/utils': 0.16.13 - dev: true - /@jimp/plugin-circle@0.16.13(@jimp/custom@0.16.13): + '@jimp/plugin-circle@0.16.13': resolution: {integrity: sha512-RNave7EFgZrb5V5EpdvJGAEHMnDAJuwv05hKscNfIYxf0kR3KhViBTDy+MoTnMlIvaKFULfwIgaZWzyhuINMzA==} peerDependencies: '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.22.11 - '@jimp/custom': 0.16.13 - '@jimp/utils': 0.16.13 - dev: true - /@jimp/plugin-color@0.16.13(@jimp/custom@0.16.13): + '@jimp/plugin-color@0.16.13': resolution: {integrity: sha512-xW+9BtEvoIkkH/Wde9ql4nAFbYLkVINhpgAE7VcBUsuuB34WUbcBl/taOuUYQrPEFQJ4jfXiAJZ2H/rvKjCVnQ==} peerDependencies: '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.22.11 - '@jimp/custom': 0.16.13 - '@jimp/utils': 0.16.13 - tinycolor2: 1.6.0 - dev: true - /@jimp/plugin-contain@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blit@0.16.13)(@jimp/plugin-resize@0.16.13)(@jimp/plugin-scale@0.16.13): + '@jimp/plugin-contain@0.16.13': resolution: {integrity: sha512-QayTXw4tXMwU6q6acNTQrTTFTXpNRBe+MgTGMDU0lk+23PjlFCO/9sacflelG8lsp7vNHhAxFeHptDMAksEYzg==} peerDependencies: '@jimp/custom': '>=0.3.5' '@jimp/plugin-blit': '>=0.3.5' '@jimp/plugin-resize': '>=0.3.5' '@jimp/plugin-scale': '>=0.3.5' - dependencies: - '@babel/runtime': 7.22.11 - '@jimp/custom': 0.16.13 - '@jimp/plugin-blit': 0.16.13(@jimp/custom@0.16.13) - '@jimp/plugin-resize': 0.16.13(@jimp/custom@0.16.13) - '@jimp/plugin-scale': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-resize@0.16.13) - '@jimp/utils': 0.16.13 - dev: true - /@jimp/plugin-cover@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-crop@0.16.13)(@jimp/plugin-resize@0.16.13)(@jimp/plugin-scale@0.16.13): + '@jimp/plugin-cover@0.16.13': resolution: {integrity: sha512-BSsP71GTNaqWRcvkbWuIVH+zK7b3TSNebbhDkFK0fVaUTzHuKMS/mgY4hDZIEVt7Rf5FjadAYtsujHN9w0iSYA==} peerDependencies: '@jimp/custom': '>=0.3.5' '@jimp/plugin-crop': '>=0.3.5' '@jimp/plugin-resize': '>=0.3.5' '@jimp/plugin-scale': '>=0.3.5' - dependencies: - '@babel/runtime': 7.22.11 - '@jimp/custom': 0.16.13 - '@jimp/plugin-crop': 0.16.13(@jimp/custom@0.16.13) - '@jimp/plugin-resize': 0.16.13(@jimp/custom@0.16.13) - '@jimp/plugin-scale': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-resize@0.16.13) - '@jimp/utils': 0.16.13 - dev: true - /@jimp/plugin-crop@0.16.13(@jimp/custom@0.16.13): + '@jimp/plugin-crop@0.16.13': resolution: {integrity: sha512-WEl2tPVYwzYL8OKme6Go2xqiWgKsgxlMwyHabdAU4tXaRwOCnOI7v4021gCcBb9zn/oWwguHuKHmK30Fw2Z/PA==} peerDependencies: '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.22.11 - '@jimp/custom': 0.16.13 - '@jimp/utils': 0.16.13 - dev: true - /@jimp/plugin-displace@0.16.13(@jimp/custom@0.16.13): + '@jimp/plugin-displace@0.16.13': resolution: {integrity: sha512-qt9WKq8vWrcjySa9DyQ0x/RBMHQeiVjdVSY1SJsMjssPUf0pS74qorcuAkGi89biN3YoGUgPkpqECnAWnYwgGA==} peerDependencies: '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.22.11 - '@jimp/custom': 0.16.13 - '@jimp/utils': 0.16.13 - dev: true - /@jimp/plugin-dither@0.16.13(@jimp/custom@0.16.13): + '@jimp/plugin-dither@0.16.13': resolution: {integrity: sha512-5/N3yJggbWQTlGZHQYJPmQXEwR52qaXjEzkp1yRBbtdaekXE3BG/suo0fqeoV/csf8ooI78sJzYmIrxNoWVtgQ==} peerDependencies: '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.22.11 - '@jimp/custom': 0.16.13 - '@jimp/utils': 0.16.13 - dev: true - /@jimp/plugin-fisheye@0.16.13(@jimp/custom@0.16.13): + '@jimp/plugin-fisheye@0.16.13': resolution: {integrity: sha512-2rZmTdFbT/cF9lEZIkXCYO0TsT114Q27AX5IAo0Sju6jVQbvIk1dFUTnwLDadTo8wkJlFzGqMQ24Cs8cHWOliA==} peerDependencies: '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.22.11 - '@jimp/custom': 0.16.13 - '@jimp/utils': 0.16.13 - dev: true - /@jimp/plugin-flip@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-rotate@0.16.13): + '@jimp/plugin-flip@0.16.13': resolution: {integrity: sha512-EmcgAA74FTc5u7Z+hUO/sRjWwfPPLuOQP5O64x5g4j0T12Bd29IgsYZxoutZo/rb3579+JNa/3wsSEmyVv1EpA==} peerDependencies: '@jimp/custom': '>=0.3.5' '@jimp/plugin-rotate': '>=0.3.5' - dependencies: - '@babel/runtime': 7.22.11 - '@jimp/custom': 0.16.13 - '@jimp/plugin-rotate': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blit@0.16.13)(@jimp/plugin-crop@0.16.13)(@jimp/plugin-resize@0.16.13) - '@jimp/utils': 0.16.13 - dev: true - /@jimp/plugin-gaussian@0.16.13(@jimp/custom@0.16.13): + '@jimp/plugin-gaussian@0.16.13': resolution: {integrity: sha512-A1XKfGQD0iDdIiKqFYi8nZMv4dDVYdxbrmgR7y/CzUHhSYdcmoljLIIsZZM3Iks/Wa353W3vtvkWLuDbQbch1w==} peerDependencies: '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.22.11 - '@jimp/custom': 0.16.13 - '@jimp/utils': 0.16.13 - dev: true - /@jimp/plugin-invert@0.16.13(@jimp/custom@0.16.13): + '@jimp/plugin-invert@0.16.13': resolution: {integrity: sha512-xFMrIn7czEZbdbMzZWuaZFnlLGJDVJ82y5vlsKsXRTG2kcxRsMPXvZRWHV57nSs1YFsNqXSbrC8B98n0E32njQ==} peerDependencies: '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.22.11 - '@jimp/custom': 0.16.13 - '@jimp/utils': 0.16.13 - dev: true - /@jimp/plugin-mask@0.16.13(@jimp/custom@0.16.13): + '@jimp/plugin-mask@0.16.13': resolution: {integrity: sha512-wLRYKVBXql2GAYgt6FkTnCfE+q5NomM7Dlh0oIPGAoMBWDyTx0eYutRK6PlUrRK2yMHuroAJCglICTbxqGzowQ==} peerDependencies: '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.22.11 - '@jimp/custom': 0.16.13 - '@jimp/utils': 0.16.13 - dev: true - /@jimp/plugin-normalize@0.16.13(@jimp/custom@0.16.13): + '@jimp/plugin-normalize@0.16.13': resolution: {integrity: sha512-3tfad0n9soRna4IfW9NzQdQ2Z3ijkmo21DREHbE6CGcMIxOSvfRdSvf1qQPApxjTSo8LTU4MCi/fidx/NZ0GqQ==} peerDependencies: '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.22.11 - '@jimp/custom': 0.16.13 - '@jimp/utils': 0.16.13 - dev: true - /@jimp/plugin-print@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blit@0.16.13): + '@jimp/plugin-print@0.16.13': resolution: {integrity: sha512-0m6i3p01PGRkGAK9r53hDYrkyMq+tlhLOIbsSTmZyh6HLshUKlTB7eXskF5OpVd5ZUHoltlNc6R+ggvKIzxRFw==} peerDependencies: '@jimp/custom': '>=0.3.5' '@jimp/plugin-blit': '>=0.3.5' - dependencies: - '@babel/runtime': 7.22.11 - '@jimp/custom': 0.16.13 - '@jimp/plugin-blit': 0.16.13(@jimp/custom@0.16.13) - '@jimp/utils': 0.16.13 - load-bmfont: 1.4.1 - dev: true - /@jimp/plugin-resize@0.16.13(@jimp/custom@0.16.13): + '@jimp/plugin-resize@0.16.13': resolution: {integrity: sha512-qoqtN8LDknm3fJm9nuPygJv30O3vGhSBD2TxrsCnhtOsxKAqVPJtFVdGd/qVuZ8nqQANQmTlfqTiK9mVWQ7MiQ==} peerDependencies: '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.22.11 - '@jimp/custom': 0.16.13 - '@jimp/utils': 0.16.13 - dev: true - /@jimp/plugin-rotate@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blit@0.16.13)(@jimp/plugin-crop@0.16.13)(@jimp/plugin-resize@0.16.13): + '@jimp/plugin-rotate@0.16.13': resolution: {integrity: sha512-Ev+Jjmj1nHYw897z9C3R9dYsPv7S2/nxdgfFb/h8hOwK0Ovd1k/+yYS46A0uj/JCKK0pQk8wOslYBkPwdnLorw==} peerDependencies: '@jimp/custom': '>=0.3.5' '@jimp/plugin-blit': '>=0.3.5' '@jimp/plugin-crop': '>=0.3.5' '@jimp/plugin-resize': '>=0.3.5' - dependencies: - '@babel/runtime': 7.22.11 - '@jimp/custom': 0.16.13 - '@jimp/plugin-blit': 0.16.13(@jimp/custom@0.16.13) - '@jimp/plugin-crop': 0.16.13(@jimp/custom@0.16.13) - '@jimp/plugin-resize': 0.16.13(@jimp/custom@0.16.13) - '@jimp/utils': 0.16.13 - dev: true - /@jimp/plugin-scale@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-resize@0.16.13): + '@jimp/plugin-scale@0.16.13': resolution: {integrity: sha512-05POQaEJVucjTiSGMoH68ZiELc7QqpIpuQlZ2JBbhCV+WCbPFUBcGSmE7w4Jd0E2GvCho/NoMODLwgcVGQA97A==} peerDependencies: '@jimp/custom': '>=0.3.5' '@jimp/plugin-resize': '>=0.3.5' - dependencies: - '@babel/runtime': 7.22.11 - '@jimp/custom': 0.16.13 - '@jimp/plugin-resize': 0.16.13(@jimp/custom@0.16.13) - '@jimp/utils': 0.16.13 - dev: true - /@jimp/plugin-shadow@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blur@0.16.13)(@jimp/plugin-resize@0.16.13): + '@jimp/plugin-shadow@0.16.13': resolution: {integrity: sha512-nmu5VSZ9hsB1JchTKhnnCY+paRBnwzSyK5fhkhtQHHoFD5ArBQ/5wU8y6tCr7k/GQhhGq1OrixsECeMjPoc8Zw==} peerDependencies: '@jimp/custom': '>=0.3.5' '@jimp/plugin-blur': '>=0.3.5' '@jimp/plugin-resize': '>=0.3.5' - dependencies: - '@babel/runtime': 7.22.11 - '@jimp/custom': 0.16.13 - '@jimp/plugin-blur': 0.16.13(@jimp/custom@0.16.13) - '@jimp/plugin-resize': 0.16.13(@jimp/custom@0.16.13) - '@jimp/utils': 0.16.13 - dev: true - /@jimp/plugin-threshold@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-color@0.16.13)(@jimp/plugin-resize@0.16.13): + '@jimp/plugin-threshold@0.16.13': resolution: {integrity: sha512-+3zArBH0OE3Rhjm4HyAokMsZlIq5gpQec33CncyoSwxtRBM2WAhUVmCUKuBo+Lr/2/4ISoY4BWpHKhMLDix6cA==} peerDependencies: '@jimp/custom': '>=0.3.5' '@jimp/plugin-color': '>=0.8.0' '@jimp/plugin-resize': '>=0.8.0' - dependencies: - '@babel/runtime': 7.22.11 - '@jimp/custom': 0.16.13 - '@jimp/plugin-color': 0.16.13(@jimp/custom@0.16.13) - '@jimp/plugin-resize': 0.16.13(@jimp/custom@0.16.13) - '@jimp/utils': 0.16.13 - dev: true - /@jimp/plugins@0.16.13(@jimp/custom@0.16.13): + '@jimp/plugins@0.16.13': resolution: {integrity: sha512-CJLdqODEhEVs4MgWCxpWL5l95sCBlkuSLz65cxEm56X5akIsn4LOlwnKoSEZioYcZUBvHhCheH67AyPTudfnQQ==} peerDependencies: '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.22.11 - '@jimp/custom': 0.16.13 - '@jimp/plugin-blit': 0.16.13(@jimp/custom@0.16.13) - '@jimp/plugin-blur': 0.16.13(@jimp/custom@0.16.13) - '@jimp/plugin-circle': 0.16.13(@jimp/custom@0.16.13) - '@jimp/plugin-color': 0.16.13(@jimp/custom@0.16.13) - '@jimp/plugin-contain': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blit@0.16.13)(@jimp/plugin-resize@0.16.13)(@jimp/plugin-scale@0.16.13) - '@jimp/plugin-cover': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-crop@0.16.13)(@jimp/plugin-resize@0.16.13)(@jimp/plugin-scale@0.16.13) - '@jimp/plugin-crop': 0.16.13(@jimp/custom@0.16.13) - '@jimp/plugin-displace': 0.16.13(@jimp/custom@0.16.13) - '@jimp/plugin-dither': 0.16.13(@jimp/custom@0.16.13) - '@jimp/plugin-fisheye': 0.16.13(@jimp/custom@0.16.13) - '@jimp/plugin-flip': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-rotate@0.16.13) - '@jimp/plugin-gaussian': 0.16.13(@jimp/custom@0.16.13) - '@jimp/plugin-invert': 0.16.13(@jimp/custom@0.16.13) - '@jimp/plugin-mask': 0.16.13(@jimp/custom@0.16.13) - '@jimp/plugin-normalize': 0.16.13(@jimp/custom@0.16.13) - '@jimp/plugin-print': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blit@0.16.13) - '@jimp/plugin-resize': 0.16.13(@jimp/custom@0.16.13) - '@jimp/plugin-rotate': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blit@0.16.13)(@jimp/plugin-crop@0.16.13)(@jimp/plugin-resize@0.16.13) - '@jimp/plugin-scale': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-resize@0.16.13) - '@jimp/plugin-shadow': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blur@0.16.13)(@jimp/plugin-resize@0.16.13) - '@jimp/plugin-threshold': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-color@0.16.13)(@jimp/plugin-resize@0.16.13) - timm: 1.7.1 - dev: true - /@jimp/png@0.16.13(@jimp/custom@0.16.13): + '@jimp/png@0.16.13': resolution: {integrity: sha512-8cGqINvbWJf1G0Her9zbq9I80roEX0A+U45xFby3tDWfzn+Zz8XKDF1Nv9VUwVx0N3zpcG1RPs9hfheG4Cq2kg==} peerDependencies: '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.22.11 - '@jimp/custom': 0.16.13 - '@jimp/utils': 0.16.13 - pngjs: 3.4.0 - dev: true - /@jimp/tiff@0.16.13(@jimp/custom@0.16.13): + '@jimp/tiff@0.16.13': resolution: {integrity: sha512-oJY8d9u95SwW00VPHuCNxPap6Q1+E/xM5QThb9Hu+P6EGuu6lIeLaNBMmFZyblwFbwrH+WBOZlvIzDhi4Dm/6Q==} peerDependencies: '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.22.11 - '@jimp/custom': 0.16.13 - utif: 2.0.1 - dev: true - /@jimp/types@0.16.13(@jimp/custom@0.16.13): + '@jimp/types@0.16.13': resolution: {integrity: sha512-mC0yVNUobFDjoYLg4hoUwzMKgNlxynzwt3cDXzumGvRJ7Kb8qQGOWJQjQFo5OxmGExqzPphkirdbBF88RVLBCg==} peerDependencies: '@jimp/custom': '>=0.3.5' - dependencies: - '@babel/runtime': 7.22.11 - '@jimp/bmp': 0.16.13(@jimp/custom@0.16.13) - '@jimp/custom': 0.16.13 - '@jimp/gif': 0.16.13(@jimp/custom@0.16.13) - '@jimp/jpeg': 0.16.13(@jimp/custom@0.16.13) - '@jimp/png': 0.16.13(@jimp/custom@0.16.13) - '@jimp/tiff': 0.16.13(@jimp/custom@0.16.13) - timm: 1.7.1 - dev: true - /@jimp/utils@0.16.13: + '@jimp/utils@0.16.13': resolution: {integrity: sha512-VyCpkZzFTHXtKgVO35iKN0sYR10psGpV6SkcSeV4oF7eSYlR8Bl6aQLCzVeFjvESF7mxTmIiI3/XrMobVrtxDA==} - dependencies: - '@babel/runtime': 7.22.11 - regenerator-runtime: 0.13.11 - dev: true - /@jridgewell/gen-mapping@0.3.3: + '@jridgewell/gen-mapping@0.3.3': resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.19 - /@jridgewell/gen-mapping@0.3.5: + '@jridgewell/gen-mapping@0.3.5': resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.25 - /@jridgewell/resolve-uri@3.1.1: + '@jridgewell/resolve-uri@3.1.1': resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} engines: {node: '>=6.0.0'} - /@jridgewell/set-array@1.1.2: + '@jridgewell/set-array@1.1.2': resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} - /@jridgewell/set-array@1.2.1: + '@jridgewell/set-array@1.2.1': resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} - /@jridgewell/source-map@0.3.5: + '@jridgewell/source-map@0.3.5': resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} - dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.19 - dev: true - /@jridgewell/sourcemap-codec@1.4.15: + '@jridgewell/sourcemap-codec@1.4.15': resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - /@jridgewell/trace-mapping@0.3.19: + '@jridgewell/trace-mapping@0.3.19': resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} - dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 - /@jridgewell/trace-mapping@0.3.25: + '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 - /@leichtgewicht/ip-codec@2.0.4: + '@leichtgewicht/ip-codec@2.0.4': resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} - dev: true - /@mantine/core@6.0.21(@emotion/react@11.11.4)(@mantine/hooks@6.0.21)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@mantine/core@6.0.21': resolution: {integrity: sha512-Kx4RrRfv0I+cOCIcsq/UA2aWcYLyXgW3aluAuW870OdXnbII6qg7RW28D+r9D76SHPxWFKwIKwmcucAG08Divg==} peerDependencies: '@mantine/hooks': 6.0.21 react: '>=16.8.0' react-dom: '>=16.8.0' - dependencies: - '@floating-ui/react': 0.19.2(react-dom@18.2.0)(react@18.2.0) - '@mantine/hooks': 6.0.21(react@18.2.0) - '@mantine/styles': 6.0.21(@emotion/react@11.11.4)(react-dom@18.2.0)(react@18.2.0) - '@mantine/utils': 6.0.21(react@18.2.0) - '@radix-ui/react-scroll-area': 1.0.2(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.5(@types/react@18.2.77)(react@18.2.0) - react-textarea-autosize: 8.3.4(@types/react@18.2.77)(react@18.2.0) - transitivePeerDependencies: - - '@emotion/react' - - '@types/react' - dev: true - /@mantine/hooks@6.0.21(react@18.2.0): + '@mantine/hooks@6.0.21': resolution: {integrity: sha512-sYwt5wai25W6VnqHbS5eamey30/HD5dNXaZuaVEAJ2i2bBv8C0cCiczygMDpAFiSYdXoSMRr/SZ2CrrPTzeNew==} peerDependencies: react: '>=16.8.0' - dependencies: - react: 18.2.0 - dev: true - /@mantine/prism@6.0.21(@mantine/core@6.0.21)(@mantine/hooks@6.0.21)(react-dom@18.2.0)(react@18.2.0): + '@mantine/prism@6.0.21': resolution: {integrity: sha512-M9hDUAuuxiINI7f07V0qlX532UXlOTpBqNcG1WWm80t6C0fHjzkTvFj77QpnGS73+MI88mV8ru458y10bQjTBA==} peerDependencies: '@mantine/core': 6.0.21 '@mantine/hooks': 6.0.21 react: '>=16.8.0' react-dom: '>=16.8.0' - dependencies: - '@mantine/core': 6.0.21(@emotion/react@11.11.4)(@mantine/hooks@6.0.21)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@mantine/hooks': 6.0.21(react@18.2.0) - '@mantine/utils': 6.0.21(react@18.2.0) - prism-react-renderer: 1.3.5(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: true - /@mantine/styles@6.0.21(@emotion/react@11.11.4)(react-dom@18.2.0)(react@18.2.0): + '@mantine/styles@6.0.21': resolution: {integrity: sha512-PVtL7XHUiD/B5/kZ/QvZOZZQQOj12QcRs3Q6nPoqaoPcOX5+S7bMZLMH0iLtcGq5OODYk0uxlvuJkOZGoPj8Mg==} peerDependencies: '@emotion/react': '>=11.9.0' react: '>=16.8.0' react-dom: '>=16.8.0' - dependencies: - '@emotion/react': 11.11.4(@types/react@18.2.77)(react@18.2.0) - clsx: 1.1.1 - csstype: 3.0.9 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: true - /@mantine/utils@6.0.21(react@18.2.0): + '@mantine/utils@6.0.21': resolution: {integrity: sha512-33RVDRop5jiWFao3HKd3Yp7A9mEq4HAJxJPTuYm1NkdqX6aTKOQK7wT8v8itVodBp+sb4cJK6ZVdD1UurK/txQ==} peerDependencies: react: '>=16.8.0' - dependencies: - react: 18.2.0 - dev: true - - /@mdi/js@7.3.67: - resolution: {integrity: sha512-MnRjknFqpTC6FifhGHjZ0+QYq2bAkZFQqIj8JA2AdPZbBxUvr8QSgB2yPAJ8/ob/XkR41xlg5majDR3c1JP1hw==} - dev: true - /@mdi/js@7.4.47: + '@mdi/js@7.4.47': resolution: {integrity: sha512-KPnNOtm5i2pMabqZxpUz7iQf+mfrYZyKCZ8QNz85czgEt7cuHcGorWfdzUMWYA0SD+a6Hn4FmJ+YhzzzjkTZrQ==} - dev: true - /@mdx-js/react@3.0.1(@types/react@18.2.77)(react@18.2.0): + '@mdx-js/react@3.0.1': resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==} peerDependencies: '@types/react': '>=16' react: '>=16' - dependencies: - '@types/mdx': 2.0.7 - '@types/react': 18.2.77 - react: 18.2.0 - dev: true - /@microsoft/api-extractor-model@7.28.13(@types/node@18.19.31): + '@microsoft/api-extractor-model@7.28.13': resolution: {integrity: sha512-39v/JyldX4MS9uzHcdfmjjfS6cYGAoXV+io8B5a338pkHiSt+gy2eXQ0Q7cGFJ7quSa1VqqlMdlPrB6sLR/cAw==} - dependencies: - '@microsoft/tsdoc': 0.14.2 - '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 4.0.2(@types/node@18.19.31) - transitivePeerDependencies: - - '@types/node' - dev: true - /@microsoft/api-extractor@7.43.0(@types/node@18.19.31): + '@microsoft/api-extractor@7.43.0': resolution: {integrity: sha512-GFhTcJpB+MI6FhvXEI9b2K0snulNLWHqC/BbcJtyNYcKUiw7l3Lgis5ApsYncJ0leALX7/of4XfmXk+maT111w==} hasBin: true - dependencies: - '@microsoft/api-extractor-model': 7.28.13(@types/node@18.19.31) - '@microsoft/tsdoc': 0.14.2 - '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 4.0.2(@types/node@18.19.31) - '@rushstack/rig-package': 0.5.2 - '@rushstack/terminal': 0.10.0(@types/node@18.19.31) - '@rushstack/ts-command-line': 4.19.1(@types/node@18.19.31) - lodash: 4.17.21 - minimatch: 3.0.8 - resolve: 1.22.8 - semver: 7.5.4 - source-map: 0.6.1 - typescript: 5.4.5 - transitivePeerDependencies: - - '@types/node' - dev: true - /@microsoft/tsdoc-config@0.16.2: + '@microsoft/tsdoc-config@0.16.2': resolution: {integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==} - dependencies: - '@microsoft/tsdoc': 0.14.2 - ajv: 6.12.6 - jju: 1.4.0 - resolve: 1.19.0 - dev: true - /@microsoft/tsdoc@0.14.2: + '@microsoft/tsdoc@0.14.2': resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} - dev: true - /@ndelangen/get-tarball@3.0.9: + '@ndelangen/get-tarball@3.0.9': resolution: {integrity: sha512-9JKTEik4vq+yGosHYhZ1tiH/3WpUS0Nh0kej4Agndhox8pAdWhEx5knFVRcb/ya9knCRCs1rPxNrSXTDdfVqpA==} - dependencies: - gunzip-maybe: 1.4.2 - pump: 3.0.0 - tar-fs: 2.1.1 - dev: true - /@nodelib/fs.scandir@2.1.5: + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - dev: true - /@nodelib/fs.stat@2.0.5: + '@nodelib/fs.stat@2.0.5': resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} - dev: true - /@nodelib/fs.walk@1.2.8: + '@nodelib/fs.walk@1.2.8': resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 - dev: true - /@nrwl/tao@18.2.4: + '@nrwl/tao@18.2.4': resolution: {integrity: sha512-kgJwZ26F+AzvFXaW5eh1g4HLntPcJ6+EE7JyEvrdRzpw7KxTqWy6Ql7dYys6zGlpP4c3PbsXwdc7tGM3Df2PNg==} hasBin: true - dependencies: - nx: 18.2.4 - tslib: 2.6.2 - transitivePeerDependencies: - - '@swc-node/register' - - '@swc/core' - - debug - dev: true - /@nx/nx-darwin-arm64@18.2.4: + '@nx/nx-darwin-arm64@18.2.4': resolution: {integrity: sha512-RYhMImghdyHmwnbNoR2CkLz4Opj9EmuHY3lMfsorg+T4wIOql/iXACrqjnreN7Hy9myJDo1EIbYZ4x8VSxFWtA==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - requiresBuild: true - dev: true - optional: true - /@nx/nx-darwin-x64@18.2.4: + '@nx/nx-darwin-x64@18.2.4': resolution: {integrity: sha512-2mXMslSRD/ZoI/oaX+0Mh9J/hucXtNgdwC4YFbp1u8UKquAaQ6hf4uo0s4i+AfLX0F7roMtkFPaG/+MQUJE1Rw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - requiresBuild: true - dev: true - optional: true - /@nx/nx-freebsd-x64@18.2.4: + '@nx/nx-freebsd-x64@18.2.4': resolution: {integrity: sha512-QUiYLvyUT0PS7D8erf49xa1Jyw4Gfev5gtYfME34Twmn/JPx/99ZkBG4wHbzLqRGwlO5K6m6P4qs30Pzfwtw7A==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@nx/nx-linux-arm-gnueabihf@18.2.4: + '@nx/nx-linux-arm-gnueabihf@18.2.4': resolution: {integrity: sha512-+fjFciSUhvDV8dPa97Brwb83k3Xa4gHPI2Un8wlpp28Cv4horeGruRZrrifR1VmD2wp2UBIMl5n7YsDP8KvYhQ==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - requiresBuild: true - dev: true - optional: true - /@nx/nx-linux-arm64-gnu@18.2.4: + '@nx/nx-linux-arm64-gnu@18.2.4': resolution: {integrity: sha512-lfaTc+AvV56Uv5mXROiRwh2REiI/7IsqeRDfL+prcuuvJ5Oxi2wYVgnmqcHL+ryQnk0Qn7/d+j/BmYHX5Ve5jQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@nx/nx-linux-arm64-musl@18.2.4: + '@nx/nx-linux-arm64-musl@18.2.4': resolution: {integrity: sha512-U6eoLTQmbxUWU9kZxx6hsYN4zmmOrsDDeW+i3aj5aeahfYlmyz6TsT0V3FSB70WGJC5aMVgEi4RkntQMKkm5vQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@nx/nx-linux-x64-gnu@18.2.4: + '@nx/nx-linux-x64-gnu@18.2.4': resolution: {integrity: sha512-q8WcJhmcRNORkKjax6WcUwMJe/1mQs+RYlUkGqmi7tD7lfcLSqdLPJVjqVmQAwmy1Wh/MHPsbqRwSerUnCxB1A==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@nx/nx-linux-x64-musl@18.2.4: + '@nx/nx-linux-x64-musl@18.2.4': resolution: {integrity: sha512-0MDuoPgHa6kkBrjg7hwZ2qQivhJbh3lk7r3q4osDrqZcGxq5XVJqeAmYFyChQy4dbQfUm4hhYkEfzpU8M2lnvQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@nx/nx-win32-arm64-msvc@18.2.4: + '@nx/nx-win32-arm64-msvc@18.2.4': resolution: {integrity: sha512-uLhSRtfnXzN000Qf27GOjEPXzd4/jBWqv2x419IMh+AEtKHuCEpQNBUAyLvBbQ79SMr+FmCXHB8AeeJ7bEUiRw==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - requiresBuild: true - dev: true - optional: true - /@nx/nx-win32-x64-msvc@18.2.4: + '@nx/nx-win32-x64-msvc@18.2.4': resolution: {integrity: sha512-Y52Afz02Ub1kRZXd6NUTwPMjKQqBKZ35e5dUEpl14na2fWvdgdMz4bYOBPUcmQrovlxBGhmFXtFzxkdW3zyRbQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - requiresBuild: true - dev: true - optional: true - /@pkgjs/parseargs@0.11.0: + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - requiresBuild: true - dev: true - optional: true - /@pkgr/core@0.1.1: + '@pkgr/core@0.1.1': resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - dev: true - /@pmmmwh/react-refresh-webpack-plugin@0.5.11(react-refresh@0.14.0)(webpack-dev-server@4.15.2)(webpack@5.91.0): + '@pmmmwh/react-refresh-webpack-plugin@0.5.11': resolution: {integrity: sha512-7j/6vdTym0+qZ6u4XbSAxrWBGYSdCfTzySkj7WAFgDLmSyWlOrWvpyzxlFh5jtw9dn0oL/jtW+06XfFiisN3JQ==} engines: {node: '>= 10.13'} peerDependencies: @@ -3547,57 +2128,26 @@ packages: optional: true webpack-plugin-serve: optional: true - dependencies: - ansi-html-community: 0.0.8 - common-path-prefix: 3.0.0 - core-js-pure: 3.34.0 - error-stack-parser: 2.1.4 - find-up: 5.0.0 - html-entities: 2.4.0 - loader-utils: 2.0.4 - react-refresh: 0.14.0 - schema-utils: 3.3.0 - source-map: 0.7.4 - webpack: 5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4) - webpack-dev-server: 4.15.2(webpack-cli@5.1.4)(webpack@5.91.0) - dev: true - /@polka/url@1.0.0-next.24: + '@polka/url@1.0.0-next.24': resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==} - dev: true - - /@popperjs/core@2.9.3: - resolution: {integrity: sha512-xDu17cEfh7Kid/d95kB6tZsLOmSWKCZKtprnhVepjsSaCij+lM3mItSJDuuHDMbCWTh8Ejmebwb+KONcCJ0eXQ==} - dev: true - /@radix-ui/colors@3.0.0: + '@radix-ui/colors@3.0.0': resolution: {integrity: sha512-FUOsGBkHrYJwCSEtWRCIfQbZG7q1e6DgxCIOe1SUQzDe/7rXXeA47s8yCn6fuTNQAj1Zq4oTFi9Yjp3wzElcxg==} - /@radix-ui/number@1.0.0: + '@radix-ui/number@1.0.0': resolution: {integrity: sha512-Ofwh/1HX69ZfJRiRBMTy7rgjAzHmwe4kW9C9Y99HTRUcYLUuVT0KESFj15rPjRgKJs20GPq8Bm5aEDJ8DuA3vA==} - dependencies: - '@babel/runtime': 7.23.6 - dev: true - /@radix-ui/number@1.0.1: + '@radix-ui/number@1.0.1': resolution: {integrity: sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==} - dependencies: - '@babel/runtime': 7.23.6 - dev: false - /@radix-ui/primitive@1.0.0: + '@radix-ui/primitive@1.0.0': resolution: {integrity: sha512-3e7rn8FDMin4CgeL7Z/49smCA3rFYY3Ha2rUQ7HRWFadS5iCRw08ZgVT1LaNTCNqgvrUiyczLflrVrF0SRQtNA==} - dependencies: - '@babel/runtime': 7.23.6 - dev: true - /@radix-ui/primitive@1.0.1: + '@radix-ui/primitive@1.0.1': resolution: {integrity: sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==} - dependencies: - '@babel/runtime': 7.23.6 - dev: false - /@radix-ui/react-accessible-icon@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-accessible-icon@1.0.3': resolution: {integrity: sha512-duVGKeWPSUILr/MdlPxV+GeULTc2rS1aihGdQ3N2qCUPMgxYLxvAsHJM3mCVLF8d5eK+ympmB22mb1F3a5biNw==} peerDependencies: '@types/react': '*' @@ -3609,16 +2159,8 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-alert-dialog@1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-alert-dialog@1.0.5': resolution: {integrity: sha512-OrVIOcZL0tl6xibeuGt5/+UxoT2N27KCFOPjFyfXMnchxSHZ/OW7cCX2nGlIYJrbHK/fczPcFzAwvNBB6XBNMA==} peerDependencies: '@types/react': '*' @@ -3630,21 +2172,8 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.77)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-arrow@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-arrow@1.0.3': resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==} peerDependencies: '@types/react': '*' @@ -3656,16 +2185,8 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-aspect-ratio@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-aspect-ratio@1.0.3': resolution: {integrity: sha512-fXR5kbMan9oQqMuacfzlGG/SQMcmMlZ4wrvpckv8SgUulD0MMpspxJrxg/Gp/ISV3JfV1AeSWTYK9GvxA4ySwA==} peerDependencies: '@types/react': '*' @@ -3677,16 +2198,8 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-avatar@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-avatar@1.0.4': resolution: {integrity: sha512-kVK2K7ZD3wwj3qhle0ElXhOjbezIgyl2hVvgwfIdexL3rN6zJmy5AqqIf+D31lxVppdzV8CjAfZ6PklkmInZLw==} peerDependencies: '@types/react': '*' @@ -3698,19 +2211,8 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-checkbox@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-checkbox@1.0.4': resolution: {integrity: sha512-CBuGQa52aAYnADZVt/KBQzXrwx6TqnlwtcIPGtVt5JkkzQwMOLJjPukimhfKEr4GQNd43C+djUh5Ikopj8pSLg==} peerDependencies: '@types/react': '*' @@ -3722,23 +2224,8 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-collection@1.0.3': resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==} peerDependencies: '@types/react': '*' @@ -3750,28 +2237,13 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.77)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-compose-refs@1.0.0(react@18.2.0): + '@radix-ui/react-compose-refs@1.0.0': resolution: {integrity: sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.23.6 - react: 18.2.0 - dev: true - /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.77)(react@18.2.0): + '@radix-ui/react-compose-refs@1.0.1': resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} peerDependencies: '@types/react': '*' @@ -3779,12 +2251,8 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@babel/runtime': 7.22.11 - '@types/react': 18.2.77 - react: 18.2.0 - /@radix-ui/react-context-menu@2.1.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-context-menu@2.1.5': resolution: {integrity: sha512-R5XaDj06Xul1KGb+WP8qiOh7tKJNz2durpLBXAGZjSVtctcRFCuEvy2gtMwRJGePwQQE5nV77gs4FwRi8T+r2g==} peerDependencies: '@types/react': '*' @@ -3796,30 +2264,13 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-menu': 2.0.6(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-context@1.0.0(react@18.2.0): + '@radix-ui/react-context@1.0.0': resolution: {integrity: sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.23.6 - react: 18.2.0 - dev: true - /@radix-ui/react-context@1.0.1(@types/react@18.2.77)(react@18.2.0): + '@radix-ui/react-context@1.0.1': resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} peerDependencies: '@types/react': '*' @@ -3827,13 +2278,8 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@types/react': 18.2.77 - react: 18.2.0 - dev: false - /@radix-ui/react-dialog@1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-dialog@1.0.5': resolution: {integrity: sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==} peerDependencies: '@types/react': '*' @@ -3845,38 +2291,13 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 - aria-hidden: 1.2.3 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.5(@types/react@18.2.77)(react@18.2.0) - dev: false - /@radix-ui/react-direction@1.0.0(react@18.2.0): + '@radix-ui/react-direction@1.0.0': resolution: {integrity: sha512-2HV05lGUgYcA6xgLQ4BKPDmtL+QbIZYH5fCOTAOOcJ5O0QbWS3i9lKaurLzliYUDhORI2Qr3pyjhJh44lKA3rQ==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.23.6 - react: 18.2.0 - dev: true - /@radix-ui/react-direction@1.0.1(@types/react@18.2.77)(react@18.2.0): + '@radix-ui/react-direction@1.0.1': resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==} peerDependencies: '@types/react': '*' @@ -3884,13 +2305,8 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@types/react': 18.2.77 - react: 18.2.0 - dev: false - /@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-dismissable-layer@1.0.5': resolution: {integrity: sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==} peerDependencies: '@types/react': '*' @@ -3902,20 +2318,8 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.77)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-dropdown-menu@2.0.6(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-dropdown-menu@2.0.6': resolution: {integrity: sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA==} peerDependencies: '@types/react': '*' @@ -3927,22 +2331,8 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-menu': 2.0.6(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.77)(react@18.2.0): + '@radix-ui/react-focus-guards@1.0.1': resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==} peerDependencies: '@types/react': '*' @@ -3950,13 +2340,8 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@types/react': 18.2.77 - react: 18.2.0 - dev: false - /@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-focus-scope@1.0.4': resolution: {integrity: sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==} peerDependencies: '@types/react': '*' @@ -3968,18 +2353,8 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-form@0.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-form@0.0.3': resolution: {integrity: sha512-kgE+Z/haV6fxE5WqIXj05KkaXa3OkZASoTDy25yX2EIp/x0c54rOH/vFr5nOZTg7n7T1z8bSyXmiVIFP9bbhPQ==} peerDependencies: '@types/react': '*' @@ -3991,21 +2366,8 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-label': 2.0.2(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-hover-card@1.0.7(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-hover-card@1.0.7': resolution: {integrity: sha512-OcUN2FU0YpmajD/qkph3XzMcK/NmSk9hGWnjV68p6QiZMgILugusgQwnLSDs3oFSJYGKf3Y49zgFedhGh04k9A==} peerDependencies: '@types/react': '*' @@ -4017,32 +2379,13 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-icons@1.3.0(react@18.2.0): + '@radix-ui/react-icons@1.3.0': resolution: {integrity: sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==} peerDependencies: react: ^16.x || ^17.x || ^18.x - dependencies: - react: 18.2.0 - dev: false - /@radix-ui/react-id@1.0.1(@types/react@18.2.77)(react@18.2.0): + '@radix-ui/react-id@1.0.1': resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} peerDependencies: '@types/react': '*' @@ -4050,14 +2393,8 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@types/react': 18.2.77 - react: 18.2.0 - dev: false - /@radix-ui/react-label@2.0.2(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-label@2.0.2': resolution: {integrity: sha512-N5ehvlM7qoTLx7nWPodsPYPgMzA5WM8zZChQg8nyFJKnDO5WHdba1vv5/H6IO5LtJMfD2Q3wh1qHFGNtK0w3bQ==} peerDependencies: '@types/react': '*' @@ -4069,16 +2406,8 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-menu@2.0.6(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-menu@2.0.6': resolution: {integrity: sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==} peerDependencies: '@types/react': '*' @@ -4090,33 +2419,8 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 - aria-hidden: 1.2.3 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.5(@types/react@18.2.77)(react@18.2.0) - dev: false - /@radix-ui/react-popover@1.0.7(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-popover@1.0.7': resolution: {integrity: sha512-shtvVnlsxT6faMnK/a7n0wptwBD23xc1Z5mdrtKLwVEfsEMXodS0r5s0/g5P0hX//EKYZS2sxUjqfzlg52ZSnQ==} peerDependencies: '@types/react': '*' @@ -4128,30 +2432,8 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 - aria-hidden: 1.2.3 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.5(@types/react@18.2.77)(react@18.2.0) - dev: false - /@radix-ui/react-popper@1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-popper@1.1.3': resolution: {integrity: sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==} peerDependencies: '@types/react': '*' @@ -4163,25 +2445,8 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@floating-ui/react-dom': 2.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/rect': 1.0.1 - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-portal@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-portal@1.0.4': resolution: {integrity: sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==} peerDependencies: '@types/react': '*' @@ -4193,29 +2458,14 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-presence@1.0.0(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-presence@1.0.0': resolution: {integrity: sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: true - /@radix-ui/react-presence@1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-presence@1.0.1': resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==} peerDependencies: '@types/react': '*' @@ -4227,29 +2477,14 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-primitive@1.0.1(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-primitive@1.0.1': resolution: {integrity: sha512-fHbmislWVkZaIdeF6GZxF0A/NH/3BjrGIYj+Ae6eTmTCr7EB0RQAAVEiqsXK6p3/JcRqVSBQoceZroj30Jj3XA==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/react-slot': 1.0.1(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: true - /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-primitive@1.0.3': resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} peerDependencies: '@types/react': '*' @@ -4261,16 +2496,8 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.77)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-radio-group@1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-radio-group@1.1.3': resolution: {integrity: sha512-x+yELayyefNeKeTx4fjK6j99Fs6c4qKm3aY38G3swQVTN6xMpsrbigC0uHs2L//g8q4qR7qOcww8430jJmi2ag==} peerDependencies: '@types/react': '*' @@ -4282,25 +2509,8 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-roving-focus@1.0.4': resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==} peerDependencies: '@types/react': '*' @@ -4312,44 +2522,14 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-scroll-area@1.0.2(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-scroll-area@1.0.2': resolution: {integrity: sha512-k8VseTxI26kcKJaX0HPwkvlNBPTs56JRdYzcZ/vzrNUkDlvXBy8sMc7WvCpYzZkHgb+hd72VW9MqkqecGtuNgg==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/number': 1.0.0 - '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-direction': 1.0.0(react@18.2.0) - '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: true - /@radix-ui/react-scroll-area@1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-scroll-area@1.0.5': resolution: {integrity: sha512-b6PAgH4GQf9QEn8zbT2XUHpW5z8BzqEc7Kl11TwDrvuTrxlkcjTD5qa/bxgKr+nmuXKu4L/W5UZ4mlP/VG/5Gw==} peerDependencies: '@types/react': '*' @@ -4361,24 +2541,8 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/number': 1.0.1 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-select@2.0.0(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-select@2.0.0': resolution: {integrity: sha512-RH5b7af4oHtkcHS7pG6Sgv5rk5Wxa7XI8W5gvB1N/yiuDGZxko1ynvOiVhFM7Cis2A8zxF9bTOUVbRDzPepe6w==} peerDependencies: '@types/react': '*' @@ -4390,36 +2554,8 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/number': 1.0.1 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 - aria-hidden: 1.2.3 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.5(@types/react@18.2.77)(react@18.2.0) - dev: false - /@radix-ui/react-separator@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-separator@1.0.3': resolution: {integrity: sha512-itYmTy/kokS21aiV5+Z56MZB54KrhPgn6eHDKkFeOLR34HMN2s8PaN47qZZAGnvupcjxHaFZnW4pQEh0BvvVuw==} peerDependencies: '@types/react': '*' @@ -4431,16 +2567,8 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-slider@1.1.2(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-slider@1.1.2': resolution: {integrity: sha512-NKs15MJylfzVsCagVSWKhGGLNR1W9qWs+HtgbmjjVUB3B9+lb3PYoXxVju3kOrpf0VKyVCtZp+iTwVoqpa1Chw==} peerDependencies: '@types/react': '*' @@ -4452,36 +2580,13 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/number': 1.0.1 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-slot@1.0.1(react@18.2.0): + '@radix-ui/react-slot@1.0.1': resolution: {integrity: sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - react: 18.2.0 - dev: true - /@radix-ui/react-slot@1.0.2(@types/react@18.2.77)(react@18.2.0): + '@radix-ui/react-slot@1.0.2': resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} peerDependencies: '@types/react': '*' @@ -4489,13 +2594,8 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@babel/runtime': 7.22.11 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@types/react': 18.2.77 - react: 18.2.0 - /@radix-ui/react-switch@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-switch@1.0.3': resolution: {integrity: sha512-mxm87F88HyHztsI7N+ZUmEoARGkC22YVW5CaC+Byc+HRpuvCrOBPTAnXgf+tZ/7i0Sg/eOePGdMhUKhPaQEqow==} peerDependencies: '@types/react': '*' @@ -4507,22 +2607,8 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-tabs@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-tabs@1.0.4': resolution: {integrity: sha512-egZfYY/+wRNCflXNHx+dePvnz9FbmssDTJBtgRfDY7e8SE5oIo3Py2eCB1ckAbh1Q7cQ/6yJZThJ++sgbxibog==} peerDependencies: '@types/react': '*' @@ -4534,23 +2620,8 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-tooltip@1.0.7(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): + '@radix-ui/react-tooltip@1.0.7': resolution: {integrity: sha512-lPh5iKNFVQ/jav/j6ZrWq3blfDJ0OH9R6FlNUHPMqdLuQ9vwDgFsRxvl8b7Asuy5c8xmoojHUxKHQSOAvMHxyw==} peerDependencies: '@types/react': '*' @@ -4562,36 +2633,13 @@ packages: optional: true '@types/react-dom': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-use-callback-ref@1.0.0(react@18.2.0): + '@radix-ui/react-use-callback-ref@1.0.0': resolution: {integrity: sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.23.6 - react: 18.2.0 - dev: true - /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.77)(react@18.2.0): + '@radix-ui/react-use-callback-ref@1.0.1': resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} peerDependencies: '@types/react': '*' @@ -4599,13 +2647,8 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@types/react': 18.2.77 - react: 18.2.0 - dev: false - /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.77)(react@18.2.0): + '@radix-ui/react-use-controllable-state@1.0.1': resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} peerDependencies: '@types/react': '*' @@ -4613,14 +2656,8 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@types/react': 18.2.77 - react: 18.2.0 - dev: false - /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.77)(react@18.2.0): + '@radix-ui/react-use-escape-keydown@1.0.3': resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} peerDependencies: '@types/react': '*' @@ -4628,23 +2665,13 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@types/react': 18.2.77 - react: 18.2.0 - dev: false - /@radix-ui/react-use-layout-effect@1.0.0(react@18.2.0): + '@radix-ui/react-use-layout-effect@1.0.0': resolution: {integrity: sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.23.6 - react: 18.2.0 - dev: true - /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.77)(react@18.2.0): + '@radix-ui/react-use-layout-effect@1.0.1': resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} peerDependencies: '@types/react': '*' @@ -4652,13 +2679,8 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@types/react': 18.2.77 - react: 18.2.0 - dev: false - /@radix-ui/react-use-previous@1.0.1(@types/react@18.2.77)(react@18.2.0): + '@radix-ui/react-use-previous@1.0.1': resolution: {integrity: sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==} peerDependencies: '@types/react': '*' @@ -4666,13 +2688,8 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@types/react': 18.2.77 - react: 18.2.0 - dev: false - /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.77)(react@18.2.0): + '@radix-ui/react-use-rect@1.0.1': resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==} peerDependencies: '@types/react': '*' @@ -4680,14 +2697,8 @@ packages: peerDependenciesMeta: '@types/react': optional: true - dependencies: - '@babel/runtime': 7.23.6 - '@radix-ui/rect': 1.0.1 - '@types/react': 18.2.77 - react: 18.2.0 - dev: false - /@radix-ui/react-use-size@1.0.1(@types/react@18.2.77)(react@18.2.0): + '@radix-ui/react-use-size@1.0.1': resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==} peerDependencies: '@types/react': '*' @@ -4695,123 +2706,7707 @@ packages: peerDependenciesMeta: '@types/react': optional: true + + '@radix-ui/react-visually-hidden@1.0.3': + resolution: {integrity: sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/rect@1.0.1': + resolution: {integrity: sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==} + + '@radix-ui/themes@2.0.3': + resolution: {integrity: sha512-yaXQ8aWT2P1CQ0Xe6YCRD9HXsfMTvKkrIYkrc4aitCzhGTLS0sjtTqKmrxIWMVA+3DIbEuG9K/8aAMRJBhep8g==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@redux-devtools/extension@3.3.0': + resolution: {integrity: sha512-X34S/rC8S/M1BIrkYD1mJ5f8vlH0BDqxXrs96cvxSBo4FhMdbhU+GUGsmNYov1xjSyLMHgo8NYrUG8bNX7525g==} + peerDependencies: + redux: ^3.1.0 || ^4.0.0 || ^5.0.0 + + '@remix-run/router@1.15.3': + resolution: {integrity: sha512-Oy8rmScVrVxWZVOpEF57ovlnhpZ8CCPlnIIumVcV9nFdiSIrus99+Lw78ekXyGvVDlIsFJbSfmSovJUhCWYV3w==} + engines: {node: '>=14.0.0'} + + '@rollup/plugin-babel@5.3.1': + resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} + engines: {node: '>= 10.0.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@types/babel__core': ^7.1.9 + rollup: ^1.20.0||^2.0.0 + peerDependenciesMeta: + '@types/babel__core': + optional: true + + '@rollup/plugin-node-resolve@11.2.1': + resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} + engines: {node: '>= 10.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + + '@rollup/plugin-replace@2.4.2': + resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==} + peerDependencies: + rollup: ^1.20.0 || ^2.0.0 + + '@rollup/plugin-typescript@11.1.6': + resolution: {integrity: sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.14.0||^3.0.0||^4.0.0 + tslib: '*' + typescript: 5.4.5 + peerDependenciesMeta: + rollup: + optional: true + tslib: + optional: true + + '@rollup/pluginutils@3.1.0': + resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} + engines: {node: '>= 8.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.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.14.2': + resolution: {integrity: sha512-ahxSgCkAEk+P/AVO0vYr7DxOD3CwAQrT0Go9BJyGQ9Ef0QxVOfjDZMiF4Y2s3mLyPrjonchIMH/tbWHucJMykQ==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.14.2': + resolution: {integrity: sha512-lAarIdxZWbFSHFSDao9+I/F5jDaKyCqAPMq5HqnfpBw8dKDiCaaqM0lq5h1pQTLeIqueeay4PieGR5jGZMWprw==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.14.2': + resolution: {integrity: sha512-SWsr8zEUk82KSqquIMgZEg2GE5mCSfr9sE/thDROkX6pb3QQWPp8Vw8zOq2GyxZ2t0XoSIUlvHDkrf5Gmf7x3Q==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.14.2': + resolution: {integrity: sha512-o/HAIrQq0jIxJAhgtIvV5FWviYK4WB0WwV91SLUnsliw1lSAoLsmgEEgRWzDguAFeUEUUoIWXiJrPqU7vGiVkA==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-linux-arm-gnueabihf@4.14.2': + resolution: {integrity: sha512-nwlJ65UY9eGq91cBi6VyDfArUJSKOYt5dJQBq8xyLhvS23qO+4Nr/RreibFHjP6t+5ap2ohZrUJcHv5zk5ju/g==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.14.2': + resolution: {integrity: sha512-Pg5TxxO2IVlMj79+c/9G0LREC9SY3HM+pfAwX7zj5/cAuwrbfj2Wv9JbMHIdPCfQpYsI4g9mE+2Bw/3aeSs2rQ==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.14.2': + resolution: {integrity: sha512-cAOTjGNm84gc6tS02D1EXtG7tDRsVSDTBVXOLbj31DkwfZwgTPYZ6aafSU7rD/4R2a34JOwlF9fQayuTSkoclA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.14.2': + resolution: {integrity: sha512-4RyT6v1kXb7C0fn6zV33rvaX05P0zHoNzaXI/5oFHklfKm602j+N4mn2YvoezQViRLPnxP8M1NaY4s/5kXO5cw==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.14.2': + resolution: {integrity: sha512-KNUH6jC/vRGAKSorySTyc/yRYlCwN/5pnMjXylfBniwtJx5O7X17KG/0efj8XM3TZU7raYRXJFFReOzNmL1n1w==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.14.2': + resolution: {integrity: sha512-xPV4y73IBEXToNPa3h5lbgXOi/v0NcvKxU0xejiFw6DtIYQqOTMhZ2DN18/HrrP0PmiL3rGtRG9gz1QE8vFKXQ==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.14.2': + resolution: {integrity: sha512-QBhtr07iFGmF9egrPOWyO5wciwgtzKkYPNLVCFZTmr4TWmY0oY2Dm/bmhHjKRwZoGiaKdNcKhFtUMBKvlchH+Q==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.14.2': + resolution: {integrity: sha512-8zfsQRQGH23O6qazZSFY5jP5gt4cFvRuKTpuBsC1ZnSWxV8ZKQpPqOZIUtdfMOugCcBvFGRa1pDC/tkf19EgBw==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.14.2': + resolution: {integrity: sha512-H4s8UjgkPnlChl6JF5empNvFHp77Jx+Wfy2EtmYPe9G22XV+PMuCinZVHurNe8ggtwoaohxARJZbaH/3xjB/FA==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.14.2': + resolution: {integrity: sha512-djqpAjm/i8erWYF0K6UY4kRO3X5+T4TypIqw60Q8MTqSBaQNpNXDhxdjpZ3ikgb+wn99svA7jxcXpiyg9MUsdw==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.14.2': + resolution: {integrity: sha512-teAqzLT0yTYZa8ZP7zhFKEx4cotS8Tkk5XiqNMJhD4CpaWB1BHARE4Qy+RzwnXvSAYv+Q3jAqCVBS+PS+Yee8Q==} + cpu: [x64] + os: [win32] + + '@rushstack/node-core-library@4.0.2': + resolution: {integrity: sha512-hyES82QVpkfQMeBMteQUnrhASL/KHPhd7iJ8euduwNJG4mu2GSOKybf0rOEjOm1Wz7CwJEUm9y0yD7jg2C1bfg==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + + '@rushstack/rig-package@0.5.2': + resolution: {integrity: sha512-mUDecIJeH3yYGZs2a48k+pbhM6JYwWlgjs2Ca5f2n1G2/kgdgP9D/07oglEGf6mRyXEnazhEENeYTSNDRCwdqA==} + + '@rushstack/terminal@0.10.0': + resolution: {integrity: sha512-UbELbXnUdc7EKwfH2sb8ChqNgapUOdqcCIdQP4NGxBpTZV2sQyeekuK3zmfQSa/MN+/7b4kBogl2wq0vpkpYGw==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + + '@rushstack/ts-command-line@4.19.1': + resolution: {integrity: sha512-J7H768dgcpG60d7skZ5uSSwyCZs/S2HrWP1Ds8d1qYAyaaeJmpmmLr9BVw97RjFzmQPOYnoXcKA4GkqDCkduQg==} + + '@sentry-internal/feedback@7.110.0': + resolution: {integrity: sha512-hrfWa3WkSOiBO5Srcr1j4kuGOlbsQic+REpLOofllVIs56DOo9+Aj9svxT+dcvZERv/nlFSV/E0BfGy9g08IEg==} + engines: {node: '>=12'} + + '@sentry-internal/replay-canvas@7.110.0': + resolution: {integrity: sha512-SNa+AfyfX+vc6Xw0pIfDsa5Qnc9cpexU6M2D19gadtVhmep7qoFBuhBVZrSv6BtdCxvrb5EyYsHYGfjQdIDcvg==} + engines: {node: '>=12'} + + '@sentry-internal/tracing@7.110.0': + resolution: {integrity: sha512-IIHHa9e/mE7uOMJfNELI8adyoELxOy6u6TNCn5t6fphmq84w8FTc9adXkG/FY2AQpglkIvlILojfMROFB2aaAQ==} + engines: {node: '>=8'} + + '@sentry/browser@7.110.0': + resolution: {integrity: sha512-gIxedVm6ZgkjQfgCDgLWJgAsolq6OxV8hQ2j1+RaDL2RngvelFo/vlX5f2sD6EbjVp77Cri8u5GkMJF+v4p84g==} + engines: {node: '>=8'} + + '@sentry/core@7.110.0': + resolution: {integrity: sha512-g4suCQO94mZsKVaAbyD1zLFC5YSuBQCIPHXx9fdgtfoPib7BWjWWePkllkrvsKAv4u8Oq05RfnKOhOMRHpOKqg==} + engines: {node: '>=8'} + + '@sentry/react@7.110.0': + resolution: {integrity: sha512-ryfA2QR41PV+kP3g0lGvpDZ+OkuxSdj2nTjCqPeZKHsK45GYvDMlWkukdHbwrx8ulkbAcWEjPmuZZzHspyieNw==} + engines: {node: '>=8'} + peerDependencies: + react: 15.x || 16.x || 17.x || 18.x + + '@sentry/replay@7.110.0': + resolution: {integrity: sha512-EEpGPf3iBJjWejvoxKLVMnLtLNwPTUxHJV1oxUkbcSi3B/tG5hW7LArYDjAcvkfa4VmA8JLCwj2vYU5MQ8tj6g==} + engines: {node: '>=12'} + + '@sentry/types@7.110.0': + resolution: {integrity: sha512-DqYBLyE8thC5P5MuPn+sj8tL60nCd/f5cerFFPcudn5nJ4Zs1eI6lKlwwyHYTEu5c4KFjCB0qql6kXfwAHmTyA==} + engines: {node: '>=8'} + + '@sentry/utils@7.110.0': + resolution: {integrity: sha512-VBsdLLN+5tf73fhf/Cm7JIsUJ6y9DkJj8h4I6Mxx0rszrvOyH6S5px40K+V4jdLBzMEvVinC7q2Cbf1YM18BSw==} + engines: {node: '>=8'} + + '@sinclair/typebox@0.27.8': + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + + '@sindresorhus/merge-streams@2.3.0': + resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} + engines: {node: '>=18'} + + '@socket.io/component-emitter@3.1.0': + resolution: {integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==} + + '@storybook/addon-actions@8.0.8': + resolution: {integrity: sha512-F3qpN0n53d058EroW1A2IlzrsFNR5p2srLY4FmXB80nxAKV8oqoDI4jp15zYlf8ThcJoQl36plT8gx3r1BpANA==} + + '@storybook/addon-backgrounds@8.0.8': + resolution: {integrity: sha512-lrAJjVxDeXSK116rDajb56TureZiT76ygraP22/IvU3IcWCEcRiKYwlay8WgCTbJHtFmdBpelLBapoT46+IR9Q==} + + '@storybook/addon-controls@8.0.8': + resolution: {integrity: sha512-7xANN18CLYsVthuSXwxKezqpelEKJlT9xaYLtw5vvD00btW5g3vxq+Z/A31OkS2OuaH2bE0GfRCoG2OLR8yQQA==} + + '@storybook/addon-docs@8.0.8': + resolution: {integrity: sha512-HNiY4ESH9WxGS6QpIpURzdSbyDxbRh7VIgbvUrePSKajlsL4RFN/gdnn5TnSL00tOP/w+Cy/fXcbljMUKy7Ivg==} + + '@storybook/addon-essentials@8.0.8': + resolution: {integrity: sha512-bc9KJk7SPM2I5CCJEAP8R5leP+74IYxhWPiTN8Y1YFmf3MA1lpDJbwy+RfuRZ2ZKnSKszCXCVzU/T10HKUHLZw==} + + '@storybook/addon-highlight@8.0.8': + resolution: {integrity: sha512-KKD7xiNhxZQM4fdDidtcla6jSzgN1f9qe1AwFSHLXwIW22+4c97Vgf+AookN7cJvB77HxRUnvQH//zV1CJEDug==} + + '@storybook/addon-interactions@8.0.8': + resolution: {integrity: sha512-UOPKOe97uV4psH1O1YeE0oFuUQgD1Vkv95JjHjQG8KiPWvwdiezV7rrjPvw8RApnSKUopjFETs8F5D59i4eARw==} + + '@storybook/addon-links@8.0.8': + resolution: {integrity: sha512-iRI/W9I6fOom5zfZvsu53gfJtuhBSMmhgI/u5uZbAbfEoNL5D1PqpDXD4ygM8Vvlx90AZNZ2W5slEe7gCZOMyA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + react: + optional: true + + '@storybook/addon-measure@8.0.8': + resolution: {integrity: sha512-akyoa+1F2ripV6ELF2UbxiSHv791LWSAVK7gsD/a5eJfKZMm5yoHjcY7Icdkc/ctE+pyjAQNhkXTixUngge09w==} + + '@storybook/addon-outline@8.0.8': + resolution: {integrity: sha512-8Gxs095ekpa5YZolLSs5cWbWK94GZTevEUX8GFeLGIz9sf1KO3kmEO3eC5ogzDoB0cloqvbmVAJvYJ3FWiUx8w==} + + '@storybook/addon-toolbars@8.0.8': + resolution: {integrity: sha512-PZxlK+/Fwk2xcrpr5kkXYjCbBaEjAWcEHWq7mhQReMFaAs5AJE8dvmeQ7rmPDOHnlg4+YsARDFKz5FJtthRIgg==} + + '@storybook/addon-viewport@8.0.8': + resolution: {integrity: sha512-nOuc6DquGvm24c/A0HFTgeEN/opd58ebs1KLaEEq1f6iYV0hT2Gpnk0Usg/seOiFtJnj3NyAM46HSkZz06T8Sw==} + + '@storybook/blocks@8.0.8': + resolution: {integrity: sha512-kwsjhvnmFEaIl51QHJt/83G7mZ5YbzFKnWCwy8WUpi0xvVcyoFQSGGgwR3XRrzGfUEPK8P2FDHeKw1bLzyIejA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + + '@storybook/builder-manager@8.0.8': + resolution: {integrity: sha512-0uihNTpTou0RFMM6PQLlfCxDxse9nIDEb83AmWE/OUnpKDDY9+WFupVWGaZc9HfH9h4Yqre2fiuK1b7KNYe7AQ==} + + '@storybook/builder-vite@8.0.8': + resolution: {integrity: sha512-ibWOxoHczCc6ttMQqiSXv29m/e44sKVoc1BJluApQcjCXl9g6QXyN45zV70odjCxMfNy7EQgUjCA0mgAgMHSIw==} + peerDependencies: + '@preact/preset-vite': '*' + typescript: 5.4.5 + 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/channels@8.0.8': + resolution: {integrity: sha512-L3EGVkabv3fweXnykD/GlNUDO5HtwlIfSovC7BF4MmP7662j2/eqlZrJxDojGtbv11XHjWp/UJHUIfKpcHXYjQ==} + + '@storybook/cli@8.0.8': + resolution: {integrity: sha512-RnSdgykh2i7es1rQ7CNGpDrKK/PN1f0xjwpkAHXCEB6T9KpHBmqDquzZp+N127a1HBHHXy018yi4wT8mSQyEoA==} + hasBin: true + + '@storybook/client-logger@8.0.8': + resolution: {integrity: sha512-a4BKwl9NLFcuRgMyI7S4SsJeLFK0LCQxIy76V6YyrE1DigoXz4nA4eQxdjLf7JVvU0EZFmNSfbVL/bXzzWKNXA==} + + '@storybook/codemod@8.0.8': + resolution: {integrity: sha512-ufEBLciLmLlAh+L6lGgBObTiny6odXMKqiJOewQ9XfIN0wdWdyRUf5QdZIPOdfgHhWF2Q2HeswiulsoHm8Z/hA==} + + '@storybook/components@8.0.8': + resolution: {integrity: sha512-EpBExH4kHWQJSfA8QXJJ5AsLRUGi5X/zWY7ffiYW8rtnBmEnk3T9FpmnyJlY1A8sdd3b1wQ07JGBDHfL1mdELw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + + '@storybook/core-common@8.0.8': + resolution: {integrity: sha512-CL15M2oeQW+Rb1l7ciunLDI2Re+ojL2lX1ZFAiDedcOU+JHsdq43zAuXoZVzp8icUi2AUSwEjZIxGCSingj+JQ==} + + '@storybook/core-events@8.0.8': + resolution: {integrity: sha512-PtuvR7vS4glDEdCfKB4f1k3Vs1C3rTWP2DNbF+IjjPhNLMBznCdzTAPcz+NUIBvpjjGnhKwWikJ0yj931YjSVg==} + + '@storybook/core-server@8.0.8': + resolution: {integrity: sha512-tSEueEBttbSohzhZVN2bFNlFx3eoqQ7p57cjQLKXXwKygS2qKxISKnFy+Y0nj20APz68Wj51kx0rN0nGALeegw==} + + '@storybook/csf-plugin@8.0.8': + resolution: {integrity: sha512-x9WspjZGcqXENj/Vn4Qmn0oTW93KN2V9wqpflWwCUJTByl2MugQsh5xRuDbs2yM7dD6zKcqRyPaTY+GFZBW+Vg==} + + '@storybook/csf-tools@8.0.8': + resolution: {integrity: sha512-Ji5fpoGym/MSyHJ6ALghVUUecwhEbN0On+jOZ2VPkrkATi9UDtryHQPdF60HKR63Iv53xRuWRzudB6zm43RTzw==} + + '@storybook/csf@0.1.2': + resolution: {integrity: sha512-ePrvE/pS1vsKR9Xr+o+YwdqNgHUyXvg+1Xjx0h9LrVx7Zq4zNe06pd63F5EvzTbCbJsHj7GHr9tkiaqm7U8WRA==} + + '@storybook/docs-mdx@3.0.0': + resolution: {integrity: sha512-NmiGXl2HU33zpwTv1XORe9XG9H+dRUC1Jl11u92L4xr062pZtrShLmD4VKIsOQujxhhOrbxpwhNOt+6TdhyIdQ==} + + '@storybook/docs-tools@8.0.8': + resolution: {integrity: sha512-p/MIrDshXMl/fiCRlfG9StkRYI1QlUyUSQQ/YDBFlBfWcJYARIt3TIvQyvs3Q/apnQNcDXIW663W57s7WHTO2w==} + + '@storybook/global@5.0.0': + resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} + + '@storybook/html-vite@8.0.8': + resolution: {integrity: sha512-ZItduu3emcQ2R/3sf37YQAXplNGeSf1nUF19yQ6sGqVIBk11wi9RoGCTFB/ZyIoBMr0/+Uj6icTU03KS+e/DjA==} + engines: {node: '>=18.0.0'} + + '@storybook/html@8.0.8': + resolution: {integrity: sha512-C7O9k2PJF9yizmAj/LRoCHrsPh2qtRCxtYw3ZEtZ1jPNNz+9ALPMWkKxKMcp2nSNm7GqFm+uJbsmTIVd8mI+sg==} + engines: {node: '>=18.0.0'} + + '@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.0.8': + resolution: {integrity: sha512-bCu9Tu48WOQ8ZNUed+FCSMr3Uw81b4yW/knD2goqx15nD33B7xXBNSI2GTHH5YaEHVyIFFggQcKHLkELXWlsoA==} + + '@storybook/manager-api@8.0.8': + resolution: {integrity: sha512-1HU4nfLRi0sD2uw229gb8EQyufNWrLvMNpg013kBsBXRd+Dj4dqF3v+KrYFNtteY7riC4mAJ6YcQ4tBUNYZDug==} + + '@storybook/manager@8.0.8': + resolution: {integrity: sha512-pWYHSDmgT8p/XbQMKuDPdgB6KzjePI6dU5KQ5MERYfch1UiuGPVm1HHDlxxSfHW0IIXw9Qnwq4L0Awe4qhvJKQ==} + + '@storybook/node-logger@8.0.8': + resolution: {integrity: sha512-ymps3MMTxtMWq0eDiXk1iO7iv0Eg0PuUvOpPPohEJauGzU9THv81xx01aaHKSprFFJYD2LMQr1aFuUplItO12g==} + + '@storybook/preview-api@8.0.8': + resolution: {integrity: sha512-khgw2mNiBrSZS3KNGQPzjneL3Csh3BOq0yLAtJpT7CRSrI/YjlE7jjcTkKzoxW+UCgvNTnLvsowcuzu82e69fA==} + + '@storybook/preview@8.0.8': + resolution: {integrity: sha512-J/ooKcvDV1s7ROH7lF/0vOyWDOgDB7bN6vS67J1WK0HLvMGaqUzU+q3ndakGzu0LU/jvUBqEFSZd1ALWyZINDQ==} + + '@storybook/react-dom-shim@8.0.8': + resolution: {integrity: sha512-vOMlAz2HH/xfgZmSO28fCEmp5/tPxINDEdBDVLdZeYG6R1j5jlMRyaNcXt4cPNDkyc///PkB/K767hg4goca/Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + + '@storybook/router@8.0.8': + resolution: {integrity: sha512-wdFdNsEKweigU9VkGZtpb7GhBJLWzbABcwOuEy2h0d5m7egB97hy9BxhANdqkC+PbAHrabxC99Ca3wTj50MoDg==} + + '@storybook/telemetry@8.0.8': + resolution: {integrity: sha512-Uvj4nN01vQgjXZYKF/GKTFE85//Qm4ZTlJxTFWid+oYWc8NpAyJvlsJkj/dsEn4cLrgnJx2e4xvnx0Umr2ck+A==} + + '@storybook/test@8.0.8': + resolution: {integrity: sha512-YXgwgg1e8ggDg2BlgeExwdN3MjeExnDvybQIUugADgun87tRIujJFCdjh0PAxg0Qvln6+lU3w+3Y2aryvX42RA==} + + '@storybook/theming@8.0.8': + resolution: {integrity: sha512-43hkNz7yo8Bl97AO2WbxIGprUqMhUZyK9g8383bd30gSxy9nfND/bdSdcgmA8IokDn8qp37Q4QmxtUZdhjMzZQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + + '@storybook/types@8.0.8': + resolution: {integrity: sha512-NGsgCsXnWlaZmHenHDgHGs21zhweZACkqTNsEQ7hvsiF08QeiKAdgJLQg3YeGK73h9mFDRP9djprUtJYab6vnQ==} + + '@surma/rollup-plugin-off-main-thread@2.2.3': + resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} + + '@swc-jotai/debug-label@0.1.0': + resolution: {integrity: sha512-Fe0ag02uBaVBIS/ySKkLSyiMhTUKyw3F0pTAcH+Yc29wZgIt//yFuPv1+p0QrlV6n411BJ0sxq2ei89tvwpFXQ==} + + '@swc-jotai/react-refresh@0.1.0': + resolution: {integrity: sha512-CWV4W06GdfQo3cW3CoUM2fp7avH4Z/suR7SvECNJnQbr6Sa9U3p7o10nXjNv2zT6z09bbNUPM55HBw5Nwd24Iw==} + + '@swc/core-darwin-arm64@1.3.101': + resolution: {integrity: sha512-mNFK+uHNPRXSnfTOG34zJOeMl2waM4hF4a2NY7dkMXrPqw9CoJn4MwTXJcyMiSz1/BnNjjTCHF3Yhj0jPxmkzQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + + '@swc/core-darwin-x64@1.3.101': + resolution: {integrity: sha512-B085j8XOx73Fg15KsHvzYWG262bRweGr3JooO1aW5ec5pYbz5Ew9VS5JKYS03w2UBSxf2maWdbPz2UFAxg0whw==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + + '@swc/core-linux-arm-gnueabihf@1.3.101': + resolution: {integrity: sha512-9xLKRb6zSzRGPqdz52Hy5GuB1lSjmLqa0lST6MTFads3apmx4Vgs8Y5NuGhx/h2I8QM4jXdLbpqQlifpzTlSSw==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + + '@swc/core-linux-arm64-gnu@1.3.101': + resolution: {integrity: sha512-oE+r1lo7g/vs96Weh2R5l971dt+ZLuhaUX+n3BfDdPxNHfObXgKMjO7E+QS5RbGjv/AwiPCxQmbdCp/xN5ICJA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-arm64-musl@1.3.101': + resolution: {integrity: sha512-OGjYG3H4BMOTnJWJyBIovCez6KiHF30zMIu4+lGJTCrxRI2fAjGLml3PEXj8tC3FMcud7U2WUn6TdG0/te2k6g==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-x64-gnu@1.3.101': + resolution: {integrity: sha512-/kBMcoF12PRO/lwa8Z7w4YyiKDcXQEiLvM+S3G9EvkoKYGgkkz4Q6PSNhF5rwg/E3+Hq5/9D2R+6nrkF287ihg==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-linux-x64-musl@1.3.101': + resolution: {integrity: sha512-kDN8lm4Eew0u1p+h1l3JzoeGgZPQ05qDE0czngnjmfpsH2sOZxVj1hdiCwS5lArpy7ktaLu5JdRnx70MkUzhXw==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-win32-arm64-msvc@1.3.101': + resolution: {integrity: sha512-9Wn8TTLWwJKw63K/S+jjrZb9yoJfJwCE2RV5vPCCWmlMf3U1AXj5XuWOLUX+Rp2sGKau7wZKsvywhheWm+qndQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + + '@swc/core-win32-ia32-msvc@1.3.101': + resolution: {integrity: sha512-onO5KvICRVlu2xmr4//V2je9O2XgS1SGKpbX206KmmjcJhXN5EYLSxW9qgg+kgV5mip+sKTHTAu7IkzkAtElYA==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + + '@swc/core-win32-x64-msvc@1.3.101': + resolution: {integrity: sha512-T3GeJtNQV00YmiVw/88/nxJ/H43CJvFnpvBHCVn17xbahiVUOPOduh3rc9LgAkKiNt/aV8vU3OJR+6PhfMR7UQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@swc/core@1.3.101': + resolution: {integrity: sha512-w5aQ9qYsd/IYmXADAnkXPGDMTqkQalIi+kfFf/MHRKTpaOL7DHjMXwPp/n8hJ0qNjRvchzmPtOqtPBiER50d8A==} + 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.5': + resolution: {integrity: sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==} + + '@testing-library/dom@9.3.4': + resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} + engines: {node: '>=14'} + + '@testing-library/jest-dom@6.4.2': + resolution: {integrity: sha512-CzqH0AFymEMG48CpzXFriYYkOjk6ZGPCLMhW9e9jg3KMCn5OfJecF8GtGW7yGfR/IgCe3SX8BSwjdzI6BBbZLw==} + 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/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==} + + '@types/argparse@1.0.38': + resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} + + '@types/aria-query@5.0.1': + resolution: {integrity: sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==} + + '@types/base16@1.0.5': + resolution: {integrity: sha512-OzOWrTluG9cwqidEzC/Q6FAmIPcnZfm8BFRlIx0+UIUqnuAmi5OS88O0RpT3Yz6qdmqObvUhasrbNsCofE4W9A==} + + '@types/body-parser@1.19.2': + resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} + + '@types/bonjour@3.5.13': + resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} + + '@types/color-convert@2.0.0': + resolution: {integrity: sha512-m7GG7IKKGuJUXvkZ1qqG3ChccdIM/qBBo913z+Xft0nKCX4hAU/IxKwZBU4cpRZ7GS5kV4vOblUkILtSShCPXQ==} + + '@types/color-name@1.1.1': + resolution: {integrity: sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==} + + '@types/color@3.0.6': + resolution: {integrity: sha512-NMiNcZFRUAiUUCCf7zkAelY8eV3aKqfbzyFQlXpPIEeoNDbsEHGpb854V3gzTsGKYj830I5zPuOwU/TP5/cW6A==} + + '@types/connect-history-api-fallback@1.5.4': + resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} + + '@types/connect@3.4.35': + resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} + + '@types/cross-spawn@6.0.2': + resolution: {integrity: sha512-KuwNhp3eza+Rhu8IFI5HUXRP0LIhqH5cAjubUvGXXthh4YYBuP2ntwEX+Cz8GJoZUHlKo247wPWOfA9LYEq4cw==} + + '@types/d3-array@3.2.1': + resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==} + + '@types/d3-axis@3.0.6': + resolution: {integrity: sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==} + + '@types/d3-brush@3.0.6': + resolution: {integrity: sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==} + + '@types/d3-chord@3.0.6': + resolution: {integrity: sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==} + + '@types/d3-color@3.1.3': + resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==} + + '@types/d3-contour@3.0.6': + resolution: {integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==} + + '@types/d3-delaunay@6.0.4': + resolution: {integrity: sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==} + + '@types/d3-dispatch@3.0.6': + resolution: {integrity: sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==} + + '@types/d3-drag@3.0.7': + resolution: {integrity: sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==} + + '@types/d3-dsv@3.0.7': + resolution: {integrity: sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==} + + '@types/d3-ease@3.0.2': + resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==} + + '@types/d3-fetch@3.0.7': + resolution: {integrity: sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==} + + '@types/d3-force@3.0.9': + resolution: {integrity: sha512-IKtvyFdb4Q0LWna6ymywQsEYjK/94SGhPrMfEr1TIc5OBeziTi+1jcCvttts8e0UWZIxpasjnQk9MNk/3iS+kA==} + + '@types/d3-format@3.0.4': + resolution: {integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==} + + '@types/d3-geo@3.1.0': + resolution: {integrity: sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==} + + '@types/d3-hierarchy@3.1.6': + resolution: {integrity: sha512-qlmD/8aMk5xGorUvTUWHCiumvgaUXYldYjNVOWtYoTYY/L+WwIEAmJxUmTgr9LoGNG0PPAOmqMDJVDPc7DOpPw==} + + '@types/d3-interpolate@3.0.4': + resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==} + + '@types/d3-path@3.0.2': + resolution: {integrity: sha512-WAIEVlOCdd/NKRYTsqCpOMHQHemKBEINf8YXMYOtXH0GA7SY0dqMB78P3Uhgfy+4X+/Mlw2wDtlETkN6kQUCMA==} + + '@types/d3-polygon@3.0.2': + resolution: {integrity: sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==} + + '@types/d3-quadtree@3.0.6': + resolution: {integrity: sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==} + + '@types/d3-random@3.0.3': + resolution: {integrity: sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==} + + '@types/d3-scale-chromatic@3.0.3': + resolution: {integrity: sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw==} + + '@types/d3-scale@4.0.8': + resolution: {integrity: sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==} + + '@types/d3-selection@3.0.10': + resolution: {integrity: sha512-cuHoUgS/V3hLdjJOLTT691+G2QoqAjCVLmr4kJXR4ha56w1Zdu8UUQ5TxLRqudgNjwXeQxKMq4j+lyf9sWuslg==} + + '@types/d3-shape@3.1.6': + resolution: {integrity: sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA==} + + '@types/d3-time-format@4.0.3': + resolution: {integrity: sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==} + + '@types/d3-time@3.0.3': + resolution: {integrity: sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw==} + + '@types/d3-timer@3.0.2': + resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==} + + '@types/d3-transition@3.0.8': + resolution: {integrity: sha512-ew63aJfQ/ms7QQ4X7pk5NxQ9fZH/z+i24ZfJ6tJSfqxJMrYLiK01EAs2/Rtw/JreGUsS3pLPNV644qXFGnoZNQ==} + + '@types/d3-zoom@3.0.8': + resolution: {integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==} + + '@types/d3@7.4.3': + resolution: {integrity: sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==} + + '@types/detect-port@1.3.3': + resolution: {integrity: sha512-bV/jQlAJ/nPY3XqSatkGpu+nGzou+uSwrH1cROhn+jBFg47yaNH+blW4C7p9KhopC7QxCv/6M86s37k8dMk0Yg==} + + '@types/doctrine@0.0.3': + resolution: {integrity: sha512-w5jZ0ee+HaPOaX25X2/2oGR/7rgAQSYII7X7pp0m9KgBfMP7uKfMfTvcpl5Dj+eDBbpxKGiqE+flqDr6XTd2RA==} + + '@types/ejs@3.1.2': + resolution: {integrity: sha512-ZmiaE3wglXVWBM9fyVC17aGPkLo/UgaOjEiI2FXQfyczrCefORPxIe+2dVmnmk3zkVIbizjrlQzmPGhSYGXG5g==} + + '@types/emscripten@1.39.7': + resolution: {integrity: sha512-tLqYV94vuqDrXh515F/FOGtBcRMTPGvVV1LzLbtYDcQmmhtpf/gLYf+hikBbQk8MzOHNz37wpFfJbYAuSn8HqA==} + + '@types/eslint-scope@3.7.7': + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + + '@types/eslint@8.56.0': + resolution: {integrity: sha512-FlsN0p4FhuYRjIxpbdXovvHQhtlG05O1GG/RNWvdAxTboR438IOTwmrY/vLA+Xfgg06BTkP045M3vpFwTMv1dg==} + + '@types/estree@0.0.39': + resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} + + '@types/estree@1.0.1': + resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} + + '@types/estree@1.0.5': + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + '@types/express-serve-static-core@4.17.36': + resolution: {integrity: sha512-zbivROJ0ZqLAtMzgzIUC4oNqDG9iF0lSsAqpOD9kbs5xcIM3dTiyuHvBc7R8MtWBp3AAWGaovJa+wzWPjLYW7Q==} + + '@types/express@4.17.17': + resolution: {integrity: sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==} + + '@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/geojson@7946.0.13': + resolution: {integrity: sha512-bmrNrgKMOhM3WsafmbGmC+6dsF2Z308vLFsQ3a/bT8X8Sv5clVYpPars/UPq+sAaJP+5OoLAYgwbkS5QEJdLUQ==} + + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + + '@types/highlight-words-core@1.2.3': + resolution: {integrity: sha512-PWNU/NR0CaYEsK38mcCTyDzeS2TlEGK9kRhRMz1i86jVAe836ZlA3gl6QYpu+CG6IpfNKTgWpEnJuRededvC0g==} + + '@types/html-minifier-terser@6.1.0': + resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} + + '@types/http-errors@2.0.1': + resolution: {integrity: sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==} + + '@types/http-proxy@1.17.14': + resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} + + '@types/json-schema@7.0.12': + resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/json5@0.0.29': + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + + '@types/lodash-es@4.17.12': + resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} + + '@types/lodash@4.14.197': + resolution: {integrity: sha512-BMVOiWs0uNxHVlHBgzTIqJYmj+PgCo4euloGF+5m4okL3rEYzM2EEv78mw8zWSMM57dM7kVIgJ2QDvwHSoCI5g==} + + '@types/luxon@3.4.2': + resolution: {integrity: sha512-TifLZlFudklWlMBfhubvgqTXRzLDI5pCbGa4P8a3wPyUQSW+1xQ5eDsreP9DWHX3tjq1ke96uYG/nwundroWcA==} + + '@types/mdx@2.0.7': + resolution: {integrity: sha512-BG4tyr+4amr3WsSEmHn/fXPqaCba/AYZ7dsaQTiavihQunHSIxk+uAtqsjvicNpyHN6cm+B9RVrUOtW9VzIKHw==} + + '@types/mime@1.3.2': + resolution: {integrity: sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==} + + '@types/mime@3.0.1': + resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==} + + '@types/node-forge@1.3.10': + resolution: {integrity: sha512-y6PJDYN4xYBxwd22l+OVH35N+1fCYWiuC3aiP2SlXVE6Lo7SS+rSx9r89hLxrP4pn6n1lBGhHJ12pj3F3Mpttw==} + + '@types/node@16.9.1': + resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==} + + '@types/node@18.19.31': + resolution: {integrity: sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==} + + '@types/normalize-package-data@2.4.1': + resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} + + '@types/parse-json@4.0.2': + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + + '@types/pretty-hrtime@1.0.1': + resolution: {integrity: sha512-VjID5MJb1eGKthz2qUerWT8+R4b9N+CHvGCzg9fn4kWZgaF9AhdYikQio3R7wV8YY1NsQKPaCwKz1Yff+aHNUQ==} + + '@types/prop-types@15.7.5': + resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} + + '@types/qs@6.9.8': + resolution: {integrity: sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==} + + '@types/range-parser@1.2.4': + resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} + + '@types/react-dom@18.2.25': + resolution: {integrity: sha512-o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA==} + + '@types/react@18.2.77': + resolution: {integrity: sha512-CUT9KUUF+HytDM7WiXKLF9qUSg4tGImwy4FXTlfEDPEkkNUzJ7rVFolYweJ9fS1ljoIaP7M7Rdjc5eUm/Yu5AA==} + + '@types/resolve@1.17.1': + resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} + + '@types/retry@0.12.0': + resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + + '@types/retry@0.12.2': + resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} + + '@types/semver@7.5.0': + resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} + + '@types/semver@7.5.8': + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + + '@types/send@0.17.1': + resolution: {integrity: sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==} + + '@types/serve-index@1.9.4': + resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} + + '@types/serve-static@1.15.2': + resolution: {integrity: sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw==} + + '@types/serve-static@1.15.7': + resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} + + '@types/sockjs@0.3.36': + resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} + + '@types/trusted-types@2.0.7': + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + + '@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/vscode-webview@1.57.5': + resolution: {integrity: sha512-iBAUYNYkz+uk1kdsq05fEcoh8gJmwT3lqqFPN7MGyjQ3HVloViMdo7ZJ8DFIP8WOK74PjOEilosqAyxV2iUFUw==} + + '@types/vscode@1.85.0': + resolution: {integrity: sha512-CF/RBon/GXwdfmnjZj0WTUMZN5H6YITOfBCP4iEZlOtVQXuzw6t7Le7+cR+7JzdMrnlm7Mfp49Oj2TuSXIWo3g==} + + '@types/ws@8.5.10': + resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} + + '@typescript-eslint/eslint-plugin@7.6.0': + resolution: {integrity: sha512-gKmTNwZnblUdnTIJu3e9kmeRRzV2j1a/LUO27KNNAnIC5zjy1aSvXSRp4rVNlmAoHlQ7HzX42NbKpcSr4jF80A==} + 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.6.0': + resolution: {integrity: sha512-usPMPHcwX3ZoPWnBnhhorc14NJw9J4HpSXQX4urF2TPKG0au0XhJoZyX62fmvdHONUkmyUe74Hzm1//XA+BoYg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@7.6.0': + resolution: {integrity: sha512-ngttyfExA5PsHSx0rdFgnADMYQi+Zkeiv4/ZxGYUWd0nLs63Ha0ksmp8VMxAIC0wtCFxMos7Lt3PszJssG/E6w==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/type-utils@7.6.0': + resolution: {integrity: sha512-NxAfqAPNLG6LTmy7uZgpK8KcuiS2NZD/HlThPXQRGwz6u7MDBWRVliEEl1Gj6U7++kVJTpehkhZzCJLMK66Scw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/types@7.6.0': + resolution: {integrity: sha512-h02rYQn8J+MureCvHVVzhl69/GAfQGPQZmOMjG1KfCl7o3HtMSlPaPUAPu6lLctXI5ySRGIYk94clD/AUMCUgQ==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/typescript-estree@7.6.0': + resolution: {integrity: sha512-+7Y/GP9VuYibecrCQWSKgl3GvUM5cILRttpWtnAu8GNL9j11e4tbuGZmZjJ8ejnKYyBRb2ddGQ3rEFCq3QjMJw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/utils@7.6.0': + resolution: {integrity: sha512-x54gaSsRRI+Nwz59TXpCsr6harB98qjXYzsRxGqvA5Ue3kQH+FxS7FYU81g/omn22ML2pZJkisy6Q+ElK8pBCA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + + '@typescript-eslint/visitor-keys@7.6.0': + resolution: {integrity: sha512-4eLB7t+LlNUmXzfOu1VAIAdkjbu5xNSerURS9X/S5TUKWFRpXRQZbmtPqgKmYx8bj3J0irtQXSiWAOY82v+cgw==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@ungap/structured-clone@1.2.0': + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + + '@vitest/expect@1.3.1': + resolution: {integrity: sha512-xofQFwIzfdmLLlHa6ag0dPV8YsnKOCP1KdAeVVh34vSjN2dcUiXYCD9htu/9eM7t8Xln4v03U9HLxLpPlsXdZw==} + + '@vitest/expect@1.5.0': + resolution: {integrity: sha512-0pzuCI6KYi2SIC3LQezmxujU9RK/vwC1U9R0rLuGlNGcOuDWxqWKu6nUdFsX9tH1WU0SXtAxToOsEjeUn1s3hA==} + + '@vitest/runner@1.5.0': + resolution: {integrity: sha512-7HWwdxXP5yDoe7DTpbif9l6ZmDwCzcSIK38kTSIt6CFEpMjX4EpCgT6wUmS0xTXqMI6E/ONmfgRKmaujpabjZQ==} + + '@vitest/snapshot@1.5.0': + resolution: {integrity: sha512-qpv3fSEuNrhAO3FpH6YYRdaECnnRjg9VxbhdtPwPRnzSfHVXnNzzrpX4cJxqiwgRMo7uRMWDFBlsBq4Cr+rO3A==} + + '@vitest/spy@1.3.1': + resolution: {integrity: sha512-xAcW+S099ylC9VLU7eZfdT9myV67Nor9w9zhf0mGCYJSO+zM2839tOeROTdikOi/8Qeusffvxb/MyBSOja1Uig==} + + '@vitest/spy@1.4.0': + resolution: {integrity: sha512-Ywau/Qs1DzM/8Uc+yA77CwSegizMlcgTJuYGAi0jujOteJOUf1ujunHThYo243KG9nAyWT3L9ifPYZ5+As/+6Q==} + + '@vitest/spy@1.5.0': + resolution: {integrity: sha512-vu6vi6ew5N5MMHJjD5PoakMRKYdmIrNJmyfkhRpQt5d9Ewhw9nZ5Aqynbi3N61bvk9UvZ5UysMT6ayIrZ8GA9w==} + + '@vitest/utils@1.3.1': + resolution: {integrity: sha512-d3Waie/299qqRyHTm2DjADeTaNdNSVsnwHPWrs20JMpjh6eiVq7ggggweO8rc4arhf6rRkWuHKwvxGvejUXZZQ==} + + '@vitest/utils@1.5.0': + resolution: {integrity: sha512-BDU0GNL8MWkRkSRdNFvCUCAVOeHaUlVJ9Tx0TYBZyXaaOTmGtUFObzchCivIBrIwKzvZA7A9sCejVhXM2aY98A==} + + '@volar/language-core@1.11.1': + resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==} + + '@volar/source-map@1.11.1': + resolution: {integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==} + + '@volar/typescript@1.11.1': + resolution: {integrity: sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==} + + '@vue/compiler-core@3.4.21': + resolution: {integrity: sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==} + + '@vue/compiler-dom@3.4.21': + resolution: {integrity: sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==} + + '@vue/language-core@1.8.27': + resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} + peerDependencies: + typescript: 5.4.5 + peerDependenciesMeta: + typescript: + optional: true + + '@vue/shared@3.4.21': + resolution: {integrity: sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==} + + '@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==} + + '@webpack-cli/configtest@2.1.1': + resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + + '@webpack-cli/info@2.0.2': + resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + + '@webpack-cli/serve@2.0.5': + resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + webpack-dev-server: '*' + peerDependenciesMeta: + webpack-dev-server: + optional: true + + '@xtuc/ieee754@1.2.0': + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + + '@xtuc/long@4.2.2': + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + + '@yarnpkg/esbuild-plugin-pnp@3.0.0-rc.15': + resolution: {integrity: sha512-kYzDJO5CA9sy+on/s2aIW0411AklfCi8Ck/4QDivOqsMKpStZA2SsR+X27VTggGwpStWaLrjJcDcdDMowtG8MA==} + engines: {node: '>=14.15.0'} + peerDependencies: + esbuild: '>=0.10.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'} + + '@yarnpkg/lockfile@1.1.0': + resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} + + '@yarnpkg/parsers@3.0.0-rc.46': + resolution: {integrity: sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q==} + engines: {node: '>=14.15.0'} + + '@zkochan/js-yaml@0.0.6': + resolution: {integrity: sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==} + hasBin: true + + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + + acorn-import-assertions@1.9.0: + resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} + peerDependencies: + acorn: ^8 + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn-walk@8.3.1: + resolution: {integrity: sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==} + engines: {node: '>=0.4.0'} + + acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} + + acorn@8.10.0: + resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + engines: {node: '>=0.4.0'} + hasBin: true + + address@1.2.2: + resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} + engines: {node: '>= 10.0.0'} + + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + + aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + + ajv-formats@2.1.1: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv-keywords@3.5.2: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + + ajv-keywords@5.1.0: + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + + ansi-escapes@6.2.0: + resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==} + engines: {node: '>=14.16'} + + ansi-html-community@0.0.8: + resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} + engines: {'0': node >= 0.8.0} + hasBin: true + + 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-sequence-parser@1.1.1: + resolution: {integrity: sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==} + + 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'} + + app-root-dir@1.0.2: + resolution: {integrity: sha512-jlpIfsOoNoafl92Sz//64uQHGSyMrD2vYG5d8o2a4qGvyNCvXur7bzIsWtAC/6flI2RYAp3kv8rsfBtaLm7w0g==} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + aria-hidden@1.2.3: + resolution: {integrity: sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==} + engines: {node: '>=10'} + + aria-query@5.1.3: + resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} + + array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + + array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + + array-includes@3.1.7: + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} + engines: {node: '>= 0.4'} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + array.prototype.findlastindex@1.2.3: + resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} + engines: {node: '>= 0.4'} + + array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + + array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} + + arraybuffer.prototype.slice@1.0.1: + resolution: {integrity: sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==} + engines: {node: '>= 0.4'} + + assert@2.1.0: + resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==} + + assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + + ast-types@0.16.1: + resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} + engines: {node: '>=4'} + + async@3.2.4: + resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + + available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + + axios@1.6.7: + resolution: {integrity: sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==} + + babel-core@7.0.0-bridge.0: + resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + babel-plugin-macros@3.1.0: + resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} + engines: {node: '>=10', npm: '>=6'} + + babel-plugin-polyfill-corejs2@0.4.7: + resolution: {integrity: sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-corejs3@0.8.7: + resolution: {integrity: sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-regenerator@0.5.4: + resolution: {integrity: sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base16@1.0.0: + resolution: {integrity: sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ==} + + base64-arraybuffer@1.0.2: + resolution: {integrity: sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==} + engines: {node: '>= 0.6.0'} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + batch@0.6.1: + resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} + + better-opn@3.0.2: + resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==} + engines: {node: '>=12.0.0'} + + big-integer@1.6.51: + resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} + engines: {node: '>=0.6'} + + big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + + binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + + bmp-js@0.1.0: + resolution: {integrity: sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==} + + body-parser@1.20.1: + resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + bonjour-service@1.2.1: + resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + bplist-parser@0.2.0: + resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} + engines: {node: '>= 5.10.0'} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + + browser-assert@1.2.1: + resolution: {integrity: sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==} + + browserify-zlib@0.1.4: + resolution: {integrity: sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==} + + browserslist@4.22.2: + resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-equal@0.0.1: + resolution: {integrity: sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==} + engines: {node: '>=0.4.0'} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + + bytes@3.0.0: + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + engines: {node: '>= 0.8'} + + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + + call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + + caniuse-lite@1.0.30001570: + resolution: {integrity: sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==} + + chai@4.4.1: + resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} + engines: {node: '>=4'} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + chalk@3.0.0: + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + engines: {node: '>=8'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + + chrome-trace-event@1.0.3: + resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + engines: {node: '>=6.0'} + + classnames@2.4.0: + resolution: {integrity: sha512-lWxiIlphgAhTLN657pwU/ofFxsUTOWc2CRIFeoV5st0MGRJHStUnWIUJgDHxjUO/F0mXzGufXIM4Lfu/8h+MpA==} + + clean-css@5.3.3: + resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} + engines: {node: '>= 10.0'} + + clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + + cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + + cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + cli-spinners@2.6.1: + resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} + engines: {node: '>=6'} + + cli-spinners@2.9.0: + resolution: {integrity: sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==} + engines: {node: '>=6'} + + cli-table3@0.6.3: + resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==} + engines: {node: 10.* || >= 12.*} + + cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clone-deep@4.0.1: + resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + engines: {node: '>=6'} + + clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + + clsx@1.1.1: + resolution: {integrity: sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==} + engines: {node: '>=6'} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + + color@3.2.1: + resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} + + color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + comlink@4.4.1: + resolution: {integrity: sha512-+1dlx0aY5Jo1vHy/tSsIGpSkN4tS9rZSW8FIhG0JH/crs9wwweswIo/POr451r7bZww3hFbPAKnTpimzL/mm4Q==} + + commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + + commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + commander@6.2.1: + resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} + engines: {node: '>= 6'} + + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + + commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} + + commander@9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + + common-path-prefix@3.0.0: + resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} + + common-tags@1.8.2: + resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} + engines: {node: '>=4.0.0'} + + commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + + compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} + + compression@1.7.4: + resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} + engines: {node: '>= 0.8.0'} + + computeds@0.0.1: + resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + connect-history-api-fallback@2.0.0: + resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} + engines: {node: '>=0.8'} + + content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + + cookie@0.5.0: + resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} + engines: {node: '>= 0.6'} + + copy-webpack-plugin@12.0.2: + resolution: {integrity: sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==} + engines: {node: '>= 18.12.0'} + peerDependencies: + webpack: ^5.1.0 + + core-js-compat@3.34.0: + resolution: {integrity: sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==} + + core-js-pure@3.34.0: + resolution: {integrity: sha512-pmhivkYXkymswFfbXsANmBAewXx86UBfmagP+w0wkK06kLsLlTK5oQmsURPivzMkIBQiYq2cjamcZExIwlFQIg==} + + core-js@3.36.1: + resolution: {integrity: sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + crypto-js@4.2.0: + resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} + + crypto-random-string@2.0.0: + resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} + engines: {node: '>=8'} + + css-color-names@1.0.1: + resolution: {integrity: sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA==} + + css-loader@7.1.1: + resolution: {integrity: sha512-OxIR5P2mjO1PSXk44bWuQ8XtMK4dpEqpIyERCx3ewOo3I8EmbcxMPUc5ScLtQfgXtOojoMv57So4V/C02HQLsw==} + engines: {node: '>= 18.12.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + webpack: ^5.27.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true + + css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + + css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + + css.escape@1.5.1: + resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + csstype@3.0.9: + resolution: {integrity: sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw==} + + csstype@3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + + d3-array@3.2.4: + resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} + engines: {node: '>=12'} + + d3-axis@3.0.0: + resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} + engines: {node: '>=12'} + + d3-brush@3.0.0: + resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} + engines: {node: '>=12'} + + d3-chord@3.0.1: + resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} + engines: {node: '>=12'} + + d3-color@3.1.0: + resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} + engines: {node: '>=12'} + + d3-contour@4.0.2: + resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==} + engines: {node: '>=12'} + + d3-delaunay@6.0.4: + resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==} + engines: {node: '>=12'} + + d3-dispatch@3.0.1: + resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} + engines: {node: '>=12'} + + d3-drag@3.0.0: + resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} + engines: {node: '>=12'} + + d3-dsv@3.0.1: + resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} + engines: {node: '>=12'} + hasBin: true + + d3-ease@3.0.1: + resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} + engines: {node: '>=12'} + + d3-fetch@3.0.1: + resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} + engines: {node: '>=12'} + + d3-force@3.0.0: + resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} + engines: {node: '>=12'} + + d3-format@3.1.0: + resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} + engines: {node: '>=12'} + + d3-geo@3.1.0: + resolution: {integrity: sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA==} + engines: {node: '>=12'} + + d3-hierarchy@3.1.2: + resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} + engines: {node: '>=12'} + + d3-interpolate@3.0.1: + resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} + engines: {node: '>=12'} + + d3-path@3.1.0: + resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==} + engines: {node: '>=12'} + + d3-polygon@3.0.1: + resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} + engines: {node: '>=12'} + + d3-quadtree@3.0.1: + resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} + engines: {node: '>=12'} + + d3-random@3.0.1: + resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} + engines: {node: '>=12'} + + d3-scale-chromatic@3.0.0: + resolution: {integrity: sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==} + engines: {node: '>=12'} + + d3-scale@4.0.2: + resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} + engines: {node: '>=12'} + + d3-selection@3.0.0: + resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} + engines: {node: '>=12'} + + d3-shape@3.2.0: + resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} + engines: {node: '>=12'} + + d3-time-format@4.1.0: + resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} + engines: {node: '>=12'} + + d3-time@3.1.0: + resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} + engines: {node: '>=12'} + + d3-timer@3.0.1: + resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} + engines: {node: '>=12'} + + d3-transition@3.0.1: + resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} + engines: {node: '>=12'} + peerDependencies: + d3-selection: 2 - 3 + + d3-zoom@3.0.0: + resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} + engines: {node: '>=12'} + + d3@7.9.0: + resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==} + engines: {node: '>=12'} + + data-uri-to-buffer@4.0.1: + resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} + engines: {node: '>= 12'} + + de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + + debounce@1.2.1: + resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + 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 + + deep-eql@4.1.3: + resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + engines: {node: '>=6'} + + deep-equal@2.2.2: + resolution: {integrity: sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA==} + + 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'} + + default-browser-id@3.0.0: + resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} + engines: {node: '>=12'} + + default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} + + default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} + + default-gateway@6.0.3: + resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} + engines: {node: '>= 10'} + + defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + + define-data-property@1.1.1: + resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} + engines: {node: '>= 0.4'} + + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + + define-properties@1.2.0: + resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} + engines: {node: '>= 0.4'} + + defu@6.1.2: + resolution: {integrity: sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ==} + + del@6.1.1: + resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} + engines: {node: '>=10'} + + delaunator@5.0.0: + resolution: {integrity: sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} + + 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-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + + detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + + detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + + detect-package-manager@2.0.1: + resolution: {integrity: sha512-j/lJHyoLlWi6G1LDdLgvUtz60Zo5GEj+sVYtTVXnYLDPuzgC3llMxonXym9zIwhhUII8vjdw0LXxavpLqTbl1A==} + engines: {node: '>=12'} + + detect-port@1.5.1: + resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==} + hasBin: true + + dexie@3.2.7: + resolution: {integrity: sha512-2a+BXvVhY5op+smDRLxeBAivE7YcYaneXJ1la3HOkUfX9zKkE/AJ8CNgjiXbtXepFyFmJNGSbmjOwqbT749r/w==} + engines: {node: '>=6.0'} + + diff-match-patch@1.0.5: + resolution: {integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==} + + diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + dns-packet@5.6.1: + resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} + engines: {node: '>=6'} + + 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==} + + dom-converter@0.2.0: + resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} + + dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + + dom-walk@0.1.2: + resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} + + domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + + dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + + dotenv-expand@10.0.0: + resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} + engines: {node: '>=12'} + + dotenv@16.3.1: + resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==} + engines: {node: '>=12'} + + duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + + duplexify@3.7.1: + resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + ejs@3.1.9: + resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} + engines: {node: '>=0.10.0'} + hasBin: true + + electron-to-chromium@1.4.614: + resolution: {integrity: sha512-X4ze/9Sc3QWs6h92yerwqv7aB/uU8vCjZcrMjA8N9R1pjMFRe44dLsck5FzLilOYvcXuDn93B+bpGYyufc70gQ==} + + emoji-regex@10.3.0: + resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + 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'} + + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + + engine.io-client@6.5.3: + resolution: {integrity: sha512-9Z0qLB0NIisTRt1DZ/8U2k12RJn8yls/nXMZLn+/N8hANT3TcYjKFKcwbw5zFQiN4NTde3TSY9zb79e1ij6j9Q==} + + engine.io-parser@5.2.1: + resolution: {integrity: sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==} + engines: {node: '>=10.0.0'} + + enhanced-resolve@5.15.0: + resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} + engines: {node: '>=10.13.0'} + + enhanced-resolve@5.16.0: + resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} + engines: {node: '>=10.13.0'} + + enquirer@2.3.6: + resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} + engines: {node: '>=8.6'} + + entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + envinfo@7.10.0: + resolution: {integrity: sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==} + engines: {node: '>=4'} + hasBin: true + + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + + error-stack-parser@2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + + es-abstract@1.22.1: + resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==} + engines: {node: '>= 0.4'} + + es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + + es-module-lexer@0.9.3: + resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} + + es-module-lexer@1.4.1: + resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==} + + es-set-tostringtag@2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + engines: {node: '>= 0.4'} + + es-shim-unscopables@1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + + es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + + esbuild-plugin-alias@0.2.1: + resolution: {integrity: sha512-jyfL/pwPqaFXyKnj8lP8iLk6Z0m099uXR45aSN8Av1XD4vhvQutxxPzgA2bTcAwQpa1zCXDcWOlhFgyP3GKqhQ==} + + esbuild-register@3.5.0: + resolution: {integrity: sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==} + peerDependencies: + esbuild: '>=0.12 <1' + + esbuild@0.19.9: + resolution: {integrity: sha512-U9CHtKSy+EpPsEBa+/A2gMs/h3ylBC0H0KSqIg7tpztHerLi6nrrcoUJAkNCEPumx8yJ+Byic4BVwHgRbN0TBg==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.20.2: + resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} + engines: {node: '>=12'} + hasBin: true + + escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-config-prettier@9.1.0: + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + + eslint-module-utils@2.8.0: + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + + eslint-plugin-import@2.29.1: + resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + + eslint-plugin-prettier@5.1.3: + resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '*' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + + eslint-plugin-react-hooks@4.6.0: + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + + eslint-plugin-react-refresh@0.4.6: + resolution: {integrity: sha512-NjGXdm7zgcKRkKMua34qVO9doI7VOxZ6ancSvBELJSSoX97jyndXcSoa8XBh69JoB31dNz3EEzlMcizZl7LaMA==} + peerDependencies: + eslint: '>=7' + + eslint-plugin-simple-import-sort@12.0.0: + resolution: {integrity: sha512-8o0dVEdAkYap0Cn5kNeklaKcT1nUsa3LITWEuFk3nJifOoD+5JQGoyDUW2W/iPWwBsNBJpyJS9y4je/BgxLcyQ==} + peerDependencies: + eslint: '>=5.0.0' + + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + 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} + + eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@1.0.1: + resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + + 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@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + + exif-parser@0.1.12: + resolution: {integrity: sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==} + + express@4.18.2: + resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} + engines: {node: '>= 0.10.0'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + + fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + engines: {node: '>=8.6.0'} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + + fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + + faye-websocket@0.11.4: + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + engines: {node: '>=0.8.0'} + + fetch-blob@3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} + engines: {node: ^12.20 || >= 14.13} + + fetch-retry@5.0.6: + resolution: {integrity: sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ==} + + figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + + file-system-cache@2.3.0: + resolution: {integrity: sha512-l4DMNdsIPsVnKrgEXbJwDJsA5mB8rGwHYERMgqQx/xAUtChPJMre1bXBzDEqqVbWv9AIbFezXMxeEkZDSrXUOQ==} + + file-type@16.5.4: + resolution: {integrity: sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==} + engines: {node: '>=10'} + + filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + + fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + + finalhandler@1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + engines: {node: '>= 0.8'} + + find-cache-dir@2.1.0: + resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==} + engines: {node: '>=6'} + + find-cache-dir@3.3.2: + resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} + engines: {node: '>=8'} + + find-root@1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + + find-up@3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@3.0.4: + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + engines: {node: ^10.12.0 || >=12.0.0} + + flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + + flatted@3.2.7: + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + + flow-parser@0.215.1: + resolution: {integrity: sha512-qq3rdRToqwesrddyXf+Ml8Tuf7TdoJS+EMbJgC6fHAVoBCXjb4mHelNd3J+jD8ts0bSHX81FG3LN7Qn/dcl6pA==} + engines: {node: '>=0.4.0'} + + follow-redirects@1.15.5: + resolution: {integrity: sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + + foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} + + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + + formdata-polyfill@4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} + engines: {node: '>=12.20.0'} + + forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + framer-motion@11.0.28: + resolution: {integrity: sha512-j/vNYTCH5MX5sY/3dwMs00z1+qAqKX3iIHF762bwqlU814ooD5dDbuj3pA0LmIT5YqyryCkXEb/q+zRblin0lw==} + peerDependencies: + '@emotion/is-prop-valid': '*' + react: ^18.0.0 + react-dom: ^18.0.0 + peerDependenciesMeta: + '@emotion/is-prop-valid': + optional: true + react: + optional: true + react-dom: + optional: true + + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + + fs-extra@11.1.1: + resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} + engines: {node: '>=14.14'} + + fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + + fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + + fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + + fs-monkey@1.0.5: + resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} + + 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] + + function-bind@1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + function.prototype.name@1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + engines: {node: '>= 0.4'} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + fuse.js@7.0.0: + resolution: {integrity: sha512-14F4hBIxqKvD4Zz/XjDc3y94mNZN6pRv3U13Udo0lNLCWRBUsrMv2xwcF/y/Z5sV6+FQW+/ow68cHpm4sunt8Q==} + engines: {node: '>=10'} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + engines: {node: '>=18'} + + get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + + get-intrinsic@1.2.1: + resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} + + get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + + get-npm-tarball-url@2.0.3: + resolution: {integrity: sha512-R/PW6RqyaBQNWYaSyfrh54/qtcnOp22FHCCiRhSSZj0FP3KQWCsxxt0DzIdVTbwTqe9CtQfvl/FPD4UIPt4pqw==} + engines: {node: '>=12.17'} + + get-own-enumerable-property-symbols@3.0.2: + resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + + get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + + gifwrap@0.9.4: + resolution: {integrity: sha512-MDMwbhASQuVeD4JKd1fKgNgCRL3fGqMM4WaqpNhWO0JiMOAjbQdumbs4BbBZEy9/M00EHEjKN3HieVhCUlwjeQ==} + + giget@1.1.2: + resolution: {integrity: sha512-HsLoS07HiQ5oqvObOI+Qb2tyZH4Gj5nYGfF9qQcZNrPw+uEFhdXtgJr01aO2pWadGHucajYDLxxbtQkm97ON2A==} + hasBin: true + + github-slugger@2.0.0: + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + glob@10.3.12: + resolution: {integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + glob@10.3.4: + resolution: {integrity: sha512-6LFElP3A+i/Q8XQKEvZjkEWEOTgAIALR9AO2rwT8bgPhDd1anmqDJDZ6lLddI4ehxxxR1S5RIqKe1uapMQfYaQ==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + + global@4.4.0: + resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==} + + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + globals@13.21.0: + resolution: {integrity: sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==} + engines: {node: '>=8'} + + globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + globby@14.0.1: + resolution: {integrity: sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==} + engines: {node: '>=18'} + + globrex@0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + gunzip-maybe@1.4.2: + resolution: {integrity: sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==} + hasBin: true + + gzip-size@6.0.0: + resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} + engines: {node: '>=10'} + + handle-thing@2.0.1: + resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} + + handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} + hasBin: true + + has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + + has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + + has@1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + + hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + engines: {node: '>= 0.4'} + + hast-util-heading-rank@3.0.0: + resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==} + + hast-util-is-element@3.0.0: + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + + hast-util-to-string@3.0.0: + resolution: {integrity: sha512-OGkAxX1Ua3cbcW6EJ5pT/tslVb90uViVkcJ4ZZIMW/R33DX/AkcJcRrPebPwJkHYwlDHXz4aIwvAAaAdtrACFA==} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + highlight-words-core@1.2.2: + resolution: {integrity: sha512-BXUKIkUuh6cmmxzi5OIbUJxrG8OAk2MqoL1DtO3Wo9D2faJg2ph5ntyuQeLqaHJmzER6H5tllCDA9ZnNe9BVGg==} + + hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + + hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + + hpack.js@2.1.6: + resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} + + html-entities@2.4.0: + resolution: {integrity: sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==} + + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + + html-minifier-terser@6.1.0: + resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} + engines: {node: '>=12'} + hasBin: true + + html-to-image@1.11.11: + resolution: {integrity: sha512-9gux8QhvjRO/erSnDPv28noDZcPZmYE7e1vFsBLKLlRlKDSqNJYebj6Qz1TGd5lsRV+X+xYyjCKjuZdABinWjA==} + + html-webpack-plugin@5.6.0: + resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==} + engines: {node: '>=10.13.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + webpack: ^5.20.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true + + htmlparser2@6.1.0: + resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} + + http-deceiver@1.2.7: + resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} + + http-errors@1.6.3: + resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + engines: {node: '>= 0.6'} + + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + + http-parser-js@0.5.8: + resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} + + http-proxy-middleware@2.0.6: + resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/express': ^4.17.13 + peerDependenciesMeta: + '@types/express': + optional: true + + http-proxy@1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} + + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + + husky@9.0.11: + resolution: {integrity: sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==} + engines: {node: '>=18'} + hasBin: true + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + icss-utils@5.1.0: + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + idb@7.1.1: + resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + engines: {node: '>= 4'} + + ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + + image-q@4.0.0: + resolution: {integrity: sha512-PfJGVgIfKQJuq3s0tTDOKtztksibuUEbJQIYT3by6wctQo+Rdlh7ef4evJ5NCdxY4CfMbvFkocEwbl4BF8RlJw==} + + immer@10.0.4: + resolution: {integrity: sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw==} + + immutable@4.3.4: + resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==} + + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + import-lazy@4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} + engines: {node: '>=8'} + + import-local@3.1.0: + resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} + engines: {node: '>=8'} + hasBin: true + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + + inherits@2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + internal-slot@1.0.5: + resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + engines: {node: '>= 0.4'} + + internmap@2.0.3: + resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} + engines: {node: '>=12'} + + interpret@3.1.1: + resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} + engines: {node: '>=10.13.0'} + + invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + + ip@2.0.1: + resolution: {integrity: sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==} + + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + + ipaddr.js@2.1.0: + resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==} + engines: {node: '>= 10'} + + 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} + + is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + + is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + + is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-core-module@2.13.0: + resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} + + is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + + is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + + is-deflate@1.0.0: + resolution: {integrity: sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ==} + + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + + is-fullwidth-code-point@5.0.0: + resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} + engines: {node: '>=18'} + + is-function@1.0.2: + resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==} + + is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-gzip@1.0.0: + resolution: {integrity: sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ==} + engines: {node: '>=0.10.0'} + + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + + is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + + is-map@2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + + is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + + is-nan@1.3.2: + resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} + engines: {node: '>= 0.4'} + + is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + + is-network-error@1.1.0: + resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==} + engines: {node: '>=16'} + + is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-obj@1.0.1: + resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} + engines: {node: '>=0.10.0'} + + is-path-cwd@2.2.0: + resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} + engines: {node: '>=6'} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + is-plain-obj@3.0.0: + resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} + engines: {node: '>=10'} + + is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + + is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + + is-regexp@1.0.0: + resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} + engines: {node: '>=0.10.0'} + + is-set@2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + + is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + 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'} + + is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + + is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + engines: {node: '>= 0.4'} + + is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + + is-weakmap@2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + + is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + + is-weakset@2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + + jackspeak@2.3.1: + resolution: {integrity: sha512-4iSY3Bh1Htv+kLhiiZunUhQ+OYXIn0ze3ulq8JeWrFKmhPAJSySV2+kdtRh2pGcCeF0s6oR8Oc+pYZynJj4t8A==} + engines: {node: '>=14'} + + jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} + + jake@10.8.7: + resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} + engines: {node: '>=10'} + hasBin: true + + javascript-stringify@2.1.0: + resolution: {integrity: sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==} + + jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-worker@26.6.2: + resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} + engines: {node: '>= 10.13.0'} + + jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + + jimp@0.16.1: + resolution: {integrity: sha512-+EKVxbR36Td7Hfd23wKGIeEyHbxShZDX6L8uJkgVW3ESA9GiTEPK08tG1XI2r/0w5Ch0HyJF5kPqF9K7EmGjaw==} + + jju@1.4.0: + resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} + + jotai-devtools@0.8.0: + resolution: {integrity: sha512-dSxiDuEz/fvgxC5hCWJfRHTSaDz8RBaQ2DUO3SJqvskIP44BUxx5EJSQHN9WdbPqp9VQ2Db8yIR9jLGbpnuLtA==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@emotion/react': '>=11.0.0' + react: '>=17.0.0' + + jotai-immer@0.3.0: + resolution: {integrity: sha512-k+o4rWfWWLyHfucHAdoiN+l8flxMrKC/bEFvJA98znj+kbPW5R90EPa1u8mhWLJTABW3xjAp7Z3kyD3FVi0Hgw==} + peerDependencies: + immer: '*' + jotai: '>=2.0.0' + react: '>=17.0.0' + + jotai@2.8.0: + resolution: {integrity: sha512-yZNMC36FdLOksOr8qga0yLf14miCJlEThlp5DeFJNnqzm2+ZG7wLcJzoOyij5K6U6Xlc5ljQqPDlJRgqW0Y18g==} + engines: {node: '>=12.20.0'} + peerDependencies: + '@types/react': '>=17.0.0' + react: '>=17.0.0' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + + jpeg-js@0.4.4: + resolution: {integrity: sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-tokens@9.0.0: + resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jscodeshift@0.15.1: + resolution: {integrity: sha512-hIJfxUy8Rt4HkJn/zZPU9ChKfKZM1342waJ1QC2e2YsPcWhM+3BJ4dcfQCzArTrk1jJeNLB341H+qOcEHRxJZg==} + hasBin: true + peerDependencies: + '@babel/preset-env': ^7.1.6 + peerDependenciesMeta: + '@babel/preset-env': + 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-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonc-parser@3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + + jsondiffpatch@0.5.0: + resolution: {integrity: sha512-Quz3MvAwHxVYNXsOByL7xI5EB2WYOeFswqaHIA3qOK3isRWTxiplBEocmmru6XmxDB2L7jDNYtYA4FyimoAFEw==} + engines: {node: '>=8.17.0'} + hasBin: true + bundledDependencies: [] + + jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + jsonpointer@5.0.1: + resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} + engines: {node: '>=0.10.0'} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + + kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + + launch-editor@2.6.1: + resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==} + + lazy-universal-dotenv@4.0.0: + resolution: {integrity: sha512-aXpZJRnTkpK6gQ/z4nk+ZBLd/Qdp118cvPruLSIQzQNRhKwEcdXCOzXuF55VDqIiuAaY3UGZ10DJtvZzDcvsxg==} + engines: {node: '>=14.0.0'} + + leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lilconfig@3.0.0: + resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + lines-and-columns@2.0.4: + resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + lint-staged@15.2.2: + resolution: {integrity: sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==} + engines: {node: '>=18.12.0'} + hasBin: true + + listr2@8.0.1: + resolution: {integrity: sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==} + engines: {node: '>=18.0.0'} + + load-bmfont@1.4.1: + resolution: {integrity: sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==} + + 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'} + + local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + + locate-path@3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + + lodash.curry@4.1.1: + resolution: {integrity: sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA==} + + lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + + lodash.get@4.4.2: + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + + lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + 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'} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + + lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + + lru-cache@10.0.1: + resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} + engines: {node: 14 || >=16.14} + + lru-cache@10.2.0: + resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} + engines: {node: 14 || >=16.14} + + 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'} + + luxon@3.4.4: + resolution: {integrity: sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==} + engines: {node: '>=12'} + + lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} + hasBin: true + + macaddress@0.5.3: + resolution: {integrity: sha512-vGBKTA+jwM4KgjGZ+S/8/Mkj9rWzePyGY6jManXPGhiWu63RYwW8dKPyk5koP+8qNVhPhHgFa1y/MJ4wrjsNrg==} + + magic-string@0.25.9: + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + + magic-string@0.30.5: + resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} + engines: {node: '>=12'} + + magic-string@0.30.9: + resolution: {integrity: sha512-S1+hd+dIrC8EZqKyT9DstTH/0Z+f76kmmvZnkfQVmOpDEF9iVgdYif3Q/pIWHmCoo59bQVGW0kVL3e2nl+9+Sw==} + engines: {node: '>=12'} + + make-dir@2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + engines: {node: '>=6'} + + make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + + map-or-similar@1.5.0: + resolution: {integrity: sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==} + + markdown-to-jsx@7.3.2: + resolution: {integrity: sha512-B+28F5ucp83aQm+OxNrPkS8z0tMKaeHiy0lHJs3LqCyDQFtWuenaIrkaVTgAm1pf1AU85LXltva86hlaT17i8Q==} + engines: {node: '>= 10'} + peerDependencies: + react: '>= 0.14.0' + + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + memfs@3.5.3: + resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} + engines: {node: '>= 4.0.0'} + + memfs@4.8.1: + resolution: {integrity: sha512-7q/AdPzf2WpwPlPL4v1kE2KsJsHl7EF4+hAeVzlyanr2+YnR21NVn9mDqo+7DEaKDRsQy8nvxPlKH4WqMtiO0w==} + engines: {node: '>= 4.0.0'} + + memoizerific@1.11.3: + resolution: {integrity: sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==} + + merge-descriptors@1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + + micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + mime@2.4.6: + resolution: {integrity: sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==} + engines: {node: '>=4.0.0'} + hasBin: true + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + + min-document@2.19.0: + resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==} + + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + + mini-css-extract-plugin@2.8.1: + resolution: {integrity: sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + + minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + + minimatch@3.0.8: + resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + + minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + + minimatch@9.0.4: + resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + + minipass@7.0.3: + resolution: {integrity: sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg==} + engines: {node: '>=16 || 14 >=14.17'} + + minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + engines: {node: '>=16 || 14 >=14.17'} + + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + + mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + mlly@1.4.2: + resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} + + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + + mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + muggle-string@0.3.1: + resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} + + multicast-dns@7.2.5: + resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} + hasBin: true + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanoid@5.0.7: + resolution: {integrity: sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==} + engines: {node: ^18 || >=20} + 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'} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + + node-dir@0.1.17: + resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==} + engines: {node: '>= 0.10.5'} + + node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + + node-fetch-native@1.4.0: + resolution: {integrity: sha512-F5kfEj95kX8tkDhUCYdV8dg3/8Olx/94zB8+ZNthFs6Bz31UpUi8Xh40TN3thLwXgrwXry1pEg9lJ++tLWTcqA==} + + 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 + + node-fetch@3.3.2: + resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + + node-machine-id@1.1.12: + resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} + + node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + + normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + npm-run-path@5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + nx@18.2.4: + resolution: {integrity: sha512-GxqJcDOhfLa9jsPmip0jG73CZKA96wCryss2DhixCiCU66I3GLYF4+585ObO8Tx7Z1GqhT92RaNGjCxjMIwaPg==} + hasBin: true + peerDependencies: + '@swc-node/register': ^1.8.0 + '@swc/core': ^1.3.85 + peerDependenciesMeta: + '@swc-node/register': + optional: true + '@swc/core': + optional: true + + object-inspect@1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + + object-is@1.1.5: + resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + + object.fromentries@2.0.7: + resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + engines: {node: '>= 0.4'} + + object.groupby@1.0.1: + resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} + + object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + engines: {node: '>= 0.4'} + + obuf@1.1.2: + resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + + omggif@1.0.10: + resolution: {integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + on-headers@1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + + open@10.1.0: + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} + engines: {node: '>=18'} + + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + + opener@1.5.2: + resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} + hasBin: true + + optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} + + ora@5.3.0: + resolution: {integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==} + engines: {node: '>=10'} + + ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-limit@5.0.0: + resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} + engines: {node: '>=18'} + + p-locate@3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + + p-retry@4.6.2: + resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + engines: {node: '>=8'} + + p-retry@6.2.0: + resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==} + engines: {node: '>=16.17'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + pako@0.2.9: + resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} + + pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + + param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-bmfont-ascii@1.0.6: + resolution: {integrity: sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==} + + parse-bmfont-binary@1.0.6: + resolution: {integrity: sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==} + + parse-bmfont-xml@1.1.4: + resolution: {integrity: sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==} + + parse-headers@2.0.5: + resolution: {integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + + 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==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@1.10.1: + resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} + engines: {node: '>=16 || 14 >=14.17'} + + path-scurry@1.10.2: + resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} + engines: {node: '>=16 || 14 >=14.17'} + + path-to-regexp@0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + path-type@5.0.0: + resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} + engines: {node: '>=12'} + + pathe@1.1.1: + resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} + + pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + + peek-readable@4.1.0: + resolution: {integrity: sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==} + engines: {node: '>=8'} + + peek-stream@1.1.3: + resolution: {integrity: sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==} + + phin@2.9.3: + resolution: {integrity: sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==} + + picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + + pixelmatch@4.0.2: + resolution: {integrity: sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==} + hasBin: true + + pkg-dir@3.0.0: + resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==} + engines: {node: '>=6'} + + pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + + pkg-dir@5.0.0: + resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} + engines: {node: '>=10'} + + pkg-types@1.0.3: + resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} + + pngjs@3.4.0: + resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==} + engines: {node: '>=4.0.0'} + + polished@4.2.2: + resolution: {integrity: sha512-Sz2Lkdxz6F2Pgnpi9U5Ng/WdWAUZxmHrNPoVlm3aAemxoy2Qy7LGjQg4uf8qKelDAUW94F4np3iH2YPf2qefcQ==} + engines: {node: '>=10'} + + postcss-modules-extract-imports@3.1.0: + resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-local-by-default@4.0.5: + resolution: {integrity: sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-scope@3.2.0: + resolution: {integrity: sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-values@4.0.0: + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-selector-parser@6.0.13: + resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} + engines: {node: '>=4'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + engines: {node: ^10 || ^12 || >=14} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + + prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + engines: {node: '>=14'} + hasBin: true + + pretty-bytes@5.6.0: + resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} + engines: {node: '>=6'} + + pretty-error@4.0.0: + resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} + + 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} + + pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + pretty-hrtime@1.0.3: + resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==} + engines: {node: '>= 0.8'} + + prism-react-renderer@1.3.5: + resolution: {integrity: sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==} + peerDependencies: + react: '>=0.14.9' + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + pump@2.0.1: + resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==} + + pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + + pumpify@1.5.1: + resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} + + punycode@2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + engines: {node: '>=6'} + + qs@6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} + + qs@6.11.2: + resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} + engines: {node: '>=0.6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + ramda@0.29.0: + resolution: {integrity: sha512-BBea6L67bYLtdbOqfp8f58fPMqEwx0doL+pAi8TZyp2YWz8R9G8z9x75CZI8W+ftqhFHCpEX2cRnUUXK130iKA==} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + raw-body@2.5.1: + resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} + engines: {node: '>= 0.8'} + + react-base16-styling@0.9.1: + resolution: {integrity: sha512-1s0CY1zRBOQ5M3T61wetEpvQmsYSNtWEcdYzyZNxKa8t7oDvaOn9d21xrGezGAHFWLM7SHcktPuPTrvoqxSfKw==} + + react-colorful@5.6.1: + resolution: {integrity: sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + react-dom@18.2.0: + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 + + react-error-boundary@4.0.12: + resolution: {integrity: sha512-kJdxdEYlb7CPC1A0SeUY38cHpjuu6UkvzKiAmqmOFL21VRfMhOcWxTCBgLVCO0VEMh9JhFNcVaXlV4/BTpiwOA==} + peerDependencies: + react: '>=16.13.1' + + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + react-is@17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + + react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + + react-json-tree@0.18.0: + resolution: {integrity: sha512-Qe6HKSXrr++n9Y31nkRJ3XvQMATISpqigH1vEKhLwB56+nk5thTP0ITThpjxY6ZG/ubpVq/aEHIcyLP/OPHxeA==} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + + react-refresh@0.14.0: + resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} + engines: {node: '>=0.10.0'} + + react-remove-scroll-bar@2.3.4: + resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-remove-scroll@2.5.5: + resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-resizable-panels@0.0.54: + resolution: {integrity: sha512-f8hHdQrqvXoiZGdRNuoOi/C2cdYT2nEpaOb1KIWVWorSTPZmnE+ZQiamGeu+AMx3iZ/tqBtlAkBOpKXzTnDCoA==} + peerDependencies: + react: ^16.14.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.14.0 || ^17.0.0 || ^18.0.0 + + react-router-dom@6.22.3: + resolution: {integrity: sha512-7ZILI7HjcE+p31oQvwbokjk6OA/bnFxrhJ19n82Ex9Ph8fNAq+Hm/7KchpMGlTgWhUxRHMMCut+vEtNpWpowKw==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + react-router@6.22.3: + resolution: {integrity: sha512-dr2eb3Mj5zK2YISHK++foM9w4eBnO23eKnZEDs7c880P6oKbrjz/Svg9+nxqtHQK+oMW4OtjZca0RqPglXxguQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + + react-style-singleton@2.2.1: + resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-textarea-autosize@8.3.4: + resolution: {integrity: sha512-CdtmP8Dc19xL8/R6sWvtknD/eCXkQr30dtvC4VmGInhRsfF8X/ihXCq6+9l9qbxmKRiq407/7z5fxE7cVWQNgQ==} + engines: {node: '>=10'} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + + react@18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} + + read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + + read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readable-web-to-node-stream@3.0.2: + resolution: {integrity: sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==} + engines: {node: '>=8'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + recast@0.23.6: + resolution: {integrity: sha512-9FHoNjX1yjuesMwuthAmPKabxYQdOgihFYmT5ebXfYGBcnqXZf3WOVz+5foEZ8Y83P4ZY6yQD5GMmtV+pgCCAQ==} + engines: {node: '>= 4'} + + rechoir@0.8.0: + resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} + engines: {node: '>= 10.13.0'} + + redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + + redux@5.0.1: + resolution: {integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==} + + regenerate-unicode-properties@10.1.0: + resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==} + engines: {node: '>=4'} + + regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + + regenerator-runtime@0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + + regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + + regenerator-transform@0.15.2: + resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} + + regexp.prototype.flags@1.5.0: + resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} + engines: {node: '>= 0.4'} + + regexpu-core@5.3.2: + resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} + engines: {node: '>=4'} + + regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true + + rehype-external-links@3.0.0: + resolution: {integrity: sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==} + + rehype-slug@6.0.0: + resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==} + + relateurl@0.2.7: + resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} + engines: {node: '>= 0.10'} + + renderkid@3.0.0: + resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + 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'} + + requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + + resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve@1.19.0: + resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==} + + resolve@1.22.4: + resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==} + hasBin: true + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + + restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rfdc@1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} + + rimraf@2.6.3: + resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} + hasBin: true + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + + rimraf@5.0.5: + resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} + engines: {node: '>=14'} + hasBin: true + + robust-predicates@3.0.2: + resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} + + rollup-plugin-terser@7.0.2: + resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} + deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser + peerDependencies: + rollup: ^2.0.0 + + rollup-plugin-visualizer@5.12.0: + resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} + engines: {node: '>=14'} + hasBin: true + peerDependencies: + rollup: 2.x || 3.x || 4.x + peerDependenciesMeta: + rollup: + optional: true + + rollup@2.79.1: + resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} + engines: {node: '>=10.0.0'} + hasBin: true + + rollup@4.14.2: + resolution: {integrity: sha512-WkeoTWvuBoFjFAhsEOHKRoZ3r9GfTyhh7Vff1zwebEFLEFjT1lG3784xEgKiTa7E+e70vsC81roVL2MP4tgEEQ==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-applescript@7.0.0: + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + rw@1.3.3: + resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} + + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + + safe-array-concat@1.0.0: + resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==} + engines: {node: '>=0.4'} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + + scheduler@0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + + schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + + schema-utils@4.2.0: + resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} + engines: {node: '>= 12.13.0'} + + select-hose@2.0.0: + resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} + + selfsigned@2.4.1: + resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} + engines: {node: '>=10'} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + + semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + + send@0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} + + serialize-javascript@4.0.0: + resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} + + serialize-javascript@6.0.1: + resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==} + + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + + serve-index@1.9.1: + resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} + engines: {node: '>= 0.8.0'} + + serve-static@1.15.0: + resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + engines: {node: '>= 0.8.0'} + + set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + engines: {node: '>= 0.4'} + + setprototypeof@1.1.0: + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + shallow-clone@3.0.1: + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + engines: {node: '>=8'} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shell-quote@1.8.1: + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + + shiki@0.14.7: + resolution: {integrity: sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==} + + side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + + sirv@2.0.4: + resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} + engines: {node: '>= 10'} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + + slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + + slice-ansi@7.1.0: + resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} + engines: {node: '>=18'} + + socket.io-client@4.7.5: + resolution: {integrity: sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==} + engines: {node: '>=10.0.0'} + + socket.io-parser@4.2.4: + resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} + engines: {node: '>=10.0.0'} + + sockjs@0.3.24: + resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} + + source-list-map@2.0.1: + resolution: {integrity: sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==} + + source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + + source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + + source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + + sourcemap-codec@1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + deprecated: Please use @jridgewell/sourcemap-codec instead + + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-license-ids@3.0.13: + resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} + + spdy-transport@3.0.0: + resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} + + spdy@4.0.2: + resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} + engines: {node: '>=6.0.0'} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + + stackframe@1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + + stats.js@0.17.0: + resolution: {integrity: sha512-hNKz8phvYLPEcRkeG1rsGmV5ChMjKDAWU7/OJJdDErPBNChQXxCo3WZurGpnWc6gZhAzEPFad1aVgyOANH1sMw==} + + statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + std-env@3.6.0: + resolution: {integrity: sha512-aFZ19IgVmhdB2uX599ve2kE6BIE3YMnQ6Gp6BURhW/oIzpXGKr878TQfAQZn1+i0Flcc/UKUy1gOlcfaUBCryg==} + + stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} + + store2@2.14.2: + resolution: {integrity: sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==} + + storybook@8.0.8: + resolution: {integrity: sha512-9gTnnAakJBtMCg8oPGqnpy7g/C3Tj2IWiVflHiFg1SDD9zXBoc4mZhaYPTne4LRBUhXk7XuFagKfiRN2V/MuKA==} + hasBin: true + + stream-shift@1.0.1: + resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} + + string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string-width@7.0.0: + resolution: {integrity: sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw==} + engines: {node: '>=18'} + + string.prototype.matchall@4.0.10: + resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} + + string.prototype.trim@1.2.7: + resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.6: + resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} + + string.prototype.trimstart@1.0.6: + resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} + + 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==} + + stringify-object@3.3.0: + resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} + engines: {node: '>=4'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-comments@2.0.1: + resolution: {integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==} + engines: {node: '>=10'} + + 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-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + strip-literal@2.1.0: + resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} + + strong-log-transformer@2.1.0: + resolution: {integrity: sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==} + engines: {node: '>=4'} + hasBin: true + + strtok3@6.3.0: + resolution: {integrity: sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==} + engines: {node: '>=10'} + + style-loader@4.0.0: + resolution: {integrity: sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA==} + engines: {node: '>= 18.12.0'} + peerDependencies: + webpack: ^5.27.0 + + stylis@4.2.0: + resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + swc-loader@0.2.6: + resolution: {integrity: sha512-9Zi9UP2YmDpgmQVbyOPJClY0dwf58JDyDMQ7uRc4krmc72twNI2fvlBWHLqVekBpPc7h5NJkGVT1zNDxFrqhvg==} + peerDependencies: + '@swc/core': ^1.2.147 + webpack: '>=2' + + synckit@0.8.8: + resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} + engines: {node: ^14.18.0 || >=16.0.0} + + tabbable@6.2.0: + resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + tar-fs@2.1.1: + resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + + tar@6.1.15: + resolution: {integrity: sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==} + engines: {node: '>=10'} + + telejson@7.2.0: + resolution: {integrity: sha512-1QTEcJkJEhc8OnStBx/ILRu5J2p0GjvWsBx56bmZRqnrkdBMUe+nX92jxV+p3dB4CP6PZCdJMQJwCggkNBMzkQ==} + + temp-dir@2.0.0: + resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} + engines: {node: '>=8'} + + temp@0.8.4: + resolution: {integrity: sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==} + engines: {node: '>=6.0.0'} + + tempy@0.6.0: + resolution: {integrity: sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==} + engines: {node: '>=10'} + + tempy@1.0.1: + resolution: {integrity: sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==} + engines: {node: '>=10'} + + 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.26.0: + resolution: {integrity: sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==} + engines: {node: '>=10'} + hasBin: true + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + through2@2.0.5: + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + + thunky@1.1.0: + resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + + timm@1.7.1: + resolution: {integrity: sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==} + + tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + + tinybench@2.5.1: + resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==} + + tinycolor2@1.6.0: + resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} + + tinykeys@2.1.0: + resolution: {integrity: sha512-/MESnqBD1xItZJn5oGQ4OsNORQgJfPP96XSGoyu4eLpwpL0ifO0SYR5OD76u0YMhMXsqkb0UqvI9+yXTh4xv8Q==} + + tinypool@0.8.3: + resolution: {integrity: sha512-Ud7uepAklqRH1bvwy22ynrliC7Dljz7Tm8M/0RBUW+YRa4YHhZ6e4PpgE+fu1zr/WqB1kbeuVrdfeuyIBpy4tw==} + engines: {node: '>=14.0.0'} + + tinyspy@2.2.0: + resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} + engines: {node: '>=14.0.0'} + + tmp@0.2.3: + resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} + engines: {node: '>=14.14'} + + to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + tocbot@4.21.1: + resolution: {integrity: sha512-IfajhBTeg0HlMXu1f+VMbPef05QpDTsZ9X2Yn1+8npdaXsXg/+wrm9Ze1WG5OS1UDC3qJ5EQN/XOZ3gfXjPFCw==} + + 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'} + + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + + ts-api-utils@1.3.0: + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: 5.4.5 + + ts-dedent@2.2.0: + resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} + engines: {node: '>=6.10'} + + ts-loader@9.5.1: + resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==} + engines: {node: '>=12.0.0'} + peerDependencies: + typescript: 5.4.5 + webpack: ^5.0.0 + + tsconfck@3.0.3: + resolution: {integrity: sha512-4t0noZX9t6GcPTfBAbIbbIU4pfpCwh0ueq3S4O/5qXI1VwK1outmxhe9dOiEWqMz3MW2LKgDTpqWV+37IWuVbA==} + engines: {node: ^18 || >=20} + hasBin: true + peerDependencies: + typescript: 5.4.5 + peerDependenciesMeta: + typescript: + optional: true + + tsconfig-paths-webpack-plugin@4.1.0: + resolution: {integrity: sha512-xWFISjviPydmtmgeUAuXp4N1fky+VCtfhOkDUFIv5ea7p4wuTomI4QTrXvFBX2S4jZsmyTSrStQl+E+4w+RzxA==} + engines: {node: '>=10.13.0'} + + tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + + tsconfig-paths@4.2.0: + resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} + engines: {node: '>=6'} + + tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + + tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + + type-fest@0.16.0: + resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} + engines: {node: '>=10'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + + type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + + type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + + type-fest@3.13.1: + resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} + engines: {node: '>=14.16'} + + type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + + typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + + typescript@5.4.5: + resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + engines: {node: '>=14.17'} + hasBin: true + + ufo@1.3.2: + resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} + + uglify-js@3.17.4: + resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} + engines: {node: '>=0.8.0'} + hasBin: true + + unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + unicode-canonical-property-names-ecmascript@2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} + + unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + + unicode-match-property-value-ecmascript@2.1.0: + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + engines: {node: '>=4'} + + unicode-property-aliases-ecmascript@2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} + + unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + + unique-string@2.0.0: + resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} + engines: {node: '>=8'} + + 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==} + + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + universalify@2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} + + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + unplugin@1.4.0: + resolution: {integrity: sha512-5x4eIEL6WgbzqGtF9UV8VEC/ehKptPXDS6L2b0mv4FRMkJxRtjaJfOWDd6a8+kYbqsjklix7yWP0N3SUepjXcg==} + + untildify@4.0.0: + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} + engines: {node: '>=8'} + + upath@1.2.0: + resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} + engines: {node: '>=4'} + + update-browserslist-db@1.0.13: + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + use-callback-ref@1.3.0: + resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + use-composed-ref@1.3.0: + resolution: {integrity: sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + + use-isomorphic-layout-effect@1.1.2: + resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + use-latest@1.2.1: + resolution: {integrity: sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + use-sidecar@1.1.2: + resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + utif@2.0.1: + resolution: {integrity: sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + util@0.12.5: + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + + utila@0.4.0: + resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} + + utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + validator@13.11.0: + resolution: {integrity: sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==} + engines: {node: '>= 0.10'} + + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + vite-node@1.5.0: + resolution: {integrity: sha512-tV8h6gMj6vPzVCa7l+VGq9lwoJjW8Y79vst8QZZGiuRAfijU+EEWuc0kFpmndQrWhMMhet1jdSF+40KSZUqIIw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + + vite-plugin-dts@3.8.2: + resolution: {integrity: sha512-GPkLNBUU+ztskHj37nelNsgRLurFuqXxqICSd/IxjRmgee1T6IIYlRCanugc9QtgWjYVPC/HJzSfpXJSy9OLUA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + typescript: 5.4.5 + vite: '*' + peerDependenciesMeta: + vite: + optional: true + + vite-tsconfig-paths@4.3.2: + resolution: {integrity: sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==} + peerDependencies: + vite: '*' + peerDependenciesMeta: + vite: + optional: true + + vite@5.2.8: + resolution: {integrity: sha512-OyZR+c1CE8yeHw5V5t59aXsUPPVTHMDjEZz8MgguLL/Q7NblxhZUlTu9xSPqlsUO/y+X7dlU05jdhvyycD55DA==} + 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 + + vitest@1.5.0: + resolution: {integrity: sha512-d8UKgR0m2kjdxDWX6911uwxout6GHS0XaGH1cksSIVVG8kRlE7G7aBw7myKQCvDI5dT4j7ZMa+l706BIORMDLw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 1.5.0 + '@vitest/ui': 1.5.0 + 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 + + vscode-oniguruma@1.7.0: + resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} + + vscode-textmate@8.0.0: + resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} + + vue-template-compiler@2.7.16: + resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} + + vue-tsc@1.8.27: + resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==} + hasBin: true + peerDependencies: + typescript: 5.4.5 + + watchpack@2.4.0: + resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} + engines: {node: '>=10.13.0'} + + watchpack@2.4.1: + resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} + engines: {node: '>=10.13.0'} + + wbuf@1.7.3: + resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} + + wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + + web-streams-polyfill@3.2.1: + resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} + engines: {node: '>= 8'} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + + webpack-bundle-analyzer@4.10.2: + resolution: {integrity: sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==} + engines: {node: '>= 10.13.0'} + hasBin: true + + webpack-cli@5.1.4: + resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==} + engines: {node: '>=14.15.0'} + hasBin: true + peerDependencies: + '@webpack-cli/generators': '*' + webpack: 5.x.x + webpack-bundle-analyzer: '*' + webpack-dev-server: '*' + peerDependenciesMeta: + '@webpack-cli/generators': + optional: true + webpack-bundle-analyzer: + optional: true + webpack-dev-server: + optional: true + + webpack-dev-middleware@5.3.4: + resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + + webpack-dev-middleware@7.2.1: + resolution: {integrity: sha512-hRLz+jPQXo999Nx9fXVdKlg/aehsw1ajA9skAneGmT03xwmyuhvF93p6HUKKbWhXdcERtGTzUCtIQr+2IQegrA==} + engines: {node: '>= 18.12.0'} + peerDependencies: + webpack: ^5.0.0 + peerDependenciesMeta: + webpack: + optional: true + + webpack-dev-server@4.15.2: + resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==} + engines: {node: '>= 12.13.0'} + hasBin: true + peerDependencies: + webpack: ^4.37.0 || ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack: + optional: true + webpack-cli: + optional: true + + webpack-dev-server@5.0.4: + resolution: {integrity: sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==} + engines: {node: '>= 18.12.0'} + hasBin: true + peerDependencies: + webpack: ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack: + optional: true + webpack-cli: + optional: true + + webpack-merge@5.10.0: + resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} + engines: {node: '>=10.0.0'} + + webpack-pwa-manifest@4.3.0: + resolution: {integrity: sha512-3hK8Qg58SyLCUIz4PBYnfUPM6iJ5K88h8Uhc3MxmlJcVtDF/11aBBdUTdQkqc9bo6Cb8Q1v2xdsB2XO6pzTbiA==} + engines: {node: '>=6.0.0'} + + webpack-sources@1.4.3: + resolution: {integrity: sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==} + + webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + + webpack-virtual-modules@0.5.0: + resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==} + + webpack@5.91.0: + resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + + websocket-driver@0.7.4: + resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + engines: {node: '>=0.8.0'} + + websocket-extensions@0.1.4: + resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} + engines: {node: '>=0.8.0'} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + + which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + + which-collection@1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + + which-typed-array@1.1.11: + resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} + engines: {node: '>= 0.4'} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + why-is-node-running@2.2.2: + resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + engines: {node: '>=8'} + hasBin: true + + wildcard@2.0.1: + resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} + + wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + + workbox-background-sync@7.0.0: + resolution: {integrity: sha512-S+m1+84gjdueM+jIKZ+I0Lx0BDHkk5Nu6a3kTVxP4fdj3gKouRNmhO8H290ybnJTOPfBDtTMXSQA/QLTvr7PeA==} + + workbox-broadcast-update@7.0.0: + resolution: {integrity: sha512-oUuh4jzZrLySOo0tC0WoKiSg90bVAcnE98uW7F8GFiSOXnhogfNDGZelPJa+6KpGBO5+Qelv04Hqx2UD+BJqNQ==} + + workbox-build@7.0.0: + resolution: {integrity: sha512-CttE7WCYW9sZC+nUYhQg3WzzGPr4IHmrPnjKiu3AMXsiNQKx+l4hHl63WTrnicLmKEKHScWDH8xsGBdrYgtBzg==} + engines: {node: '>=16.0.0'} + + workbox-cacheable-response@7.0.0: + resolution: {integrity: sha512-0lrtyGHn/LH8kKAJVOQfSu3/80WDc9Ma8ng0p2i/5HuUndGttH+mGMSvOskjOdFImLs2XZIimErp7tSOPmu/6g==} + + workbox-core@7.0.0: + resolution: {integrity: sha512-81JkAAZtfVP8darBpfRTovHg8DGAVrKFgHpOArZbdFd78VqHr5Iw65f2guwjE2NlCFbPFDoez3D3/6ZvhI/rwQ==} + + workbox-expiration@7.0.0: + resolution: {integrity: sha512-MLK+fogW+pC3IWU9SFE+FRStvDVutwJMR5if1g7oBJx3qwmO69BNoJQVaMXq41R0gg3MzxVfwOGKx3i9P6sOLQ==} + + workbox-google-analytics@7.0.0: + resolution: {integrity: sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg==} + + workbox-navigation-preload@7.0.0: + resolution: {integrity: sha512-juWCSrxo/fiMz3RsvDspeSLGmbgC0U9tKqcUPZBCf35s64wlaLXyn2KdHHXVQrb2cqF7I0Hc9siQalainmnXJA==} + + workbox-precaching@7.0.0: + resolution: {integrity: sha512-EC0vol623LJqTJo1mkhD9DZmMP604vHqni3EohhQVwhJlTgyKyOkMrZNy5/QHfOby+39xqC01gv4LjOm4HSfnA==} + + workbox-range-requests@7.0.0: + resolution: {integrity: sha512-SxAzoVl9j/zRU9OT5+IQs7pbJBOUOlriB8Gn9YMvi38BNZRbM+RvkujHMo8FOe9IWrqqwYgDFBfv6sk76I1yaQ==} + + workbox-recipes@7.0.0: + resolution: {integrity: sha512-DntcK9wuG3rYQOONWC0PejxYYIDHyWWZB/ueTbOUDQgefaeIj1kJ7pdP3LZV2lfrj8XXXBWt+JDRSw1lLLOnww==} + + workbox-routing@7.0.0: + resolution: {integrity: sha512-8YxLr3xvqidnbVeGyRGkaV4YdlKkn5qZ1LfEePW3dq+ydE73hUUJJuLmGEykW3fMX8x8mNdL0XrWgotcuZjIvA==} + + workbox-strategies@7.0.0: + resolution: {integrity: sha512-dg3qJU7tR/Gcd/XXOOo7x9QoCI9nk74JopaJaYAQ+ugLi57gPsXycVdBnYbayVj34m6Y8ppPwIuecrzkpBVwbA==} + + workbox-streams@7.0.0: + resolution: {integrity: sha512-moVsh+5to//l6IERWceYKGiftc+prNnqOp2sgALJJFbnNVpTXzKISlTIsrWY+ogMqt+x1oMazIdHj25kBSq/HQ==} + + workbox-sw@7.0.0: + resolution: {integrity: sha512-SWfEouQfjRiZ7GNABzHUKUyj8pCoe+RwjfOIajcx6J5mtgKkN+t8UToHnpaJL5UVVOf5YhJh+OHhbVNIHe+LVA==} + + workbox-webpack-plugin@7.0.0: + resolution: {integrity: sha512-R1ZzCHPfzeJjLK2/TpKUhxSQ3fFDCxlWxgRhhSjMQLz3G2MlBnyw/XeYb34e7SGgSv0qG22zEhMIzjMNqNeKbw==} + engines: {node: '>=16.0.0'} + peerDependencies: + webpack: ^4.4.0 || ^5.9.0 + + workbox-window@7.0.0: + resolution: {integrity: sha512-j7P/bsAWE/a7sxqTzXo3P2ALb1reTfZdvVp6OJ/uLr/C2kZAMvjeWGm8V4htQhor7DOvYg0sSbFN2+flT5U0qA==} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + write-file-atomic@2.4.3: + resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==} + + ws@7.5.9: + resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} + 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 + + ws@8.11.0: + resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==} + 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 + + ws@8.13.0: + resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} + 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 + + ws@8.16.0: + resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} + 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 + + xhr@2.6.0: + resolution: {integrity: sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==} + + xml-parse-from-string@1.0.1: + resolution: {integrity: sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==} + + xml2js@0.4.23: + resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==} + engines: {node: '>=4.0.0'} + + xmlbuilder@11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} + + xmlhttprequest-ssl@2.0.0: + resolution: {integrity: sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==} + engines: {node: '>=0.4.0'} + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + + yaml@2.3.4: + resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} + engines: {node: '>= 14'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + + z-schema@5.0.5: + resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==} + engines: {node: '>=8.0.0'} + hasBin: true + +snapshots: + + '@aashutoshrathi/word-wrap@1.2.6': {} + + '@adobe/css-tools@4.3.3': {} + + '@ampproject/remapping@2.2.1': + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.25 + + '@apideck/better-ajv-errors@0.3.6(ajv@8.12.0)': + dependencies: + ajv: 8.12.0 + json-schema: 0.4.0 + jsonpointer: 5.0.1 + leven: 3.1.0 + + '@aw-web-design/x-default-browser@1.4.126': + dependencies: + default-browser-id: 3.0.0 + + '@babel/code-frame@7.23.5': + dependencies: + '@babel/highlight': 7.23.4 + chalk: 2.4.2 + + '@babel/code-frame@7.24.2': + dependencies: + '@babel/highlight': 7.24.2 + picocolors: 1.0.0 + + '@babel/compat-data@7.23.5': {} + + '@babel/core@7.24.4': + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.4 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helpers': 7.24.4 + '@babel/parser': 7.24.4 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.23.6': + dependencies: + '@babel/types': 7.23.6 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.19 + jsesc: 2.5.2 + + '@babel/generator@7.24.4': + dependencies: + '@babel/types': 7.24.0 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + + '@babel/helper-annotate-as-pure@7.22.5': + dependencies: + '@babel/types': 7.23.6 + + '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': + dependencies: + '@babel/types': 7.23.6 + + '@babel/helper-compilation-targets@7.23.6': + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/helper-validator-option': 7.23.5 + browserslist: 4.22.2 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.23.6(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.4) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 + + '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + regexpu-core: 5.3.2 + semver: 6.3.1 + + '@babel/helper-define-polyfill-provider@0.4.4(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + debug: 4.3.4 + lodash.debounce: 4.0.8 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + + '@babel/helper-environment-visitor@7.22.20': {} + + '@babel/helper-function-name@7.22.5': + dependencies: + '@babel/template': 7.22.15 + '@babel/types': 7.23.6 + + '@babel/helper-function-name@7.23.0': + dependencies: + '@babel/template': 7.22.15 + '@babel/types': 7.23.6 + + '@babel/helper-hoist-variables@7.22.5': + dependencies: + '@babel/types': 7.23.6 + + '@babel/helper-member-expression-to-functions@7.23.0': + dependencies: + '@babel/types': 7.23.6 + + '@babel/helper-module-imports@7.22.15': + dependencies: + '@babel/types': 7.23.6 + + '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + + '@babel/helper-optimise-call-expression@7.22.5': + dependencies: + '@babel/types': 7.23.6 + + '@babel/helper-plugin-utils@7.22.5': {} + + '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-wrap-function': 7.22.20 + + '@babel/helper-replace-supers@7.22.20(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + + '@babel/helper-simple-access@7.22.5': + dependencies: + '@babel/types': 7.23.6 + + '@babel/helper-skip-transparent-expression-wrappers@7.22.5': + dependencies: + '@babel/types': 7.23.6 + + '@babel/helper-split-export-declaration@7.22.6': + dependencies: + '@babel/types': 7.23.6 + + '@babel/helper-string-parser@7.23.4': {} + + '@babel/helper-validator-identifier@7.22.20': {} + + '@babel/helper-validator-option@7.23.5': {} + + '@babel/helper-wrap-function@7.22.20': + dependencies: + '@babel/helper-function-name': 7.22.5 + '@babel/template': 7.22.15 + '@babel/types': 7.23.6 + + '@babel/helpers@7.24.4': + dependencies: + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 + transitivePeerDependencies: + - supports-color + + '@babel/highlight@7.23.4': + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + + '@babel/highlight@7.24.2': + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.0 + + '@babel/parser@7.23.6': + dependencies: + '@babel/types': 7.23.6 + + '@babel/parser@7.24.0': + dependencies: + '@babel/types': 7.23.6 + + '@babel/parser@7.24.4': + dependencies: + '@babel/types': 7.24.0 + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.24.4) + + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-syntax-flow@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-transform-async-generator-functions@7.23.4(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.4) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4) + + '@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.4) + + '@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.4) + + '@babel/plugin-transform-classes@7.23.5(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.4) + '@babel/helper-split-export-declaration': 7.22.6 + globals: 11.12.0 + + '@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/template': 7.22.15 + + '@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.4) + + '@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.4) + + '@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.24.4) + + '@babel/plugin-transform-for-of@7.23.6(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + + '@babel/plugin-transform-function-name@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.4) + + '@babel/plugin-transform-literals@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.4) + + '@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-simple-access': 7.22.5 + + '@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 + + '@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-transform-new-target@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) + + '@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.4) + + '@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.24.4)': + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/core': 7.24.4 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.4) + + '@babel/plugin-transform-object-super@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.4) + + '@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.4) + + '@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) + + '@babel/plugin-transform-parameters@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.4) + + '@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + regenerator-transform: 0.15.2 + + '@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-transform-spread@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + + '@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-transform-typescript@7.23.6(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.24.4) + + '@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/preset-env@7.23.6(@babel/core@7.24.4)': + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/core': 7.24.4 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.4) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.4) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.4) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.4) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.4) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.4) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-async-generator-functions': 7.23.4(@babel/core@7.24.4) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.24.4) + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.24.4) + '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.24.4) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.24.4) + '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.24.4) + '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.24.4) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.24.4) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.24.4) + '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.4) + '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.24.4) + '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.24.4) + '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.24.4) + '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.24.4) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.24.4) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.24.4) + '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.24.4) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.4) + babel-plugin-polyfill-corejs2: 0.4.7(@babel/core@7.24.4) + babel-plugin-polyfill-corejs3: 0.8.7(@babel/core@7.24.4) + babel-plugin-polyfill-regenerator: 0.5.4(@babel/core@7.24.4) + core-js-compat: 3.34.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/preset-flow@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.24.4) + + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/types': 7.23.6 + esutils: 2.0.3 + + '@babel/preset-typescript@7.23.3(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.24.4) + + '@babel/register@7.22.15(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + 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@7.22.11': + dependencies: + regenerator-runtime: 0.14.0 + + '@babel/runtime@7.23.6': + dependencies: + regenerator-runtime: 0.14.0 + + '@babel/template@7.22.15': + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 + + '@babel/template@7.24.0': + dependencies: + '@babel/code-frame': 7.24.2 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 + + '@babel/traverse@7.24.0': + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.24.0 + '@babel/types': 7.24.0 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/traverse@7.24.1': + dependencies: + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.23.6': + dependencies: + '@babel/helper-string-parser': 7.23.4 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + + '@babel/types@7.24.0': + dependencies: + '@babel/helper-string-parser': 7.23.4 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + + '@colors/colors@1.5.0': + optional: true + + '@dineug/go@0.1.8': {} + + '@discoveryjs/json-ext@0.5.7': {} + + '@easylogic/colorpicker@1.10.11': {} + + '@egjs/agent@2.4.3': {} + + '@emotion/babel-plugin@11.11.0': + dependencies: + '@babel/helper-module-imports': 7.22.15 + '@babel/runtime': 7.23.6 + '@emotion/hash': 0.9.1 + '@emotion/memoize': 0.8.1 + '@emotion/serialize': 1.1.3 + babel-plugin-macros: 3.1.0 + convert-source-map: 1.9.0 + escape-string-regexp: 4.0.0 + find-root: 1.1.0 + source-map: 0.5.7 + stylis: 4.2.0 + + '@emotion/cache@11.11.0': + dependencies: + '@emotion/memoize': 0.8.1 + '@emotion/sheet': 1.2.2 + '@emotion/utils': 1.2.1 + '@emotion/weak-memoize': 0.3.1 + stylis: 4.2.0 + + '@emotion/hash@0.9.1': {} + + '@emotion/memoize@0.8.1': {} + + '@emotion/react@11.11.4(@types/react@18.2.77)(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@emotion/babel-plugin': 11.11.0 + '@emotion/cache': 11.11.0 + '@emotion/serialize': 1.1.3 + '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) + '@emotion/utils': 1.2.1 + '@emotion/weak-memoize': 0.3.1 + hoist-non-react-statics: 3.3.2 + react: 18.2.0 + optionalDependencies: + '@types/react': 18.2.77 + + '@emotion/serialize@1.1.3': + dependencies: + '@emotion/hash': 0.9.1 + '@emotion/memoize': 0.8.1 + '@emotion/unitless': 0.8.1 + '@emotion/utils': 1.2.1 + csstype: 3.1.2 + + '@emotion/sheet@1.2.2': {} + + '@emotion/unitless@0.8.1': {} + + '@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.2.0)': + dependencies: + react: 18.2.0 + + '@emotion/utils@1.2.1': {} + + '@emotion/weak-memoize@0.3.1': {} + + '@esbuild/aix-ppc64@0.20.2': + optional: true + + '@esbuild/android-arm64@0.19.9': + optional: true + + '@esbuild/android-arm64@0.20.2': + optional: true + + '@esbuild/android-arm@0.19.9': + optional: true + + '@esbuild/android-arm@0.20.2': + optional: true + + '@esbuild/android-x64@0.19.9': + optional: true + + '@esbuild/android-x64@0.20.2': + optional: true + + '@esbuild/darwin-arm64@0.19.9': + optional: true + + '@esbuild/darwin-arm64@0.20.2': + optional: true + + '@esbuild/darwin-x64@0.19.9': + optional: true + + '@esbuild/darwin-x64@0.20.2': + optional: true + + '@esbuild/freebsd-arm64@0.19.9': + optional: true + + '@esbuild/freebsd-arm64@0.20.2': + optional: true + + '@esbuild/freebsd-x64@0.19.9': + optional: true + + '@esbuild/freebsd-x64@0.20.2': + optional: true + + '@esbuild/linux-arm64@0.19.9': + optional: true + + '@esbuild/linux-arm64@0.20.2': + optional: true + + '@esbuild/linux-arm@0.19.9': + optional: true + + '@esbuild/linux-arm@0.20.2': + optional: true + + '@esbuild/linux-ia32@0.19.9': + optional: true + + '@esbuild/linux-ia32@0.20.2': + optional: true + + '@esbuild/linux-loong64@0.19.9': + optional: true + + '@esbuild/linux-loong64@0.20.2': + optional: true + + '@esbuild/linux-mips64el@0.19.9': + optional: true + + '@esbuild/linux-mips64el@0.20.2': + optional: true + + '@esbuild/linux-ppc64@0.19.9': + optional: true + + '@esbuild/linux-ppc64@0.20.2': + optional: true + + '@esbuild/linux-riscv64@0.19.9': + optional: true + + '@esbuild/linux-riscv64@0.20.2': + optional: true + + '@esbuild/linux-s390x@0.19.9': + optional: true + + '@esbuild/linux-s390x@0.20.2': + optional: true + + '@esbuild/linux-x64@0.19.9': + optional: true + + '@esbuild/linux-x64@0.20.2': + optional: true + + '@esbuild/netbsd-x64@0.19.9': + optional: true + + '@esbuild/netbsd-x64@0.20.2': + optional: true + + '@esbuild/openbsd-x64@0.19.9': + optional: true + + '@esbuild/openbsd-x64@0.20.2': + optional: true + + '@esbuild/sunos-x64@0.19.9': + optional: true + + '@esbuild/sunos-x64@0.20.2': + optional: true + + '@esbuild/win32-arm64@0.19.9': + optional: true + + '@esbuild/win32-arm64@0.20.2': + optional: true + + '@esbuild/win32-ia32@0.19.9': + optional: true + + '@esbuild/win32-ia32@0.20.2': + optional: true + + '@esbuild/win32-x64@0.19.9': + optional: true + + '@esbuild/win32-x64@0.20.2': + optional: true + + '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': + dependencies: + eslint: 8.57.0 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.10.0': {} + + '@eslint-community/regexpp@4.7.0': {} + + '@eslint/eslintrc@2.1.4': + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.21.0 + ignore: 5.2.4 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@8.57.0': {} + + '@fal-works/esbuild-plugin-global-externals@2.1.2': {} + + '@floating-ui/core@1.5.0': + dependencies: + '@floating-ui/utils': 0.1.6 + + '@floating-ui/dom@1.6.3': + dependencies: + '@floating-ui/core': 1.5.0 + '@floating-ui/utils': 0.2.1 + + '@floating-ui/react-dom@1.3.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@floating-ui/dom': 1.6.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@floating-ui/react-dom@2.0.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@floating-ui/dom': 1.6.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@floating-ui/react@0.19.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@floating-ui/react-dom': 1.3.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + aria-hidden: 1.2.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + tabbable: 6.2.0 + + '@floating-ui/utils@0.1.6': {} + + '@floating-ui/utils@0.2.1': {} + + '@fortawesome/fontawesome-common-types@6.5.2': {} + + '@fortawesome/free-regular-svg-icons@6.5.2': + dependencies: + '@fortawesome/fontawesome-common-types': 6.5.2 + + '@fortawesome/free-solid-svg-icons@6.5.2': + dependencies: + '@fortawesome/fontawesome-common-types': 6.5.2 + + '@humanwhocodes/config-array@0.11.14': + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/object-schema@2.0.3': {} + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@jest/schemas@29.6.3': + dependencies: + '@sinclair/typebox': 0.27.8 + + '@jimp/bmp@0.16.13(@jimp/custom@0.16.13)': + dependencies: + '@babel/runtime': 7.22.11 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + bmp-js: 0.1.0 + + '@jimp/core@0.16.13': + dependencies: + '@babel/runtime': 7.22.11 + '@jimp/utils': 0.16.13 + any-base: 1.1.0 + buffer: 5.7.1 + exif-parser: 0.1.12 + file-type: 16.5.4 + load-bmfont: 1.4.1 + mkdirp: 0.5.6 + phin: 2.9.3 + pixelmatch: 4.0.2 + tinycolor2: 1.6.0 + + '@jimp/custom@0.16.13': + dependencies: + '@babel/runtime': 7.22.11 + '@jimp/core': 0.16.13 + + '@jimp/gif@0.16.13(@jimp/custom@0.16.13)': + dependencies: + '@babel/runtime': 7.22.11 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + gifwrap: 0.9.4 + omggif: 1.0.10 + + '@jimp/jpeg@0.16.13(@jimp/custom@0.16.13)': + dependencies: + '@babel/runtime': 7.22.11 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + jpeg-js: 0.4.4 + + '@jimp/plugin-blit@0.16.13(@jimp/custom@0.16.13)': + dependencies: + '@babel/runtime': 7.22.11 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + + '@jimp/plugin-blur@0.16.13(@jimp/custom@0.16.13)': + dependencies: + '@babel/runtime': 7.22.11 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + + '@jimp/plugin-circle@0.16.13(@jimp/custom@0.16.13)': + dependencies: + '@babel/runtime': 7.22.11 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + + '@jimp/plugin-color@0.16.13(@jimp/custom@0.16.13)': + dependencies: + '@babel/runtime': 7.22.11 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + tinycolor2: 1.6.0 + + '@jimp/plugin-contain@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blit@0.16.13(@jimp/custom@0.16.13))(@jimp/plugin-resize@0.16.13(@jimp/custom@0.16.13))(@jimp/plugin-scale@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-resize@0.16.13(@jimp/custom@0.16.13)))': + dependencies: + '@babel/runtime': 7.22.11 + '@jimp/custom': 0.16.13 + '@jimp/plugin-blit': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-resize': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-scale': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-resize@0.16.13(@jimp/custom@0.16.13)) + '@jimp/utils': 0.16.13 + + '@jimp/plugin-cover@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-crop@0.16.13(@jimp/custom@0.16.13))(@jimp/plugin-resize@0.16.13(@jimp/custom@0.16.13))(@jimp/plugin-scale@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-resize@0.16.13(@jimp/custom@0.16.13)))': + dependencies: + '@babel/runtime': 7.22.11 + '@jimp/custom': 0.16.13 + '@jimp/plugin-crop': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-resize': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-scale': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-resize@0.16.13(@jimp/custom@0.16.13)) + '@jimp/utils': 0.16.13 + + '@jimp/plugin-crop@0.16.13(@jimp/custom@0.16.13)': + dependencies: + '@babel/runtime': 7.22.11 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + + '@jimp/plugin-displace@0.16.13(@jimp/custom@0.16.13)': + dependencies: + '@babel/runtime': 7.22.11 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + + '@jimp/plugin-dither@0.16.13(@jimp/custom@0.16.13)': + dependencies: + '@babel/runtime': 7.22.11 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + + '@jimp/plugin-fisheye@0.16.13(@jimp/custom@0.16.13)': + dependencies: + '@babel/runtime': 7.22.11 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + + '@jimp/plugin-flip@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-rotate@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blit@0.16.13(@jimp/custom@0.16.13))(@jimp/plugin-crop@0.16.13(@jimp/custom@0.16.13))(@jimp/plugin-resize@0.16.13(@jimp/custom@0.16.13)))': + dependencies: + '@babel/runtime': 7.22.11 + '@jimp/custom': 0.16.13 + '@jimp/plugin-rotate': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blit@0.16.13(@jimp/custom@0.16.13))(@jimp/plugin-crop@0.16.13(@jimp/custom@0.16.13))(@jimp/plugin-resize@0.16.13(@jimp/custom@0.16.13)) + '@jimp/utils': 0.16.13 + + '@jimp/plugin-gaussian@0.16.13(@jimp/custom@0.16.13)': + dependencies: + '@babel/runtime': 7.22.11 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + + '@jimp/plugin-invert@0.16.13(@jimp/custom@0.16.13)': + dependencies: + '@babel/runtime': 7.22.11 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + + '@jimp/plugin-mask@0.16.13(@jimp/custom@0.16.13)': + dependencies: + '@babel/runtime': 7.22.11 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + + '@jimp/plugin-normalize@0.16.13(@jimp/custom@0.16.13)': + dependencies: + '@babel/runtime': 7.22.11 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + + '@jimp/plugin-print@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blit@0.16.13(@jimp/custom@0.16.13))': + dependencies: + '@babel/runtime': 7.22.11 + '@jimp/custom': 0.16.13 + '@jimp/plugin-blit': 0.16.13(@jimp/custom@0.16.13) + '@jimp/utils': 0.16.13 + load-bmfont: 1.4.1 + + '@jimp/plugin-resize@0.16.13(@jimp/custom@0.16.13)': + dependencies: + '@babel/runtime': 7.22.11 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + + '@jimp/plugin-rotate@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blit@0.16.13(@jimp/custom@0.16.13))(@jimp/plugin-crop@0.16.13(@jimp/custom@0.16.13))(@jimp/plugin-resize@0.16.13(@jimp/custom@0.16.13))': + dependencies: + '@babel/runtime': 7.22.11 + '@jimp/custom': 0.16.13 + '@jimp/plugin-blit': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-crop': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-resize': 0.16.13(@jimp/custom@0.16.13) + '@jimp/utils': 0.16.13 + + '@jimp/plugin-scale@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-resize@0.16.13(@jimp/custom@0.16.13))': + dependencies: + '@babel/runtime': 7.22.11 + '@jimp/custom': 0.16.13 + '@jimp/plugin-resize': 0.16.13(@jimp/custom@0.16.13) + '@jimp/utils': 0.16.13 + + '@jimp/plugin-shadow@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blur@0.16.13(@jimp/custom@0.16.13))(@jimp/plugin-resize@0.16.13(@jimp/custom@0.16.13))': + dependencies: + '@babel/runtime': 7.22.11 + '@jimp/custom': 0.16.13 + '@jimp/plugin-blur': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-resize': 0.16.13(@jimp/custom@0.16.13) + '@jimp/utils': 0.16.13 + + '@jimp/plugin-threshold@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-color@0.16.13(@jimp/custom@0.16.13))(@jimp/plugin-resize@0.16.13(@jimp/custom@0.16.13))': + dependencies: + '@babel/runtime': 7.22.11 + '@jimp/custom': 0.16.13 + '@jimp/plugin-color': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-resize': 0.16.13(@jimp/custom@0.16.13) + '@jimp/utils': 0.16.13 + + '@jimp/plugins@0.16.13(@jimp/custom@0.16.13)': + dependencies: + '@babel/runtime': 7.22.11 + '@jimp/custom': 0.16.13 + '@jimp/plugin-blit': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-blur': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-circle': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-color': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-contain': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blit@0.16.13(@jimp/custom@0.16.13))(@jimp/plugin-resize@0.16.13(@jimp/custom@0.16.13))(@jimp/plugin-scale@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-resize@0.16.13(@jimp/custom@0.16.13))) + '@jimp/plugin-cover': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-crop@0.16.13(@jimp/custom@0.16.13))(@jimp/plugin-resize@0.16.13(@jimp/custom@0.16.13))(@jimp/plugin-scale@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-resize@0.16.13(@jimp/custom@0.16.13))) + '@jimp/plugin-crop': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-displace': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-dither': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-fisheye': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-flip': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-rotate@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blit@0.16.13(@jimp/custom@0.16.13))(@jimp/plugin-crop@0.16.13(@jimp/custom@0.16.13))(@jimp/plugin-resize@0.16.13(@jimp/custom@0.16.13))) + '@jimp/plugin-gaussian': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-invert': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-mask': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-normalize': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-print': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blit@0.16.13(@jimp/custom@0.16.13)) + '@jimp/plugin-resize': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-rotate': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blit@0.16.13(@jimp/custom@0.16.13))(@jimp/plugin-crop@0.16.13(@jimp/custom@0.16.13))(@jimp/plugin-resize@0.16.13(@jimp/custom@0.16.13)) + '@jimp/plugin-scale': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-resize@0.16.13(@jimp/custom@0.16.13)) + '@jimp/plugin-shadow': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blur@0.16.13(@jimp/custom@0.16.13))(@jimp/plugin-resize@0.16.13(@jimp/custom@0.16.13)) + '@jimp/plugin-threshold': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-color@0.16.13(@jimp/custom@0.16.13))(@jimp/plugin-resize@0.16.13(@jimp/custom@0.16.13)) + timm: 1.7.1 + + '@jimp/png@0.16.13(@jimp/custom@0.16.13)': + dependencies: + '@babel/runtime': 7.22.11 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + pngjs: 3.4.0 + + '@jimp/tiff@0.16.13(@jimp/custom@0.16.13)': + dependencies: + '@babel/runtime': 7.22.11 + '@jimp/custom': 0.16.13 + utif: 2.0.1 + + '@jimp/types@0.16.13(@jimp/custom@0.16.13)': + dependencies: + '@babel/runtime': 7.22.11 + '@jimp/bmp': 0.16.13(@jimp/custom@0.16.13) + '@jimp/custom': 0.16.13 + '@jimp/gif': 0.16.13(@jimp/custom@0.16.13) + '@jimp/jpeg': 0.16.13(@jimp/custom@0.16.13) + '@jimp/png': 0.16.13(@jimp/custom@0.16.13) + '@jimp/tiff': 0.16.13(@jimp/custom@0.16.13) + timm: 1.7.1 + + '@jimp/utils@0.16.13': + dependencies: + '@babel/runtime': 7.22.11 + regenerator-runtime: 0.13.11 + + '@jridgewell/gen-mapping@0.3.3': + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.19 + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.1': {} + + '@jridgewell/set-array@1.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/source-map@0.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.19 + + '@jridgewell/sourcemap-codec@1.4.15': {} + + '@jridgewell/trace-mapping@0.3.19': + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + + '@leichtgewicht/ip-codec@2.0.4': {} + + '@mantine/core@6.0.21(@emotion/react@11.11.4(@types/react@18.2.77)(react@18.2.0))(@mantine/hooks@6.0.21(react@18.2.0))(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@floating-ui/react': 0.19.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@mantine/hooks': 6.0.21(react@18.2.0) + '@mantine/styles': 6.0.21(@emotion/react@11.11.4(@types/react@18.2.77)(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@mantine/utils': 6.0.21(react@18.2.0) + '@radix-ui/react-scroll-area': 1.0.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.2.77)(react@18.2.0) + react-textarea-autosize: 8.3.4(@types/react@18.2.77)(react@18.2.0) + transitivePeerDependencies: + - '@emotion/react' + - '@types/react' + + '@mantine/hooks@6.0.21(react@18.2.0)': + dependencies: + react: 18.2.0 + + '@mantine/prism@6.0.21(@mantine/core@6.0.21(@emotion/react@11.11.4(@types/react@18.2.77)(react@18.2.0))(@mantine/hooks@6.0.21(react@18.2.0))(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mantine/hooks@6.0.21(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@mantine/core': 6.0.21(@emotion/react@11.11.4(@types/react@18.2.77)(react@18.2.0))(@mantine/hooks@6.0.21(react@18.2.0))(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@mantine/hooks': 6.0.21(react@18.2.0) + '@mantine/utils': 6.0.21(react@18.2.0) + prism-react-renderer: 1.3.5(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@mantine/styles@6.0.21(@emotion/react@11.11.4(@types/react@18.2.77)(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@emotion/react': 11.11.4(@types/react@18.2.77)(react@18.2.0) + clsx: 1.1.1 + csstype: 3.0.9 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@mantine/utils@6.0.21(react@18.2.0)': + dependencies: + react: 18.2.0 + + '@mdi/js@7.4.47': {} + + '@mdx-js/react@3.0.1(@types/react@18.2.77)(react@18.2.0)': + dependencies: + '@types/mdx': 2.0.7 + '@types/react': 18.2.77 + react: 18.2.0 + + '@microsoft/api-extractor-model@7.28.13(@types/node@18.19.31)': + dependencies: + '@microsoft/tsdoc': 0.14.2 + '@microsoft/tsdoc-config': 0.16.2 + '@rushstack/node-core-library': 4.0.2(@types/node@18.19.31) + transitivePeerDependencies: + - '@types/node' + + '@microsoft/api-extractor@7.43.0(@types/node@18.19.31)': + dependencies: + '@microsoft/api-extractor-model': 7.28.13(@types/node@18.19.31) + '@microsoft/tsdoc': 0.14.2 + '@microsoft/tsdoc-config': 0.16.2 + '@rushstack/node-core-library': 4.0.2(@types/node@18.19.31) + '@rushstack/rig-package': 0.5.2 + '@rushstack/terminal': 0.10.0(@types/node@18.19.31) + '@rushstack/ts-command-line': 4.19.1(@types/node@18.19.31) + lodash: 4.17.21 + minimatch: 3.0.8 + resolve: 1.22.8 + semver: 7.5.4 + source-map: 0.6.1 + typescript: 5.4.5 + transitivePeerDependencies: + - '@types/node' + + '@microsoft/tsdoc-config@0.16.2': + dependencies: + '@microsoft/tsdoc': 0.14.2 + ajv: 6.12.6 + jju: 1.4.0 + resolve: 1.19.0 + + '@microsoft/tsdoc@0.14.2': {} + + '@ndelangen/get-tarball@3.0.9': + dependencies: + gunzip-maybe: 1.4.2 + pump: 3.0.0 + tar-fs: 2.1.1 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + + '@nrwl/tao@18.2.4(@swc/core@1.3.101)': + dependencies: + nx: 18.2.4(@swc/core@1.3.101) + tslib: 2.6.2 + transitivePeerDependencies: + - '@swc-node/register' + - '@swc/core' + - debug + + '@nx/nx-darwin-arm64@18.2.4': + optional: true + + '@nx/nx-darwin-x64@18.2.4': + optional: true + + '@nx/nx-freebsd-x64@18.2.4': + optional: true + + '@nx/nx-linux-arm-gnueabihf@18.2.4': + optional: true + + '@nx/nx-linux-arm64-gnu@18.2.4': + optional: true + + '@nx/nx-linux-arm64-musl@18.2.4': + optional: true + + '@nx/nx-linux-x64-gnu@18.2.4': + optional: true + + '@nx/nx-linux-x64-musl@18.2.4': + optional: true + + '@nx/nx-win32-arm64-msvc@18.2.4': + optional: true + + '@nx/nx-win32-x64-msvc@18.2.4': + optional: true + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@pkgr/core@0.1.1': {} + + '@pmmmwh/react-refresh-webpack-plugin@0.5.11(react-refresh@0.14.0)(type-fest@3.13.1)(webpack-dev-server@4.15.2(webpack-cli@5.1.4)(webpack@5.91.0))(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4))': + dependencies: + ansi-html-community: 0.0.8 + common-path-prefix: 3.0.0 + core-js-pure: 3.34.0 + error-stack-parser: 2.1.4 + find-up: 5.0.0 + html-entities: 2.4.0 + loader-utils: 2.0.4 + react-refresh: 0.14.0 + schema-utils: 3.3.0 + source-map: 0.7.4 + webpack: 5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4) + optionalDependencies: + type-fest: 3.13.1 + webpack-dev-server: 4.15.2(webpack-cli@5.1.4)(webpack@5.91.0) + + '@polka/url@1.0.0-next.24': {} + + '@radix-ui/colors@3.0.0': {} + + '@radix-ui/number@1.0.0': + dependencies: + '@babel/runtime': 7.23.6 + + '@radix-ui/number@1.0.1': + dependencies: + '@babel/runtime': 7.23.6 + + '@radix-ui/primitive@1.0.0': + dependencies: + '@babel/runtime': 7.23.6 + + '@radix-ui/primitive@1.0.1': + dependencies: + '@babel/runtime': 7.23.6 + + '@radix-ui/react-accessible-icon@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 + + '@radix-ui/react-alert-dialog@1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.77)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 + + '@radix-ui/react-arrow@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 + + '@radix-ui/react-aspect-ratio@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 + + '@radix-ui/react-avatar@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.77)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 + + '@radix-ui/react-checkbox@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.77)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 + + '@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.77)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 + + '@radix-ui/react-compose-refs@1.0.0(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + react: 18.2.0 + + '@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.77)(react@18.2.0)': + dependencies: + '@babel/runtime': 7.22.11 + react: 18.2.0 + optionalDependencies: + '@types/react': 18.2.77 + + '@radix-ui/react-context-menu@2.1.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-menu': 2.0.6(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.77)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 + + '@radix-ui/react-context@1.0.0(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + react: 18.2.0 + + '@radix-ui/react-context@1.0.1(@types/react@18.2.77)(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + react: 18.2.0 + optionalDependencies: + '@types/react': 18.2.77 + + '@radix-ui/react-dialog@1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.77)(react@18.2.0) + aria-hidden: 1.2.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.2.77)(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 + + '@radix-ui/react-direction@1.0.0(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + react: 18.2.0 + + '@radix-ui/react-direction@1.0.1(@types/react@18.2.77)(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + react: 18.2.0 + optionalDependencies: + '@types/react': 18.2.77 + + '@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.77)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 + + '@radix-ui/react-dropdown-menu@2.0.6(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-menu': 2.0.6(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.77)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 + + '@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.77)(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + react: 18.2.0 + optionalDependencies: + '@types/react': 18.2.77 + + '@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.77)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 + + '@radix-ui/react-form@0.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-label': 2.0.2(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 + + '@radix-ui/react-hover-card@1.0.7(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.77)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 + + '@radix-ui/react-icons@1.3.0(react@18.2.0)': + dependencies: + react: 18.2.0 + + '@radix-ui/react-id@1.0.1(@types/react@18.2.77)(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.77)(react@18.2.0) + react: 18.2.0 + optionalDependencies: + '@types/react': 18.2.77 + + '@radix-ui/react-label@2.0.2(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 + + '@radix-ui/react-menu@2.0.6(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.77)(react@18.2.0) + aria-hidden: 1.2.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.2.77)(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 + + '@radix-ui/react-popover@1.0.7(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.77)(react@18.2.0) + aria-hidden: 1.2.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.2.77)(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 + + '@radix-ui/react-popper@1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@floating-ui/react-dom': 2.0.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/rect': 1.0.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 + + '@radix-ui/react-portal@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 + + '@radix-ui/react-presence@1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@radix-ui/react-presence@1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.77)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 + + '@radix-ui/react-primitive@1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/react-slot': 1.0.1(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.77)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 + + '@radix-ui/react-radio-group@1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.77)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 + + '@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.77)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 + + '@radix-ui/react-scroll-area@1.0.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/number': 1.0.0 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-context': 1.0.0(react@18.2.0) + '@radix-ui/react-direction': 1.0.0(react@18.2.0) + '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@radix-ui/react-scroll-area@1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/number': 1.0.1 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.77)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 + + '@radix-ui/react-select@2.0.0(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/number': 1.0.1 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + aria-hidden: 1.2.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.2.77)(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 + + '@radix-ui/react-separator@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 + + '@radix-ui/react-slider@1.1.2(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/number': 1.0.1 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.77)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 + + '@radix-ui/react-slot@1.0.1(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + react: 18.2.0 + + '@radix-ui/react-slot@1.0.2(@types/react@18.2.77)(react@18.2.0)': + dependencies: + '@babel/runtime': 7.22.11 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) + react: 18.2.0 + optionalDependencies: + '@types/react': 18.2.77 + + '@radix-ui/react-switch@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.77)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 + + '@radix-ui/react-tabs@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.77)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 + + '@radix-ui/react-tooltip@1.0.7(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.77)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 + + '@radix-ui/react-use-callback-ref@1.0.0(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + react: 18.2.0 + + '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.77)(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + react: 18.2.0 + optionalDependencies: + '@types/react': 18.2.77 + + '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.77)(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.77)(react@18.2.0) + react: 18.2.0 + optionalDependencies: + '@types/react': 18.2.77 + + '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.77)(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.77)(react@18.2.0) + react: 18.2.0 + optionalDependencies: + '@types/react': 18.2.77 + + '@radix-ui/react-use-layout-effect@1.0.0(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + react: 18.2.0 + + '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.77)(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + react: 18.2.0 + optionalDependencies: + '@types/react': 18.2.77 + + '@radix-ui/react-use-previous@1.0.1(@types/react@18.2.77)(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + react: 18.2.0 + optionalDependencies: + '@types/react': 18.2.77 + + '@radix-ui/react-use-rect@1.0.1(@types/react@18.2.77)(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.6 + '@radix-ui/rect': 1.0.1 + react: 18.2.0 + optionalDependencies: + '@types/react': 18.2.77 + + '@radix-ui/react-use-size@1.0.1(@types/react@18.2.77)(react@18.2.0)': dependencies: '@babel/runtime': 7.23.6 '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@types/react': 18.2.77 react: 18.2.0 - dev: false + optionalDependencies: + '@types/react': 18.2.77 - /@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.23.6 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 - /@radix-ui/rect@1.0.1: - resolution: {integrity: sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==} + '@radix-ui/rect@1.0.1': dependencies: '@babel/runtime': 7.23.6 - dev: false - /@radix-ui/themes@2.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-yaXQ8aWT2P1CQ0Xe6YCRD9HXsfMTvKkrIYkrc4aitCzhGTLS0sjtTqKmrxIWMVA+3DIbEuG9K/8aAMRJBhep8g==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + '@radix-ui/themes@2.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/colors': 3.0.0 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-accessible-icon': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-alert-dialog': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-aspect-ratio': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-avatar': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-checkbox': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-context-menu': 2.1.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-accessible-icon': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-alert-dialog': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-aspect-ratio': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-avatar': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-checkbox': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-context-menu': 2.1.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-direction': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-dropdown-menu': 2.0.6(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-form': 0.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-hover-card': 1.0.7(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-popover': 1.0.7(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-radio-group': 1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-scroll-area': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-select': 2.0.0(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-separator': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slider': 1.1.2(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dropdown-menu': 2.0.6(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-form': 0.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-hover-card': 1.0.7(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-popover': 1.0.7(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-radio-group': 1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-scroll-area': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-select': 2.0.0(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-separator': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-slider': 1.1.2(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-slot': 1.0.2(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-switch': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-tabs': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-tooltip': 1.0.7(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-switch': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-tabs': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-tooltip': 1.0.7(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.77)(react@18.2.0) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.77 - '@types/react-dom': 18.2.25 + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) classnames: 2.4.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false + optionalDependencies: + '@types/react': 18.2.77 + '@types/react-dom': 18.2.25 - /@redux-devtools/extension@3.3.0(redux@5.0.1): - resolution: {integrity: sha512-X34S/rC8S/M1BIrkYD1mJ5f8vlH0BDqxXrs96cvxSBo4FhMdbhU+GUGsmNYov1xjSyLMHgo8NYrUG8bNX7525g==} - peerDependencies: - redux: ^3.1.0 || ^4.0.0 || ^5.0.0 + '@redux-devtools/extension@3.3.0(redux@5.0.1)': dependencies: '@babel/runtime': 7.23.6 immutable: 4.3.4 redux: 5.0.1 - dev: true - /@remix-run/router@1.15.3: - resolution: {integrity: sha512-Oy8rmScVrVxWZVOpEF57ovlnhpZ8CCPlnIIumVcV9nFdiSIrus99+Lw78ekXyGvVDlIsFJbSfmSovJUhCWYV3w==} - engines: {node: '>=14.0.0'} - dev: false + '@remix-run/router@1.15.3': {} - /@rollup/plugin-babel@5.3.1(@babel/core@7.24.4)(rollup@2.79.1): - resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} - engines: {node: '>= 10.0.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@types/babel__core': ^7.1.9 - rollup: ^1.20.0||^2.0.0 - peerDependenciesMeta: - '@types/babel__core': - optional: true + '@rollup/plugin-babel@5.3.1(@babel/core@7.24.4)(rollup@2.79.1)': dependencies: '@babel/core': 7.24.4 '@babel/helper-module-imports': 7.22.15 '@rollup/pluginutils': 3.1.0(rollup@2.79.1) rollup: 2.79.1 - dev: true - /@rollup/plugin-node-resolve@11.2.1(rollup@2.79.1): - resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} - engines: {node: '>= 10.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0 + '@rollup/plugin-node-resolve@11.2.1(rollup@2.79.1)': dependencies: '@rollup/pluginutils': 3.1.0(rollup@2.79.1) '@types/resolve': 1.17.1 @@ -4820,236 +10415,106 @@ packages: is-module: 1.0.0 resolve: 1.22.8 rollup: 2.79.1 - dev: true - /@rollup/plugin-replace@2.4.2(rollup@2.79.1): - resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==} - peerDependencies: - rollup: ^1.20.0 || ^2.0.0 + '@rollup/plugin-replace@2.4.2(rollup@2.79.1)': dependencies: '@rollup/pluginutils': 3.1.0(rollup@2.79.1) magic-string: 0.25.9 rollup: 2.79.1 - dev: true - - /@rollup/plugin-strip@3.0.4: - resolution: {integrity: sha512-LDRV49ZaavxUo2YoKKMQjCxzCxugu1rCPQa0lDYBOWLj6vtzBMr8DcoJjsmg+s450RbKbe3qI9ZLaSO+O1oNbg==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.1.0 - estree-walker: 2.0.2 - magic-string: 0.30.5 - dev: true - /@rollup/plugin-typescript@11.1.6(tslib@2.6.2)(typescript@5.4.5): - resolution: {integrity: sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.14.0||^3.0.0||^4.0.0 - tslib: '*' - typescript: 5.4.5 - peerDependenciesMeta: - rollup: - optional: true - tslib: - optional: true + '@rollup/plugin-typescript@11.1.6(rollup@4.14.2)(tslib@2.6.2)(typescript@5.4.5)': dependencies: - '@rollup/pluginutils': 5.1.0 + '@rollup/pluginutils': 5.1.0(rollup@4.14.2) resolve: 1.22.8 - tslib: 2.6.2 typescript: 5.4.5 - dev: true + optionalDependencies: + rollup: 4.14.2 + tslib: 2.6.2 - /@rollup/pluginutils@3.1.0(rollup@2.79.1): - resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} - engines: {node: '>= 8.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0 + '@rollup/pluginutils@3.1.0(rollup@2.79.1)': dependencies: '@types/estree': 0.0.39 estree-walker: 1.0.1 picomatch: 2.3.1 rollup: 2.79.1 - dev: true - /@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/pluginutils@5.1.0(rollup@4.14.2)': dependencies: '@types/estree': 1.0.1 estree-walker: 2.0.2 picomatch: 2.3.1 - dev: true + optionalDependencies: + rollup: 4.14.2 - /@rollup/rollup-android-arm-eabi@4.14.2: - resolution: {integrity: sha512-ahxSgCkAEk+P/AVO0vYr7DxOD3CwAQrT0Go9BJyGQ9Ef0QxVOfjDZMiF4Y2s3mLyPrjonchIMH/tbWHucJMykQ==} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true + '@rollup/rollup-android-arm-eabi@4.14.2': optional: true - /@rollup/rollup-android-arm64@4.14.2: - resolution: {integrity: sha512-lAarIdxZWbFSHFSDao9+I/F5jDaKyCqAPMq5HqnfpBw8dKDiCaaqM0lq5h1pQTLeIqueeay4PieGR5jGZMWprw==} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true + '@rollup/rollup-android-arm64@4.14.2': optional: true - /@rollup/rollup-darwin-arm64@4.14.2: - resolution: {integrity: sha512-SWsr8zEUk82KSqquIMgZEg2GE5mCSfr9sE/thDROkX6pb3QQWPp8Vw8zOq2GyxZ2t0XoSIUlvHDkrf5Gmf7x3Q==} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true + '@rollup/rollup-darwin-arm64@4.14.2': optional: true - /@rollup/rollup-darwin-x64@4.14.2: - resolution: {integrity: sha512-o/HAIrQq0jIxJAhgtIvV5FWviYK4WB0WwV91SLUnsliw1lSAoLsmgEEgRWzDguAFeUEUUoIWXiJrPqU7vGiVkA==} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true + '@rollup/rollup-darwin-x64@4.14.2': optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.14.2: - resolution: {integrity: sha512-nwlJ65UY9eGq91cBi6VyDfArUJSKOYt5dJQBq8xyLhvS23qO+4Nr/RreibFHjP6t+5ap2ohZrUJcHv5zk5ju/g==} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true + '@rollup/rollup-linux-arm-gnueabihf@4.14.2': optional: true - /@rollup/rollup-linux-arm64-gnu@4.14.2: - resolution: {integrity: sha512-Pg5TxxO2IVlMj79+c/9G0LREC9SY3HM+pfAwX7zj5/cAuwrbfj2Wv9JbMHIdPCfQpYsI4g9mE+2Bw/3aeSs2rQ==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true + '@rollup/rollup-linux-arm64-gnu@4.14.2': optional: true - /@rollup/rollup-linux-arm64-musl@4.14.2: - resolution: {integrity: sha512-cAOTjGNm84gc6tS02D1EXtG7tDRsVSDTBVXOLbj31DkwfZwgTPYZ6aafSU7rD/4R2a34JOwlF9fQayuTSkoclA==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true + '@rollup/rollup-linux-arm64-musl@4.14.2': optional: true - /@rollup/rollup-linux-powerpc64le-gnu@4.14.2: - resolution: {integrity: sha512-4RyT6v1kXb7C0fn6zV33rvaX05P0zHoNzaXI/5oFHklfKm602j+N4mn2YvoezQViRLPnxP8M1NaY4s/5kXO5cw==} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true + '@rollup/rollup-linux-powerpc64le-gnu@4.14.2': optional: true - /@rollup/rollup-linux-riscv64-gnu@4.14.2: - resolution: {integrity: sha512-KNUH6jC/vRGAKSorySTyc/yRYlCwN/5pnMjXylfBniwtJx5O7X17KG/0efj8XM3TZU7raYRXJFFReOzNmL1n1w==} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true + '@rollup/rollup-linux-riscv64-gnu@4.14.2': optional: true - /@rollup/rollup-linux-s390x-gnu@4.14.2: - resolution: {integrity: sha512-xPV4y73IBEXToNPa3h5lbgXOi/v0NcvKxU0xejiFw6DtIYQqOTMhZ2DN18/HrrP0PmiL3rGtRG9gz1QE8vFKXQ==} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true + '@rollup/rollup-linux-s390x-gnu@4.14.2': optional: true - /@rollup/rollup-linux-x64-gnu@4.14.2: - resolution: {integrity: sha512-QBhtr07iFGmF9egrPOWyO5wciwgtzKkYPNLVCFZTmr4TWmY0oY2Dm/bmhHjKRwZoGiaKdNcKhFtUMBKvlchH+Q==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true + '@rollup/rollup-linux-x64-gnu@4.14.2': optional: true - /@rollup/rollup-linux-x64-musl@4.14.2: - resolution: {integrity: sha512-8zfsQRQGH23O6qazZSFY5jP5gt4cFvRuKTpuBsC1ZnSWxV8ZKQpPqOZIUtdfMOugCcBvFGRa1pDC/tkf19EgBw==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true + '@rollup/rollup-linux-x64-musl@4.14.2': optional: true - /@rollup/rollup-win32-arm64-msvc@4.14.2: - resolution: {integrity: sha512-H4s8UjgkPnlChl6JF5empNvFHp77Jx+Wfy2EtmYPe9G22XV+PMuCinZVHurNe8ggtwoaohxARJZbaH/3xjB/FA==} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true + '@rollup/rollup-win32-arm64-msvc@4.14.2': optional: true - /@rollup/rollup-win32-ia32-msvc@4.14.2: - resolution: {integrity: sha512-djqpAjm/i8erWYF0K6UY4kRO3X5+T4TypIqw60Q8MTqSBaQNpNXDhxdjpZ3ikgb+wn99svA7jxcXpiyg9MUsdw==} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true + '@rollup/rollup-win32-ia32-msvc@4.14.2': optional: true - /@rollup/rollup-win32-x64-msvc@4.14.2: - resolution: {integrity: sha512-teAqzLT0yTYZa8ZP7zhFKEx4cotS8Tkk5XiqNMJhD4CpaWB1BHARE4Qy+RzwnXvSAYv+Q3jAqCVBS+PS+Yee8Q==} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true + '@rollup/rollup-win32-x64-msvc@4.14.2': optional: true - /@rushstack/node-core-library@4.0.2(@types/node@18.19.31): - resolution: {integrity: sha512-hyES82QVpkfQMeBMteQUnrhASL/KHPhd7iJ8euduwNJG4mu2GSOKybf0rOEjOm1Wz7CwJEUm9y0yD7jg2C1bfg==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true + '@rushstack/node-core-library@4.0.2(@types/node@18.19.31)': dependencies: - '@types/node': 18.19.31 fs-extra: 7.0.1 import-lazy: 4.0.0 jju: 1.4.0 resolve: 1.22.8 semver: 7.5.4 z-schema: 5.0.5 - dev: true + optionalDependencies: + '@types/node': 18.19.31 - /@rushstack/rig-package@0.5.2: - resolution: {integrity: sha512-mUDecIJeH3yYGZs2a48k+pbhM6JYwWlgjs2Ca5f2n1G2/kgdgP9D/07oglEGf6mRyXEnazhEENeYTSNDRCwdqA==} + '@rushstack/rig-package@0.5.2': dependencies: resolve: 1.22.8 strip-json-comments: 3.1.1 - dev: true - /@rushstack/terminal@0.10.0(@types/node@18.19.31): - resolution: {integrity: sha512-UbELbXnUdc7EKwfH2sb8ChqNgapUOdqcCIdQP4NGxBpTZV2sQyeekuK3zmfQSa/MN+/7b4kBogl2wq0vpkpYGw==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true + '@rushstack/terminal@0.10.0(@types/node@18.19.31)': dependencies: '@rushstack/node-core-library': 4.0.2(@types/node@18.19.31) - '@types/node': 18.19.31 supports-color: 8.1.1 - dev: true + optionalDependencies: + '@types/node': 18.19.31 - /@rushstack/ts-command-line@4.19.1(@types/node@18.19.31): - resolution: {integrity: sha512-J7H768dgcpG60d7skZ5uSSwyCZs/S2HrWP1Ds8d1qYAyaaeJmpmmLr9BVw97RjFzmQPOYnoXcKA4GkqDCkduQg==} + '@rushstack/ts-command-line@4.19.1(@types/node@18.19.31)': dependencies: '@rushstack/terminal': 0.10.0(@types/node@18.19.31) '@types/argparse': 1.0.38 @@ -5057,39 +10522,27 @@ packages: string-argv: 0.3.2 transitivePeerDependencies: - '@types/node' - dev: true - /@sentry-internal/feedback@7.110.0: - resolution: {integrity: sha512-hrfWa3WkSOiBO5Srcr1j4kuGOlbsQic+REpLOofllVIs56DOo9+Aj9svxT+dcvZERv/nlFSV/E0BfGy9g08IEg==} - engines: {node: '>=12'} + '@sentry-internal/feedback@7.110.0': dependencies: '@sentry/core': 7.110.0 '@sentry/types': 7.110.0 '@sentry/utils': 7.110.0 - dev: false - /@sentry-internal/replay-canvas@7.110.0: - resolution: {integrity: sha512-SNa+AfyfX+vc6Xw0pIfDsa5Qnc9cpexU6M2D19gadtVhmep7qoFBuhBVZrSv6BtdCxvrb5EyYsHYGfjQdIDcvg==} - engines: {node: '>=12'} + '@sentry-internal/replay-canvas@7.110.0': dependencies: '@sentry/core': 7.110.0 '@sentry/replay': 7.110.0 '@sentry/types': 7.110.0 '@sentry/utils': 7.110.0 - dev: false - /@sentry-internal/tracing@7.110.0: - resolution: {integrity: sha512-IIHHa9e/mE7uOMJfNELI8adyoELxOy6u6TNCn5t6fphmq84w8FTc9adXkG/FY2AQpglkIvlILojfMROFB2aaAQ==} - engines: {node: '>=8'} + '@sentry-internal/tracing@7.110.0': dependencies: '@sentry/core': 7.110.0 '@sentry/types': 7.110.0 '@sentry/utils': 7.110.0 - dev: false - /@sentry/browser@7.110.0: - resolution: {integrity: sha512-gIxedVm6ZgkjQfgCDgLWJgAsolq6OxV8hQ2j1+RaDL2RngvelFo/vlX5f2sD6EbjVp77Cri8u5GkMJF+v4p84g==} - engines: {node: '>=8'} + '@sentry/browser@7.110.0': dependencies: '@sentry-internal/feedback': 7.110.0 '@sentry-internal/replay-canvas': 7.110.0 @@ -5098,21 +10551,13 @@ packages: '@sentry/replay': 7.110.0 '@sentry/types': 7.110.0 '@sentry/utils': 7.110.0 - dev: false - /@sentry/core@7.110.0: - resolution: {integrity: sha512-g4suCQO94mZsKVaAbyD1zLFC5YSuBQCIPHXx9fdgtfoPib7BWjWWePkllkrvsKAv4u8Oq05RfnKOhOMRHpOKqg==} - engines: {node: '>=8'} + '@sentry/core@7.110.0': dependencies: '@sentry/types': 7.110.0 '@sentry/utils': 7.110.0 - dev: false - /@sentry/react@7.110.0(react@18.2.0): - resolution: {integrity: sha512-ryfA2QR41PV+kP3g0lGvpDZ+OkuxSdj2nTjCqPeZKHsK45GYvDMlWkukdHbwrx8ulkbAcWEjPmuZZzHspyieNw==} - engines: {node: '>=8'} - peerDependencies: - react: 15.x || 16.x || 17.x || 18.x + '@sentry/react@7.110.0(react@18.2.0)': dependencies: '@sentry/browser': 7.110.0 '@sentry/core': 7.110.0 @@ -5120,45 +10565,27 @@ packages: '@sentry/utils': 7.110.0 hoist-non-react-statics: 3.3.2 react: 18.2.0 - dev: false - /@sentry/replay@7.110.0: - resolution: {integrity: sha512-EEpGPf3iBJjWejvoxKLVMnLtLNwPTUxHJV1oxUkbcSi3B/tG5hW7LArYDjAcvkfa4VmA8JLCwj2vYU5MQ8tj6g==} - engines: {node: '>=12'} + '@sentry/replay@7.110.0': dependencies: '@sentry-internal/tracing': 7.110.0 '@sentry/core': 7.110.0 '@sentry/types': 7.110.0 '@sentry/utils': 7.110.0 - dev: false - /@sentry/types@7.110.0: - resolution: {integrity: sha512-DqYBLyE8thC5P5MuPn+sj8tL60nCd/f5cerFFPcudn5nJ4Zs1eI6lKlwwyHYTEu5c4KFjCB0qql6kXfwAHmTyA==} - engines: {node: '>=8'} - dev: false + '@sentry/types@7.110.0': {} - /@sentry/utils@7.110.0: - resolution: {integrity: sha512-VBsdLLN+5tf73fhf/Cm7JIsUJ6y9DkJj8h4I6Mxx0rszrvOyH6S5px40K+V4jdLBzMEvVinC7q2Cbf1YM18BSw==} - engines: {node: '>=8'} + '@sentry/utils@7.110.0': dependencies: '@sentry/types': 7.110.0 - dev: false - /@sinclair/typebox@0.27.8: - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - dev: true + '@sinclair/typebox@0.27.8': {} - /@sindresorhus/merge-streams@2.3.0: - resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} - engines: {node: '>=18'} - dev: true + '@sindresorhus/merge-streams@2.3.0': {} - /@socket.io/component-emitter@3.1.0: - resolution: {integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==} - dev: false + '@socket.io/component-emitter@3.1.0': {} - /@storybook/addon-actions@8.0.8: - resolution: {integrity: sha512-F3qpN0n53d058EroW1A2IlzrsFNR5p2srLY4FmXB80nxAKV8oqoDI4jp15zYlf8ThcJoQl36plT8gx3r1BpANA==} + '@storybook/addon-actions@8.0.8': dependencies: '@storybook/core-events': 8.0.8 '@storybook/global': 5.0.0 @@ -5166,20 +10593,16 @@ packages: dequal: 2.0.3 polished: 4.2.2 uuid: 9.0.1 - dev: true - /@storybook/addon-backgrounds@8.0.8: - resolution: {integrity: sha512-lrAJjVxDeXSK116rDajb56TureZiT76ygraP22/IvU3IcWCEcRiKYwlay8WgCTbJHtFmdBpelLBapoT46+IR9Q==} + '@storybook/addon-backgrounds@8.0.8': dependencies: '@storybook/global': 5.0.0 memoizerific: 1.11.3 ts-dedent: 2.2.0 - dev: true - /@storybook/addon-controls@8.0.8(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-7xANN18CLYsVthuSXwxKezqpelEKJlT9xaYLtw5vvD00btW5g3vxq+Z/A31OkS2OuaH2bE0GfRCoG2OLR8yQQA==} + '@storybook/addon-controls@8.0.8(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@storybook/blocks': 8.0.8(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) + '@storybook/blocks': 8.0.8(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) lodash: 4.17.21 ts-dedent: 2.2.0 transitivePeerDependencies: @@ -5188,23 +10611,21 @@ packages: - react - react-dom - supports-color - dev: true - /@storybook/addon-docs@8.0.8: - resolution: {integrity: sha512-HNiY4ESH9WxGS6QpIpURzdSbyDxbRh7VIgbvUrePSKajlsL4RFN/gdnn5TnSL00tOP/w+Cy/fXcbljMUKy7Ivg==} + '@storybook/addon-docs@8.0.8': dependencies: '@babel/core': 7.24.4 '@mdx-js/react': 3.0.1(@types/react@18.2.77)(react@18.2.0) - '@storybook/blocks': 8.0.8(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) + '@storybook/blocks': 8.0.8(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/client-logger': 8.0.8 - '@storybook/components': 8.0.8(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) + '@storybook/components': 8.0.8(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/csf-plugin': 8.0.8 '@storybook/csf-tools': 8.0.8 '@storybook/global': 5.0.0 '@storybook/node-logger': 8.0.8 '@storybook/preview-api': 8.0.8 - '@storybook/react-dom-shim': 8.0.8(react-dom@18.2.0)(react@18.2.0) - '@storybook/theming': 8.0.8(react-dom@18.2.0)(react@18.2.0) + '@storybook/react-dom-shim': 8.0.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@storybook/theming': 8.0.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/types': 8.0.8 '@types/react': 18.2.77 fs-extra: 11.1.1 @@ -5216,14 +10637,12 @@ packages: transitivePeerDependencies: - encoding - supports-color - dev: true - /@storybook/addon-essentials@8.0.8(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-bc9KJk7SPM2I5CCJEAP8R5leP+74IYxhWPiTN8Y1YFmf3MA1lpDJbwy+RfuRZ2ZKnSKszCXCVzU/T10HKUHLZw==} + '@storybook/addon-essentials@8.0.8(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@storybook/addon-actions': 8.0.8 '@storybook/addon-backgrounds': 8.0.8 - '@storybook/addon-controls': 8.0.8(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) + '@storybook/addon-controls': 8.0.8(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/addon-docs': 8.0.8 '@storybook/addon-highlight': 8.0.8 '@storybook/addon-measure': 8.0.8 @@ -5231,7 +10650,7 @@ packages: '@storybook/addon-toolbars': 8.0.8 '@storybook/addon-viewport': 8.0.8 '@storybook/core-common': 8.0.8 - '@storybook/manager-api': 8.0.8(react-dom@18.2.0)(react@18.2.0) + '@storybook/manager-api': 8.0.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/node-logger': 8.0.8 '@storybook/preview-api': 8.0.8 ts-dedent: 2.2.0 @@ -5241,20 +10660,16 @@ packages: - react - react-dom - supports-color - dev: true - /@storybook/addon-highlight@8.0.8: - resolution: {integrity: sha512-KKD7xiNhxZQM4fdDidtcla6jSzgN1f9qe1AwFSHLXwIW22+4c97Vgf+AookN7cJvB77HxRUnvQH//zV1CJEDug==} + '@storybook/addon-highlight@8.0.8': dependencies: '@storybook/global': 5.0.0 - dev: true - /@storybook/addon-interactions@8.0.8: - resolution: {integrity: sha512-UOPKOe97uV4psH1O1YeE0oFuUQgD1Vkv95JjHjQG8KiPWvwdiezV7rrjPvw8RApnSKUopjFETs8F5D59i4eARw==} + '@storybook/addon-interactions@8.0.8(vitest@1.5.0(@types/node@18.19.31)(terser@5.26.0))': dependencies: '@storybook/global': 5.0.0 '@storybook/instrumenter': 8.0.8 - '@storybook/test': 8.0.8 + '@storybook/test': 8.0.8(vitest@1.5.0(@types/node@18.19.31)(terser@5.26.0)) '@storybook/types': 8.0.8 polished: 4.2.2 ts-dedent: 2.2.0 @@ -5264,68 +10679,44 @@ packages: - '@types/jest' - jest - vitest - dev: true - /@storybook/addon-links@8.0.8(react@18.2.0): - resolution: {integrity: sha512-iRI/W9I6fOom5zfZvsu53gfJtuhBSMmhgI/u5uZbAbfEoNL5D1PqpDXD4ygM8Vvlx90AZNZ2W5slEe7gCZOMyA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true + '@storybook/addon-links@8.0.8(react@18.2.0)': dependencies: '@storybook/csf': 0.1.2 '@storybook/global': 5.0.0 - react: 18.2.0 ts-dedent: 2.2.0 - dev: true + optionalDependencies: + react: 18.2.0 - /@storybook/addon-measure@8.0.8: - resolution: {integrity: sha512-akyoa+1F2ripV6ELF2UbxiSHv791LWSAVK7gsD/a5eJfKZMm5yoHjcY7Icdkc/ctE+pyjAQNhkXTixUngge09w==} + '@storybook/addon-measure@8.0.8': dependencies: '@storybook/global': 5.0.0 tiny-invariant: 1.3.3 - dev: true - /@storybook/addon-outline@8.0.8: - resolution: {integrity: sha512-8Gxs095ekpa5YZolLSs5cWbWK94GZTevEUX8GFeLGIz9sf1KO3kmEO3eC5ogzDoB0cloqvbmVAJvYJ3FWiUx8w==} + '@storybook/addon-outline@8.0.8': dependencies: '@storybook/global': 5.0.0 ts-dedent: 2.2.0 - dev: true - /@storybook/addon-toolbars@8.0.8: - resolution: {integrity: sha512-PZxlK+/Fwk2xcrpr5kkXYjCbBaEjAWcEHWq7mhQReMFaAs5AJE8dvmeQ7rmPDOHnlg4+YsARDFKz5FJtthRIgg==} - dev: true + '@storybook/addon-toolbars@8.0.8': {} - /@storybook/addon-viewport@8.0.8: - resolution: {integrity: sha512-nOuc6DquGvm24c/A0HFTgeEN/opd58ebs1KLaEEq1f6iYV0hT2Gpnk0Usg/seOiFtJnj3NyAM46HSkZz06T8Sw==} + '@storybook/addon-viewport@8.0.8': dependencies: memoizerific: 1.11.3 - dev: true - /@storybook/blocks@8.0.8(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-kwsjhvnmFEaIl51QHJt/83G7mZ5YbzFKnWCwy8WUpi0xvVcyoFQSGGgwR3XRrzGfUEPK8P2FDHeKw1bLzyIejA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true + '@storybook/blocks@8.0.8(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@storybook/channels': 8.0.8 '@storybook/client-logger': 8.0.8 - '@storybook/components': 8.0.8(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) + '@storybook/components': 8.0.8(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/core-events': 8.0.8 '@storybook/csf': 0.1.2 '@storybook/docs-tools': 8.0.8 '@storybook/global': 5.0.0 - '@storybook/icons': 1.2.9(react-dom@18.2.0)(react@18.2.0) - '@storybook/manager-api': 8.0.8(react-dom@18.2.0)(react@18.2.0) + '@storybook/icons': 1.2.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@storybook/manager-api': 8.0.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/preview-api': 8.0.8 - '@storybook/theming': 8.0.8(react-dom@18.2.0)(react@18.2.0) + '@storybook/theming': 8.0.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/types': 8.0.8 '@types/lodash': 4.14.197 color-convert: 2.0.1 @@ -5334,21 +10725,20 @@ packages: markdown-to-jsx: 7.3.2(react@18.2.0) memoizerific: 1.11.3 polished: 4.2.2 - react: 18.2.0 - react-colorful: 5.6.1(react-dom@18.2.0)(react@18.2.0) - react-dom: 18.2.0(react@18.2.0) + react-colorful: 5.6.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) telejson: 7.2.0 tocbot: 4.21.1 ts-dedent: 2.2.0 util-deprecate: 1.0.2 + optionalDependencies: + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - '@types/react' - encoding - supports-color - dev: true - /@storybook/builder-manager@8.0.8: - resolution: {integrity: sha512-0uihNTpTou0RFMM6PQLlfCxDxse9nIDEb83AmWE/OUnpKDDY9+WFupVWGaZc9HfH9h4Yqre2fiuK1b7KNYe7AQ==} + '@storybook/builder-manager@8.0.8': dependencies: '@fal-works/esbuild-plugin-global-externals': 2.1.2 '@storybook/core-common': 8.0.8 @@ -5367,22 +10757,8 @@ packages: transitivePeerDependencies: - encoding - supports-color - dev: true - /@storybook/builder-vite@8.0.8(typescript@5.4.5)(vite@5.2.8): - resolution: {integrity: sha512-ibWOxoHczCc6ttMQqiSXv29m/e44sKVoc1BJluApQcjCXl9g6QXyN45zV70odjCxMfNy7EQgUjCA0mgAgMHSIw==} - peerDependencies: - '@preact/preset-vite': '*' - typescript: 5.4.5 - 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/builder-vite@8.0.8(typescript@5.4.5)(vite@5.2.8(@types/node@18.19.31)(terser@5.26.0))': dependencies: '@storybook/channels': 8.0.8 '@storybook/client-logger': 8.0.8 @@ -5401,26 +10777,22 @@ packages: fs-extra: 11.1.1 magic-string: 0.30.5 ts-dedent: 2.2.0 + vite: 5.2.8(@types/node@18.19.31)(terser@5.26.0) + optionalDependencies: typescript: 5.4.5 - vite: 5.2.8(@types/node@18.19.31) transitivePeerDependencies: - encoding - supports-color - dev: true - /@storybook/channels@8.0.8: - resolution: {integrity: sha512-L3EGVkabv3fweXnykD/GlNUDO5HtwlIfSovC7BF4MmP7662j2/eqlZrJxDojGtbv11XHjWp/UJHUIfKpcHXYjQ==} + '@storybook/channels@8.0.8': dependencies: '@storybook/client-logger': 8.0.8 '@storybook/core-events': 8.0.8 '@storybook/global': 5.0.0 telejson: 7.2.0 tiny-invariant: 1.3.3 - dev: true - /@storybook/cli@8.0.8(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-RnSdgykh2i7es1rQ7CNGpDrKK/PN1f0xjwpkAHXCEB6T9KpHBmqDquzZp+N127a1HBHHXy018yi4wT8mSQyEoA==} - hasBin: true + '@storybook/cli@8.0.8(@babel/preset-env@7.23.6(@babel/core@7.24.4))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/core': 7.24.4 '@babel/types': 7.24.0 @@ -5428,7 +10800,7 @@ packages: '@storybook/codemod': 8.0.8 '@storybook/core-common': 8.0.8 '@storybook/core-events': 8.0.8 - '@storybook/core-server': 8.0.8(react-dom@18.2.0)(react@18.2.0) + '@storybook/core-server': 8.0.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/csf-tools': 8.0.8 '@storybook/node-logger': 8.0.8 '@storybook/telemetry': 8.0.8 @@ -5447,7 +10819,7 @@ packages: get-npm-tarball-url: 2.0.3 giget: 1.1.2 globby: 11.1.0 - jscodeshift: 0.15.1(@babel/preset-env@7.23.6) + jscodeshift: 0.15.1(@babel/preset-env@7.23.6(@babel/core@7.24.4)) leven: 3.1.0 ora: 5.4.1 prettier: 3.2.5 @@ -5466,16 +10838,12 @@ packages: - react-dom - supports-color - utf-8-validate - dev: true - /@storybook/client-logger@8.0.8: - resolution: {integrity: sha512-a4BKwl9NLFcuRgMyI7S4SsJeLFK0LCQxIy76V6YyrE1DigoXz4nA4eQxdjLf7JVvU0EZFmNSfbVL/bXzzWKNXA==} + '@storybook/client-logger@8.0.8': dependencies: '@storybook/global': 5.0.0 - dev: true - /@storybook/codemod@8.0.8: - resolution: {integrity: sha512-ufEBLciLmLlAh+L6lGgBObTiny6odXMKqiJOewQ9XfIN0wdWdyRUf5QdZIPOdfgHhWF2Q2HeswiulsoHm8Z/hA==} + '@storybook/codemod@8.0.8': dependencies: '@babel/core': 7.24.4 '@babel/preset-env': 7.23.6(@babel/core@7.24.4) @@ -5487,27 +10855,22 @@ packages: '@types/cross-spawn': 6.0.2 cross-spawn: 7.0.3 globby: 11.1.0 - jscodeshift: 0.15.1(@babel/preset-env@7.23.6) + jscodeshift: 0.15.1(@babel/preset-env@7.23.6(@babel/core@7.24.4)) lodash: 4.17.21 prettier: 3.2.5 recast: 0.23.6 tiny-invariant: 1.3.3 transitivePeerDependencies: - supports-color - dev: true - /@storybook/components@8.0.8(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-EpBExH4kHWQJSfA8QXJJ5AsLRUGi5X/zWY7ffiYW8rtnBmEnk3T9FpmnyJlY1A8sdd3b1wQ07JGBDHfL1mdELw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@storybook/components@8.0.8(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@radix-ui/react-slot': 1.0.2(@types/react@18.2.77)(react@18.2.0) '@storybook/client-logger': 8.0.8 '@storybook/csf': 0.1.2 '@storybook/global': 5.0.0 - '@storybook/icons': 1.2.9(react-dom@18.2.0)(react@18.2.0) - '@storybook/theming': 8.0.8(react-dom@18.2.0)(react@18.2.0) + '@storybook/icons': 1.2.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@storybook/theming': 8.0.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/types': 8.0.8 memoizerific: 1.11.3 react: 18.2.0 @@ -5515,10 +10878,8 @@ packages: util-deprecate: 1.0.2 transitivePeerDependencies: - '@types/react' - dev: true - /@storybook/core-common@8.0.8: - resolution: {integrity: sha512-CL15M2oeQW+Rb1l7ciunLDI2Re+ojL2lX1ZFAiDedcOU+JHsdq43zAuXoZVzp8icUi2AUSwEjZIxGCSingj+JQ==} + '@storybook/core-common@8.0.8': dependencies: '@storybook/core-events': 8.0.8 '@storybook/csf-tools': 8.0.8 @@ -5551,16 +10912,12 @@ packages: transitivePeerDependencies: - encoding - supports-color - dev: true - /@storybook/core-events@8.0.8: - resolution: {integrity: sha512-PtuvR7vS4glDEdCfKB4f1k3Vs1C3rTWP2DNbF+IjjPhNLMBznCdzTAPcz+NUIBvpjjGnhKwWikJ0yj931YjSVg==} + '@storybook/core-events@8.0.8': dependencies: ts-dedent: 2.2.0 - dev: true - /@storybook/core-server@8.0.8(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-tSEueEBttbSohzhZVN2bFNlFx3eoqQ7p57cjQLKXXwKygS2qKxISKnFy+Y0nj20APz68Wj51kx0rN0nGALeegw==} + '@storybook/core-server@8.0.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@aw-web-design/x-default-browser': 1.4.126 '@babel/core': 7.24.4 @@ -5574,7 +10931,7 @@ packages: '@storybook/docs-mdx': 3.0.0 '@storybook/global': 5.0.0 '@storybook/manager': 8.0.8 - '@storybook/manager-api': 8.0.8(react-dom@18.2.0)(react@18.2.0) + '@storybook/manager-api': 8.0.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/node-logger': 8.0.8 '@storybook/preview-api': 8.0.8 '@storybook/telemetry': 8.0.8 @@ -5612,19 +10969,15 @@ packages: - react-dom - supports-color - utf-8-validate - dev: true - /@storybook/csf-plugin@8.0.8: - resolution: {integrity: sha512-x9WspjZGcqXENj/Vn4Qmn0oTW93KN2V9wqpflWwCUJTByl2MugQsh5xRuDbs2yM7dD6zKcqRyPaTY+GFZBW+Vg==} + '@storybook/csf-plugin@8.0.8': dependencies: '@storybook/csf-tools': 8.0.8 unplugin: 1.4.0 transitivePeerDependencies: - supports-color - dev: true - /@storybook/csf-tools@8.0.8: - resolution: {integrity: sha512-Ji5fpoGym/MSyHJ6ALghVUUecwhEbN0On+jOZ2VPkrkATi9UDtryHQPdF60HKR63Iv53xRuWRzudB6zm43RTzw==} + '@storybook/csf-tools@8.0.8': dependencies: '@babel/generator': 7.23.6 '@babel/parser': 7.24.0 @@ -5637,20 +10990,14 @@ packages: ts-dedent: 2.2.0 transitivePeerDependencies: - supports-color - dev: true - /@storybook/csf@0.1.2: - resolution: {integrity: sha512-ePrvE/pS1vsKR9Xr+o+YwdqNgHUyXvg+1Xjx0h9LrVx7Zq4zNe06pd63F5EvzTbCbJsHj7GHr9tkiaqm7U8WRA==} + '@storybook/csf@0.1.2': dependencies: type-fest: 2.19.0 - dev: true - /@storybook/docs-mdx@3.0.0: - resolution: {integrity: sha512-NmiGXl2HU33zpwTv1XORe9XG9H+dRUC1Jl11u92L4xr062pZtrShLmD4VKIsOQujxhhOrbxpwhNOt+6TdhyIdQ==} - dev: true + '@storybook/docs-mdx@3.0.0': {} - /@storybook/docs-tools@8.0.8: - resolution: {integrity: sha512-p/MIrDshXMl/fiCRlfG9StkRYI1QlUyUSQQ/YDBFlBfWcJYARIt3TIvQyvs3Q/apnQNcDXIW663W57s7WHTO2w==} + '@storybook/docs-tools@8.0.8': dependencies: '@storybook/core-common': 8.0.8 '@storybook/preview-api': 8.0.8 @@ -5662,18 +11009,13 @@ packages: transitivePeerDependencies: - encoding - supports-color - dev: true - /@storybook/global@5.0.0: - resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} - dev: true - - /@storybook/html-vite@8.0.8(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.5)(vite@5.2.8): - resolution: {integrity: sha512-ZItduu3emcQ2R/3sf37YQAXplNGeSf1nUF19yQ6sGqVIBk11wi9RoGCTFB/ZyIoBMr0/+Uj6icTU03KS+e/DjA==} - engines: {node: '>=18.0.0'} + '@storybook/global@5.0.0': {} + + '@storybook/html-vite@8.0.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.5)(vite@5.2.8(@types/node@18.19.31)(terser@5.26.0))': dependencies: - '@storybook/builder-vite': 8.0.8(typescript@5.4.5)(vite@5.2.8) - '@storybook/core-server': 8.0.8(react-dom@18.2.0)(react@18.2.0) + '@storybook/builder-vite': 8.0.8(typescript@5.4.5)(vite@5.2.8(@types/node@18.19.31)(terser@5.26.0)) + '@storybook/core-server': 8.0.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/html': 8.0.8 '@storybook/node-logger': 8.0.8 magic-string: 0.30.5 @@ -5688,11 +11030,8 @@ packages: - utf-8-validate - vite - vite-plugin-glimmerx - dev: true - /@storybook/html@8.0.8: - resolution: {integrity: sha512-C7O9k2PJF9yizmAj/LRoCHrsPh2qtRCxtYw3ZEtZ1jPNNz+9ALPMWkKxKMcp2nSNm7GqFm+uJbsmTIVd8mI+sg==} - engines: {node: '>=18.0.0'} + '@storybook/html@8.0.8': dependencies: '@storybook/docs-tools': 8.0.8 '@storybook/global': 5.0.0 @@ -5702,21 +11041,13 @@ packages: transitivePeerDependencies: - encoding - supports-color - dev: true - /@storybook/icons@1.2.9(react-dom@18.2.0)(react@18.2.0): - 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/icons@1.2.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true - /@storybook/instrumenter@8.0.8: - resolution: {integrity: sha512-bCu9Tu48WOQ8ZNUed+FCSMr3Uw81b4yW/knD2goqx15nD33B7xXBNSI2GTHH5YaEHVyIFFggQcKHLkELXWlsoA==} + '@storybook/instrumenter@8.0.8': dependencies: '@storybook/channels': 8.0.8 '@storybook/client-logger': 8.0.8 @@ -5725,19 +11056,17 @@ packages: '@storybook/preview-api': 8.0.8 '@vitest/utils': 1.5.0 util: 0.12.5 - dev: true - /@storybook/manager-api@8.0.8(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-1HU4nfLRi0sD2uw229gb8EQyufNWrLvMNpg013kBsBXRd+Dj4dqF3v+KrYFNtteY7riC4mAJ6YcQ4tBUNYZDug==} + '@storybook/manager-api@8.0.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@storybook/channels': 8.0.8 '@storybook/client-logger': 8.0.8 '@storybook/core-events': 8.0.8 '@storybook/csf': 0.1.2 '@storybook/global': 5.0.0 - '@storybook/icons': 1.2.9(react-dom@18.2.0)(react@18.2.0) + '@storybook/icons': 1.2.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/router': 8.0.8 - '@storybook/theming': 8.0.8(react-dom@18.2.0)(react@18.2.0) + '@storybook/theming': 8.0.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/types': 8.0.8 dequal: 2.0.3 lodash: 4.17.21 @@ -5748,18 +11077,12 @@ packages: transitivePeerDependencies: - react - react-dom - dev: true - /@storybook/manager@8.0.8: - resolution: {integrity: sha512-pWYHSDmgT8p/XbQMKuDPdgB6KzjePI6dU5KQ5MERYfch1UiuGPVm1HHDlxxSfHW0IIXw9Qnwq4L0Awe4qhvJKQ==} - dev: true + '@storybook/manager@8.0.8': {} - /@storybook/node-logger@8.0.8: - resolution: {integrity: sha512-ymps3MMTxtMWq0eDiXk1iO7iv0Eg0PuUvOpPPohEJauGzU9THv81xx01aaHKSprFFJYD2LMQr1aFuUplItO12g==} - dev: true + '@storybook/node-logger@8.0.8': {} - /@storybook/preview-api@8.0.8: - resolution: {integrity: sha512-khgw2mNiBrSZS3KNGQPzjneL3Csh3BOq0yLAtJpT7CRSrI/YjlE7jjcTkKzoxW+UCgvNTnLvsowcuzu82e69fA==} + '@storybook/preview-api@8.0.8': dependencies: '@storybook/channels': 8.0.8 '@storybook/client-logger': 8.0.8 @@ -5775,32 +11098,21 @@ packages: tiny-invariant: 1.3.3 ts-dedent: 2.2.0 util-deprecate: 1.0.2 - dev: true - /@storybook/preview@8.0.8: - resolution: {integrity: sha512-J/ooKcvDV1s7ROH7lF/0vOyWDOgDB7bN6vS67J1WK0HLvMGaqUzU+q3ndakGzu0LU/jvUBqEFSZd1ALWyZINDQ==} - dev: true + '@storybook/preview@8.0.8': {} - /@storybook/react-dom-shim@8.0.8(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-vOMlAz2HH/xfgZmSO28fCEmp5/tPxINDEdBDVLdZeYG6R1j5jlMRyaNcXt4cPNDkyc///PkB/K767hg4goca/Q==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@storybook/react-dom-shim@8.0.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true - /@storybook/router@8.0.8: - resolution: {integrity: sha512-wdFdNsEKweigU9VkGZtpb7GhBJLWzbABcwOuEy2h0d5m7egB97hy9BxhANdqkC+PbAHrabxC99Ca3wTj50MoDg==} + '@storybook/router@8.0.8': dependencies: '@storybook/client-logger': 8.0.8 memoizerific: 1.11.3 qs: 6.11.2 - dev: true - /@storybook/telemetry@8.0.8: - resolution: {integrity: sha512-Uvj4nN01vQgjXZYKF/GKTFE85//Qm4ZTlJxTFWid+oYWc8NpAyJvlsJkj/dsEn4cLrgnJx2e4xvnx0Umr2ck+A==} + '@storybook/telemetry@8.0.8': dependencies: '@storybook/client-logger': 8.0.8 '@storybook/core-common': 8.0.8 @@ -5813,17 +11125,15 @@ packages: transitivePeerDependencies: - encoding - supports-color - dev: true - /@storybook/test@8.0.8: - resolution: {integrity: sha512-YXgwgg1e8ggDg2BlgeExwdN3MjeExnDvybQIUugADgun87tRIujJFCdjh0PAxg0Qvln6+lU3w+3Y2aryvX42RA==} + '@storybook/test@8.0.8(vitest@1.5.0(@types/node@18.19.31)(terser@5.26.0))': dependencies: '@storybook/client-logger': 8.0.8 '@storybook/core-events': 8.0.8 '@storybook/instrumenter': 8.0.8 '@storybook/preview-api': 8.0.8 '@testing-library/dom': 9.3.4 - '@testing-library/jest-dom': 6.4.2 + '@testing-library/jest-dom': 6.4.2(vitest@1.5.0(@types/node@18.19.31)(terser@5.26.0)) '@testing-library/user-event': 14.5.2(@testing-library/dom@9.3.4) '@vitest/expect': 1.3.1 '@vitest/spy': 1.4.0 @@ -5835,151 +11145,65 @@ packages: - '@types/jest' - jest - vitest - dev: true - /@storybook/theming@8.0.8(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-43hkNz7yo8Bl97AO2WbxIGprUqMhUZyK9g8383bd30gSxy9nfND/bdSdcgmA8IokDn8qp37Q4QmxtUZdhjMzZQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true + '@storybook/theming@8.0.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) '@storybook/client-logger': 8.0.8 '@storybook/global': 5.0.0 memoizerific: 1.11.3 + optionalDependencies: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true - /@storybook/types@8.0.8: - resolution: {integrity: sha512-NGsgCsXnWlaZmHenHDgHGs21zhweZACkqTNsEQ7hvsiF08QeiKAdgJLQg3YeGK73h9mFDRP9djprUtJYab6vnQ==} + '@storybook/types@8.0.8': dependencies: '@storybook/channels': 8.0.8 '@types/express': 4.17.17 file-system-cache: 2.3.0 - dev: true - /@surma/rollup-plugin-off-main-thread@2.2.3: - resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} + '@surma/rollup-plugin-off-main-thread@2.2.3': dependencies: ejs: 3.1.9 json5: 2.2.3 magic-string: 0.25.9 string.prototype.matchall: 4.0.10 - dev: true - /@swc-jotai/debug-label@0.1.0: - resolution: {integrity: sha512-Fe0ag02uBaVBIS/ySKkLSyiMhTUKyw3F0pTAcH+Yc29wZgIt//yFuPv1+p0QrlV6n411BJ0sxq2ei89tvwpFXQ==} - dev: true + '@swc-jotai/debug-label@0.1.0': {} - /@swc-jotai/react-refresh@0.1.0: - resolution: {integrity: sha512-CWV4W06GdfQo3cW3CoUM2fp7avH4Z/suR7SvECNJnQbr6Sa9U3p7o10nXjNv2zT6z09bbNUPM55HBw5Nwd24Iw==} - dev: true + '@swc-jotai/react-refresh@0.1.0': {} - /@swc/core-darwin-arm64@1.3.101: - resolution: {integrity: sha512-mNFK+uHNPRXSnfTOG34zJOeMl2waM4hF4a2NY7dkMXrPqw9CoJn4MwTXJcyMiSz1/BnNjjTCHF3Yhj0jPxmkzQ==} - engines: {node: '>=10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true + '@swc/core-darwin-arm64@1.3.101': optional: true - /@swc/core-darwin-x64@1.3.101: - resolution: {integrity: sha512-B085j8XOx73Fg15KsHvzYWG262bRweGr3JooO1aW5ec5pYbz5Ew9VS5JKYS03w2UBSxf2maWdbPz2UFAxg0whw==} - engines: {node: '>=10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true + '@swc/core-darwin-x64@1.3.101': optional: true - /@swc/core-linux-arm-gnueabihf@1.3.101: - resolution: {integrity: sha512-9xLKRb6zSzRGPqdz52Hy5GuB1lSjmLqa0lST6MTFads3apmx4Vgs8Y5NuGhx/h2I8QM4jXdLbpqQlifpzTlSSw==} - engines: {node: '>=10'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true + '@swc/core-linux-arm-gnueabihf@1.3.101': optional: true - /@swc/core-linux-arm64-gnu@1.3.101: - resolution: {integrity: sha512-oE+r1lo7g/vs96Weh2R5l971dt+ZLuhaUX+n3BfDdPxNHfObXgKMjO7E+QS5RbGjv/AwiPCxQmbdCp/xN5ICJA==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true + '@swc/core-linux-arm64-gnu@1.3.101': optional: true - /@swc/core-linux-arm64-musl@1.3.101: - resolution: {integrity: sha512-OGjYG3H4BMOTnJWJyBIovCez6KiHF30zMIu4+lGJTCrxRI2fAjGLml3PEXj8tC3FMcud7U2WUn6TdG0/te2k6g==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true + '@swc/core-linux-arm64-musl@1.3.101': optional: true - /@swc/core-linux-x64-gnu@1.3.101: - resolution: {integrity: sha512-/kBMcoF12PRO/lwa8Z7w4YyiKDcXQEiLvM+S3G9EvkoKYGgkkz4Q6PSNhF5rwg/E3+Hq5/9D2R+6nrkF287ihg==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true + '@swc/core-linux-x64-gnu@1.3.101': optional: true - /@swc/core-linux-x64-musl@1.3.101: - resolution: {integrity: sha512-kDN8lm4Eew0u1p+h1l3JzoeGgZPQ05qDE0czngnjmfpsH2sOZxVj1hdiCwS5lArpy7ktaLu5JdRnx70MkUzhXw==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true + '@swc/core-linux-x64-musl@1.3.101': optional: true - /@swc/core-win32-arm64-msvc@1.3.101: - resolution: {integrity: sha512-9Wn8TTLWwJKw63K/S+jjrZb9yoJfJwCE2RV5vPCCWmlMf3U1AXj5XuWOLUX+Rp2sGKau7wZKsvywhheWm+qndQ==} - engines: {node: '>=10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true + '@swc/core-win32-arm64-msvc@1.3.101': optional: true - /@swc/core-win32-ia32-msvc@1.3.101: - resolution: {integrity: sha512-onO5KvICRVlu2xmr4//V2je9O2XgS1SGKpbX206KmmjcJhXN5EYLSxW9qgg+kgV5mip+sKTHTAu7IkzkAtElYA==} - engines: {node: '>=10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true + '@swc/core-win32-ia32-msvc@1.3.101': optional: true - /@swc/core-win32-x64-msvc@1.3.101: - resolution: {integrity: sha512-T3GeJtNQV00YmiVw/88/nxJ/H43CJvFnpvBHCVn17xbahiVUOPOduh3rc9LgAkKiNt/aV8vU3OJR+6PhfMR7UQ==} - engines: {node: '>=10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true + '@swc/core-win32-x64-msvc@1.3.101': optional: true - /@swc/core@1.3.101: - resolution: {integrity: sha512-w5aQ9qYsd/IYmXADAnkXPGDMTqkQalIi+kfFf/MHRKTpaOL7DHjMXwPp/n8hJ0qNjRvchzmPtOqtPBiER50d8A==} - engines: {node: '>=10'} - requiresBuild: true - peerDependencies: - '@swc/helpers': ^0.5.0 - peerDependenciesMeta: - '@swc/helpers': - optional: true + '@swc/core@1.3.101': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.5 @@ -5994,19 +11218,12 @@ packages: '@swc/core-win32-arm64-msvc': 1.3.101 '@swc/core-win32-ia32-msvc': 1.3.101 '@swc/core-win32-x64-msvc': 1.3.101 - dev: true - /@swc/counter@0.1.3: - resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - dev: true + '@swc/counter@0.1.3': {} - /@swc/types@0.1.5: - resolution: {integrity: sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==} - dev: true + '@swc/types@0.1.5': {} - /@testing-library/dom@9.3.4: - resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} - engines: {node: '>=14'} + '@testing-library/dom@9.3.4': dependencies: '@babel/code-frame': 7.23.5 '@babel/runtime': 7.23.6 @@ -6016,28 +11233,8 @@ packages: dom-accessibility-api: 0.5.16 lz-string: 1.5.0 pretty-format: 27.5.1 - dev: true - /@testing-library/jest-dom@6.4.2: - resolution: {integrity: sha512-CzqH0AFymEMG48CpzXFriYYkOjk6ZGPCLMhW9e9jg3KMCn5OfJecF8GtGW7yGfR/IgCe3SX8BSwjdzI6BBbZLw==} - 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/jest-dom@6.4.2(vitest@1.5.0(@types/node@18.19.31)(terser@5.26.0))': dependencies: '@adobe/css-tools': 4.3.3 '@babel/runtime': 7.23.6 @@ -6047,231 +11244,138 @@ packages: dom-accessibility-api: 0.6.3 lodash: 4.17.21 redent: 3.0.0 - dev: true + optionalDependencies: + vitest: 1.5.0(@types/node@18.19.31)(terser@5.26.0) - /@testing-library/user-event@14.5.2(@testing-library/dom@9.3.4): - resolution: {integrity: sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==} - engines: {node: '>=12', npm: '>=6'} - peerDependencies: - '@testing-library/dom': '>=7.21.4' + '@testing-library/user-event@14.5.2(@testing-library/dom@9.3.4)': dependencies: '@testing-library/dom': 9.3.4 - dev: true - - /@tokenizer/token@0.3.0: - resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} - dev: true - /@tweenjs/tween.js@18.6.4: - resolution: {integrity: sha512-lB9lMjuqjtuJrx7/kOkqQBtllspPIN+96OvTCeJ2j5FEzinoAXTdAMFnDAQT1KVPRlnYfBrqxtqP66vDM40xxQ==} - dev: true + '@tokenizer/token@0.3.0': {} - /@types/argparse@1.0.38: - resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} - dev: true + '@types/argparse@1.0.38': {} - /@types/aria-query@5.0.1: - resolution: {integrity: sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==} - dev: true + '@types/aria-query@5.0.1': {} - /@types/base16@1.0.5: - resolution: {integrity: sha512-OzOWrTluG9cwqidEzC/Q6FAmIPcnZfm8BFRlIx0+UIUqnuAmi5OS88O0RpT3Yz6qdmqObvUhasrbNsCofE4W9A==} - dev: true + '@types/base16@1.0.5': {} - /@types/body-parser@1.19.2: - resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} + '@types/body-parser@1.19.2': dependencies: '@types/connect': 3.4.35 '@types/node': 18.19.31 - dev: true - /@types/bonjour@3.5.13: - resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} + '@types/bonjour@3.5.13': dependencies: '@types/node': 18.19.31 - dev: true - /@types/color-convert@2.0.0: - resolution: {integrity: sha512-m7GG7IKKGuJUXvkZ1qqG3ChccdIM/qBBo913z+Xft0nKCX4hAU/IxKwZBU4cpRZ7GS5kV4vOblUkILtSShCPXQ==} + '@types/color-convert@2.0.0': dependencies: '@types/color-name': 1.1.1 - dev: true - /@types/color-name@1.1.1: - resolution: {integrity: sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==} - dev: true + '@types/color-name@1.1.1': {} - /@types/color@3.0.6: - resolution: {integrity: sha512-NMiNcZFRUAiUUCCf7zkAelY8eV3aKqfbzyFQlXpPIEeoNDbsEHGpb854V3gzTsGKYj830I5zPuOwU/TP5/cW6A==} + '@types/color@3.0.6': dependencies: '@types/color-convert': 2.0.0 - dev: true - /@types/connect-history-api-fallback@1.5.4: - resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} + '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 4.17.36 '@types/node': 18.19.31 - dev: true - /@types/connect@3.4.35: - resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} + '@types/connect@3.4.35': dependencies: '@types/node': 18.19.31 - dev: true - /@types/cross-spawn@6.0.2: - resolution: {integrity: sha512-KuwNhp3eza+Rhu8IFI5HUXRP0LIhqH5cAjubUvGXXthh4YYBuP2ntwEX+Cz8GJoZUHlKo247wPWOfA9LYEq4cw==} + '@types/cross-spawn@6.0.2': dependencies: '@types/node': 18.19.31 - dev: true - /@types/d3-array@3.2.1: - resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==} - dev: true + '@types/d3-array@3.2.1': {} - /@types/d3-axis@3.0.6: - resolution: {integrity: sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==} + '@types/d3-axis@3.0.6': dependencies: '@types/d3-selection': 3.0.10 - dev: true - /@types/d3-brush@3.0.6: - resolution: {integrity: sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==} + '@types/d3-brush@3.0.6': dependencies: '@types/d3-selection': 3.0.10 - dev: true - /@types/d3-chord@3.0.6: - resolution: {integrity: sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==} - dev: true + '@types/d3-chord@3.0.6': {} - /@types/d3-color@3.1.3: - resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==} - dev: true + '@types/d3-color@3.1.3': {} - /@types/d3-contour@3.0.6: - resolution: {integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==} + '@types/d3-contour@3.0.6': dependencies: '@types/d3-array': 3.2.1 '@types/geojson': 7946.0.13 - dev: true - /@types/d3-delaunay@6.0.4: - resolution: {integrity: sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==} - dev: true + '@types/d3-delaunay@6.0.4': {} - /@types/d3-dispatch@3.0.6: - resolution: {integrity: sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==} - dev: true + '@types/d3-dispatch@3.0.6': {} - /@types/d3-drag@3.0.7: - resolution: {integrity: sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==} + '@types/d3-drag@3.0.7': dependencies: '@types/d3-selection': 3.0.10 - dev: true - /@types/d3-dsv@3.0.7: - resolution: {integrity: sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==} - dev: true + '@types/d3-dsv@3.0.7': {} - /@types/d3-ease@3.0.2: - resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==} - dev: true + '@types/d3-ease@3.0.2': {} - /@types/d3-fetch@3.0.7: - resolution: {integrity: sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==} + '@types/d3-fetch@3.0.7': dependencies: '@types/d3-dsv': 3.0.7 - dev: true - /@types/d3-force@3.0.9: - resolution: {integrity: sha512-IKtvyFdb4Q0LWna6ymywQsEYjK/94SGhPrMfEr1TIc5OBeziTi+1jcCvttts8e0UWZIxpasjnQk9MNk/3iS+kA==} - dev: true + '@types/d3-force@3.0.9': {} - /@types/d3-format@3.0.4: - resolution: {integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==} - dev: true + '@types/d3-format@3.0.4': {} - /@types/d3-geo@3.1.0: - resolution: {integrity: sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==} + '@types/d3-geo@3.1.0': dependencies: '@types/geojson': 7946.0.13 - dev: true - /@types/d3-hierarchy@3.1.6: - resolution: {integrity: sha512-qlmD/8aMk5xGorUvTUWHCiumvgaUXYldYjNVOWtYoTYY/L+WwIEAmJxUmTgr9LoGNG0PPAOmqMDJVDPc7DOpPw==} - dev: true + '@types/d3-hierarchy@3.1.6': {} - /@types/d3-interpolate@3.0.4: - resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==} + '@types/d3-interpolate@3.0.4': dependencies: '@types/d3-color': 3.1.3 - dev: true - /@types/d3-path@3.0.2: - resolution: {integrity: sha512-WAIEVlOCdd/NKRYTsqCpOMHQHemKBEINf8YXMYOtXH0GA7SY0dqMB78P3Uhgfy+4X+/Mlw2wDtlETkN6kQUCMA==} - dev: true + '@types/d3-path@3.0.2': {} - /@types/d3-polygon@3.0.2: - resolution: {integrity: sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==} - dev: true + '@types/d3-polygon@3.0.2': {} - /@types/d3-quadtree@3.0.6: - resolution: {integrity: sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==} - dev: true + '@types/d3-quadtree@3.0.6': {} - /@types/d3-random@3.0.3: - resolution: {integrity: sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==} - dev: true + '@types/d3-random@3.0.3': {} - /@types/d3-scale-chromatic@3.0.3: - resolution: {integrity: sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw==} - dev: true + '@types/d3-scale-chromatic@3.0.3': {} - /@types/d3-scale@4.0.8: - resolution: {integrity: sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==} + '@types/d3-scale@4.0.8': dependencies: '@types/d3-time': 3.0.3 - dev: true - /@types/d3-selection@3.0.10: - resolution: {integrity: sha512-cuHoUgS/V3hLdjJOLTT691+G2QoqAjCVLmr4kJXR4ha56w1Zdu8UUQ5TxLRqudgNjwXeQxKMq4j+lyf9sWuslg==} - dev: true + '@types/d3-selection@3.0.10': {} - /@types/d3-shape@3.1.6: - resolution: {integrity: sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA==} + '@types/d3-shape@3.1.6': dependencies: '@types/d3-path': 3.0.2 - dev: true - /@types/d3-time-format@4.0.3: - resolution: {integrity: sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==} - dev: true + '@types/d3-time-format@4.0.3': {} - /@types/d3-time@3.0.3: - resolution: {integrity: sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw==} - dev: true + '@types/d3-time@3.0.3': {} - /@types/d3-timer@3.0.2: - resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==} - dev: true + '@types/d3-timer@3.0.2': {} - /@types/d3-transition@3.0.8: - resolution: {integrity: sha512-ew63aJfQ/ms7QQ4X7pk5NxQ9fZH/z+i24ZfJ6tJSfqxJMrYLiK01EAs2/Rtw/JreGUsS3pLPNV644qXFGnoZNQ==} + '@types/d3-transition@3.0.8': dependencies: '@types/d3-selection': 3.0.10 - dev: true - /@types/d3-zoom@3.0.8: - resolution: {integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==} + '@types/d3-zoom@3.0.8': dependencies: '@types/d3-interpolate': 3.0.4 '@types/d3-selection': 3.0.10 - dev: true - /@types/d3@7.4.3: - resolution: {integrity: sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==} + '@types/d3@7.4.3': dependencies: '@types/d3-array': 3.2.1 '@types/d3-axis': 3.0.6 @@ -6303,294 +11407,173 @@ packages: '@types/d3-timer': 3.0.2 '@types/d3-transition': 3.0.8 '@types/d3-zoom': 3.0.8 - dev: true - /@types/detect-port@1.3.3: - resolution: {integrity: sha512-bV/jQlAJ/nPY3XqSatkGpu+nGzou+uSwrH1cROhn+jBFg47yaNH+blW4C7p9KhopC7QxCv/6M86s37k8dMk0Yg==} - dev: true + '@types/detect-port@1.3.3': {} - /@types/doctrine@0.0.3: - resolution: {integrity: sha512-w5jZ0ee+HaPOaX25X2/2oGR/7rgAQSYII7X7pp0m9KgBfMP7uKfMfTvcpl5Dj+eDBbpxKGiqE+flqDr6XTd2RA==} - dev: true + '@types/doctrine@0.0.3': {} - /@types/ejs@3.1.2: - resolution: {integrity: sha512-ZmiaE3wglXVWBM9fyVC17aGPkLo/UgaOjEiI2FXQfyczrCefORPxIe+2dVmnmk3zkVIbizjrlQzmPGhSYGXG5g==} - dev: true + '@types/ejs@3.1.2': {} - /@types/emscripten@1.39.7: - resolution: {integrity: sha512-tLqYV94vuqDrXh515F/FOGtBcRMTPGvVV1LzLbtYDcQmmhtpf/gLYf+hikBbQk8MzOHNz37wpFfJbYAuSn8HqA==} - dev: true + '@types/emscripten@1.39.7': {} - /@types/eslint-scope@3.7.7: - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + '@types/eslint-scope@3.7.7': dependencies: '@types/eslint': 8.56.0 '@types/estree': 1.0.5 - dev: true - /@types/eslint@8.56.0: - resolution: {integrity: sha512-FlsN0p4FhuYRjIxpbdXovvHQhtlG05O1GG/RNWvdAxTboR438IOTwmrY/vLA+Xfgg06BTkP045M3vpFwTMv1dg==} + '@types/eslint@8.56.0': dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 - dev: true - /@types/estree@0.0.39: - resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} - dev: true + '@types/estree@0.0.39': {} - /@types/estree@1.0.1: - resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} - dev: true + '@types/estree@1.0.1': {} - /@types/estree@1.0.5: - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - dev: true + '@types/estree@1.0.5': {} - /@types/express-serve-static-core@4.17.36: - resolution: {integrity: sha512-zbivROJ0ZqLAtMzgzIUC4oNqDG9iF0lSsAqpOD9kbs5xcIM3dTiyuHvBc7R8MtWBp3AAWGaovJa+wzWPjLYW7Q==} + '@types/express-serve-static-core@4.17.36': dependencies: '@types/node': 18.19.31 '@types/qs': 6.9.8 '@types/range-parser': 1.2.4 '@types/send': 0.17.1 - dev: true - /@types/express@4.17.17: - resolution: {integrity: sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==} + '@types/express@4.17.17': dependencies: '@types/body-parser': 1.19.2 '@types/express-serve-static-core': 4.17.36 '@types/qs': 6.9.8 '@types/serve-static': 1.15.2 - dev: true - /@types/express@4.17.21: - resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + '@types/express@4.17.21': dependencies: '@types/body-parser': 1.19.2 '@types/express-serve-static-core': 4.17.36 '@types/qs': 6.9.8 '@types/serve-static': 1.15.7 - dev: true - /@types/find-cache-dir@3.2.1: - resolution: {integrity: sha512-frsJrz2t/CeGifcu/6uRo4b+SzAwT4NYCVPu1GN8IB9XTzrpPkGuV0tmh9mN+/L0PklAlsC3u5Fxt0ju00LXIw==} - dev: true + '@types/find-cache-dir@3.2.1': {} - /@types/geojson@7946.0.13: - resolution: {integrity: sha512-bmrNrgKMOhM3WsafmbGmC+6dsF2Z308vLFsQ3a/bT8X8Sv5clVYpPars/UPq+sAaJP+5OoLAYgwbkS5QEJdLUQ==} - dev: true + '@types/geojson@7946.0.13': {} - /@types/hast@3.0.4: - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + '@types/hast@3.0.4': dependencies: '@types/unist': 3.0.2 - dev: true - /@types/highlight-words-core@1.2.3: - resolution: {integrity: sha512-PWNU/NR0CaYEsK38mcCTyDzeS2TlEGK9kRhRMz1i86jVAe836ZlA3gl6QYpu+CG6IpfNKTgWpEnJuRededvC0g==} - dev: true + '@types/highlight-words-core@1.2.3': {} - /@types/html-minifier-terser@6.1.0: - resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} - dev: true + '@types/html-minifier-terser@6.1.0': {} - /@types/http-errors@2.0.1: - resolution: {integrity: sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==} - dev: true + '@types/http-errors@2.0.1': {} - /@types/http-proxy@1.17.14: - resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} + '@types/http-proxy@1.17.14': dependencies: '@types/node': 18.19.31 - dev: true - /@types/json-schema@7.0.12: - resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} - dev: true + '@types/json-schema@7.0.12': {} - /@types/json-schema@7.0.15: - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - dev: true + '@types/json-schema@7.0.15': {} - /@types/json5@0.0.29: - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - dev: true + '@types/json5@0.0.29': {} - /@types/lodash-es@4.17.12: - resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} + '@types/lodash-es@4.17.12': dependencies: '@types/lodash': 4.14.197 - dev: true - /@types/lodash@4.14.197: - resolution: {integrity: sha512-BMVOiWs0uNxHVlHBgzTIqJYmj+PgCo4euloGF+5m4okL3rEYzM2EEv78mw8zWSMM57dM7kVIgJ2QDvwHSoCI5g==} - dev: true + '@types/lodash@4.14.197': {} - /@types/luxon@3.4.2: - resolution: {integrity: sha512-TifLZlFudklWlMBfhubvgqTXRzLDI5pCbGa4P8a3wPyUQSW+1xQ5eDsreP9DWHX3tjq1ke96uYG/nwundroWcA==} - dev: true + '@types/luxon@3.4.2': {} - /@types/mdx@2.0.7: - resolution: {integrity: sha512-BG4tyr+4amr3WsSEmHn/fXPqaCba/AYZ7dsaQTiavihQunHSIxk+uAtqsjvicNpyHN6cm+B9RVrUOtW9VzIKHw==} - dev: true + '@types/mdx@2.0.7': {} - /@types/mime@1.3.2: - resolution: {integrity: sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==} - dev: true + '@types/mime@1.3.2': {} - /@types/mime@3.0.1: - resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==} - dev: true + '@types/mime@3.0.1': {} - /@types/node-forge@1.3.10: - resolution: {integrity: sha512-y6PJDYN4xYBxwd22l+OVH35N+1fCYWiuC3aiP2SlXVE6Lo7SS+rSx9r89hLxrP4pn6n1lBGhHJ12pj3F3Mpttw==} + '@types/node-forge@1.3.10': dependencies: '@types/node': 18.19.31 - dev: true - /@types/node@16.9.1: - resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==} - dev: true + '@types/node@16.9.1': {} - /@types/node@18.19.31: - resolution: {integrity: sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==} + '@types/node@18.19.31': dependencies: undici-types: 5.26.5 - dev: true - - /@types/normalize-package-data@2.4.1: - resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} - dev: true - /@types/parse-json@4.0.2: - resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + '@types/normalize-package-data@2.4.1': {} - /@types/pretty-hrtime@1.0.1: - resolution: {integrity: sha512-VjID5MJb1eGKthz2qUerWT8+R4b9N+CHvGCzg9fn4kWZgaF9AhdYikQio3R7wV8YY1NsQKPaCwKz1Yff+aHNUQ==} - dev: true + '@types/parse-json@4.0.2': {} - /@types/prop-types@15.7.5: - resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} + '@types/pretty-hrtime@1.0.1': {} - /@types/qs@6.9.8: - resolution: {integrity: sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==} - dev: true + '@types/prop-types@15.7.5': {} - /@types/ramda@0.27.44: - resolution: {integrity: sha512-SlEHKcLG36PlU+rLJwp8p4dpC9Hp/LiH6n0REX2m4iEB15PWe1qKQzgNSZrYKhTHDFvkeEM/F2gcYwfighsEuQ==} - dependencies: - ts-toolbelt: 6.15.5 - dev: true + '@types/qs@6.9.8': {} - /@types/range-parser@1.2.4: - resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} - dev: true + '@types/range-parser@1.2.4': {} - /@types/react-dom@18.2.25: - resolution: {integrity: sha512-o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA==} + '@types/react-dom@18.2.25': dependencies: '@types/react': 18.2.77 - /@types/react@18.2.77: - resolution: {integrity: sha512-CUT9KUUF+HytDM7WiXKLF9qUSg4tGImwy4FXTlfEDPEkkNUzJ7rVFolYweJ9fS1ljoIaP7M7Rdjc5eUm/Yu5AA==} + '@types/react@18.2.77': dependencies: '@types/prop-types': 15.7.5 csstype: 3.1.2 - /@types/resolve@1.17.1: - resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} + '@types/resolve@1.17.1': dependencies: '@types/node': 18.19.31 - dev: true - /@types/retry@0.12.0: - resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} - dev: true + '@types/retry@0.12.0': {} - /@types/retry@0.12.2: - resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} - dev: true + '@types/retry@0.12.2': {} - /@types/semver@7.5.0: - resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} - dev: true + '@types/semver@7.5.0': {} - /@types/semver@7.5.8: - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - dev: true + '@types/semver@7.5.8': {} - /@types/send@0.17.1: - resolution: {integrity: sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==} + '@types/send@0.17.1': dependencies: '@types/mime': 1.3.2 '@types/node': 18.19.31 - dev: true - /@types/serve-index@1.9.4: - resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} + '@types/serve-index@1.9.4': dependencies: '@types/express': 4.17.21 - dev: true - /@types/serve-static@1.15.2: - resolution: {integrity: sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw==} + '@types/serve-static@1.15.2': dependencies: '@types/http-errors': 2.0.1 '@types/mime': 3.0.1 '@types/node': 18.19.31 - dev: true - /@types/serve-static@1.15.7: - resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} + '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.1 '@types/node': 18.19.31 '@types/send': 0.17.1 - dev: true - /@types/sockjs@0.3.36: - resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} + '@types/sockjs@0.3.36': dependencies: '@types/node': 18.19.31 - dev: true - /@types/trusted-types@2.0.7: - resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + '@types/trusted-types@2.0.7': {} - /@types/unist@3.0.2: - resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} - dev: true + '@types/unist@3.0.2': {} - /@types/uuid@9.0.8: - resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} - dev: true + '@types/uuid@9.0.8': {} - /@types/vscode-webview@1.57.5: - resolution: {integrity: sha512-iBAUYNYkz+uk1kdsq05fEcoh8gJmwT3lqqFPN7MGyjQ3HVloViMdo7ZJ8DFIP8WOK74PjOEilosqAyxV2iUFUw==} - dev: true + '@types/vscode-webview@1.57.5': {} - /@types/vscode@1.85.0: - resolution: {integrity: sha512-CF/RBon/GXwdfmnjZj0WTUMZN5H6YITOfBCP4iEZlOtVQXuzw6t7Le7+cR+7JzdMrnlm7Mfp49Oj2TuSXIWo3g==} - dev: true + '@types/vscode@1.85.0': {} - /@types/ws@8.5.10: - resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} + '@types/ws@8.5.10': dependencies: '@types/node': 18.19.31 - dev: true - /@typescript-eslint/eslint-plugin@7.6.0(@typescript-eslint/parser@7.6.0)(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-gKmTNwZnblUdnTIJu3e9kmeRRzV2j1a/LUO27KNNAnIC5zjy1aSvXSRp4rVNlmAoHlQ7HzX42NbKpcSr4jF80A==} - 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/eslint-plugin@7.6.0(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)': dependencies: '@eslint-community/regexpp': 4.10.0 '@typescript-eslint/parser': 7.6.0(eslint@8.57.0)(typescript@5.4.5) @@ -6605,20 +11588,12 @@ packages: natural-compare: 1.4.0 semver: 7.6.0 ts-api-utils: 1.3.0(typescript@5.4.5) + optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-usPMPHcwX3ZoPWnBnhhorc14NJw9J4HpSXQX4urF2TPKG0au0XhJoZyX62fmvdHONUkmyUe74Hzm1//XA+BoYg==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5)': dependencies: '@typescript-eslint/scope-manager': 7.6.0 '@typescript-eslint/types': 7.6.0 @@ -6626,52 +11601,31 @@ packages: '@typescript-eslint/visitor-keys': 7.6.0 debug: 4.3.4 eslint: 8.57.0 + optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/scope-manager@7.6.0: - resolution: {integrity: sha512-ngttyfExA5PsHSx0rdFgnADMYQi+Zkeiv4/ZxGYUWd0nLs63Ha0ksmp8VMxAIC0wtCFxMos7Lt3PszJssG/E6w==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/scope-manager@7.6.0': dependencies: '@typescript-eslint/types': 7.6.0 '@typescript-eslint/visitor-keys': 7.6.0 - dev: true - /@typescript-eslint/type-utils@7.6.0(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-NxAfqAPNLG6LTmy7uZgpK8KcuiS2NZD/HlThPXQRGwz6u7MDBWRVliEEl1Gj6U7++kVJTpehkhZzCJLMK66Scw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/type-utils@7.6.0(eslint@8.57.0)(typescript@5.4.5)': dependencies: '@typescript-eslint/typescript-estree': 7.6.0(typescript@5.4.5) '@typescript-eslint/utils': 7.6.0(eslint@8.57.0)(typescript@5.4.5) debug: 4.3.4 eslint: 8.57.0 ts-api-utils: 1.3.0(typescript@5.4.5) + optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/types@7.6.0: - resolution: {integrity: sha512-h02rYQn8J+MureCvHVVzhl69/GAfQGPQZmOMjG1KfCl7o3HtMSlPaPUAPu6lLctXI5ySRGIYk94clD/AUMCUgQ==} - engines: {node: ^18.18.0 || >=20.0.0} - dev: true + '@typescript-eslint/types@7.6.0': {} - /@typescript-eslint/typescript-estree@7.6.0(typescript@5.4.5): - resolution: {integrity: sha512-+7Y/GP9VuYibecrCQWSKgl3GvUM5cILRttpWtnAu8GNL9j11e4tbuGZmZjJ8ejnKYyBRb2ddGQ3rEFCq3QjMJw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/typescript-estree@7.6.0(typescript@5.4.5)': dependencies: '@typescript-eslint/types': 7.6.0 '@typescript-eslint/visitor-keys': 7.6.0 @@ -6681,16 +11635,12 @@ packages: minimatch: 9.0.4 semver: 7.6.0 ts-api-utils: 1.3.0(typescript@5.4.5) + optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: - supports-color - dev: true - - /@typescript-eslint/utils@7.6.0(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-x54gaSsRRI+Nwz59TXpCsr6harB98qjXYzsRxGqvA5Ue3kQH+FxS7FYU81g/omn22ML2pZJkisy6Q+ElK8pBCA==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 + + '@typescript-eslint/utils@7.6.0(eslint@8.57.0)(typescript@5.4.5)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.15 @@ -6703,131 +11653,91 @@ packages: transitivePeerDependencies: - supports-color - typescript - dev: true - /@typescript-eslint/visitor-keys@7.6.0: - resolution: {integrity: sha512-4eLB7t+LlNUmXzfOu1VAIAdkjbu5xNSerURS9X/S5TUKWFRpXRQZbmtPqgKmYx8bj3J0irtQXSiWAOY82v+cgw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/visitor-keys@7.6.0': dependencies: '@typescript-eslint/types': 7.6.0 eslint-visitor-keys: 3.4.3 - dev: true - /@ungap/structured-clone@1.2.0: - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - dev: true + '@ungap/structured-clone@1.2.0': {} - /@vitest/expect@1.3.1: - resolution: {integrity: sha512-xofQFwIzfdmLLlHa6ag0dPV8YsnKOCP1KdAeVVh34vSjN2dcUiXYCD9htu/9eM7t8Xln4v03U9HLxLpPlsXdZw==} + '@vitest/expect@1.3.1': dependencies: '@vitest/spy': 1.3.1 '@vitest/utils': 1.3.1 chai: 4.4.1 - dev: true - /@vitest/expect@1.5.0: - resolution: {integrity: sha512-0pzuCI6KYi2SIC3LQezmxujU9RK/vwC1U9R0rLuGlNGcOuDWxqWKu6nUdFsX9tH1WU0SXtAxToOsEjeUn1s3hA==} + '@vitest/expect@1.5.0': dependencies: '@vitest/spy': 1.5.0 '@vitest/utils': 1.5.0 chai: 4.4.1 - dev: true - /@vitest/runner@1.5.0: - resolution: {integrity: sha512-7HWwdxXP5yDoe7DTpbif9l6ZmDwCzcSIK38kTSIt6CFEpMjX4EpCgT6wUmS0xTXqMI6E/ONmfgRKmaujpabjZQ==} + '@vitest/runner@1.5.0': dependencies: '@vitest/utils': 1.5.0 p-limit: 5.0.0 pathe: 1.1.1 - dev: true - /@vitest/snapshot@1.5.0: - resolution: {integrity: sha512-qpv3fSEuNrhAO3FpH6YYRdaECnnRjg9VxbhdtPwPRnzSfHVXnNzzrpX4cJxqiwgRMo7uRMWDFBlsBq4Cr+rO3A==} + '@vitest/snapshot@1.5.0': dependencies: magic-string: 0.30.9 pathe: 1.1.1 pretty-format: 29.7.0 - dev: true - /@vitest/spy@1.3.1: - resolution: {integrity: sha512-xAcW+S099ylC9VLU7eZfdT9myV67Nor9w9zhf0mGCYJSO+zM2839tOeROTdikOi/8Qeusffvxb/MyBSOja1Uig==} + '@vitest/spy@1.3.1': dependencies: tinyspy: 2.2.0 - dev: true - /@vitest/spy@1.4.0: - resolution: {integrity: sha512-Ywau/Qs1DzM/8Uc+yA77CwSegizMlcgTJuYGAi0jujOteJOUf1ujunHThYo243KG9nAyWT3L9ifPYZ5+As/+6Q==} + '@vitest/spy@1.4.0': dependencies: tinyspy: 2.2.0 - dev: true - /@vitest/spy@1.5.0: - resolution: {integrity: sha512-vu6vi6ew5N5MMHJjD5PoakMRKYdmIrNJmyfkhRpQt5d9Ewhw9nZ5Aqynbi3N61bvk9UvZ5UysMT6ayIrZ8GA9w==} + '@vitest/spy@1.5.0': dependencies: tinyspy: 2.2.0 - dev: true - /@vitest/utils@1.3.1: - resolution: {integrity: sha512-d3Waie/299qqRyHTm2DjADeTaNdNSVsnwHPWrs20JMpjh6eiVq7ggggweO8rc4arhf6rRkWuHKwvxGvejUXZZQ==} + '@vitest/utils@1.3.1': dependencies: diff-sequences: 29.6.3 estree-walker: 3.0.3 loupe: 2.3.7 pretty-format: 29.7.0 - dev: true - /@vitest/utils@1.5.0: - resolution: {integrity: sha512-BDU0GNL8MWkRkSRdNFvCUCAVOeHaUlVJ9Tx0TYBZyXaaOTmGtUFObzchCivIBrIwKzvZA7A9sCejVhXM2aY98A==} + '@vitest/utils@1.5.0': dependencies: diff-sequences: 29.6.3 estree-walker: 3.0.3 loupe: 2.3.7 pretty-format: 29.7.0 - dev: true - /@volar/language-core@1.11.1: - resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==} + '@volar/language-core@1.11.1': dependencies: '@volar/source-map': 1.11.1 - dev: true - /@volar/source-map@1.11.1: - resolution: {integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==} + '@volar/source-map@1.11.1': dependencies: muggle-string: 0.3.1 - dev: true - /@volar/typescript@1.11.1: - resolution: {integrity: sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==} + '@volar/typescript@1.11.1': dependencies: '@volar/language-core': 1.11.1 path-browserify: 1.0.1 - dev: true - /@vue/compiler-core@3.4.21: - resolution: {integrity: sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==} + '@vue/compiler-core@3.4.21': dependencies: '@babel/parser': 7.24.0 '@vue/shared': 3.4.21 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.0.2 - dev: true - /@vue/compiler-dom@3.4.21: - resolution: {integrity: sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==} + '@vue/compiler-dom@3.4.21': dependencies: '@vue/compiler-core': 3.4.21 '@vue/shared': 3.4.21 - dev: true - /@vue/language-core@1.8.27(typescript@5.4.5): - resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} - peerDependencies: - typescript: 5.4.5 - peerDependenciesMeta: - typescript: - optional: true + '@vue/language-core@1.8.27(typescript@5.4.5)': dependencies: '@volar/language-core': 1.11.1 '@volar/source-map': 1.11.1 @@ -6837,72 +11747,49 @@ packages: minimatch: 9.0.3 muggle-string: 0.3.1 path-browserify: 1.0.1 - typescript: 5.4.5 vue-template-compiler: 2.7.16 - dev: true + optionalDependencies: + typescript: 5.4.5 - /@vue/shared@3.4.21: - resolution: {integrity: sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==} - dev: true + '@vue/shared@3.4.21': {} - /@webassemblyjs/ast@1.12.1: - resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} + '@webassemblyjs/ast@1.12.1': dependencies: '@webassemblyjs/helper-numbers': 1.11.6 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - dev: true - /@webassemblyjs/floating-point-hex-parser@1.11.6: - resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} - dev: true + '@webassemblyjs/floating-point-hex-parser@1.11.6': {} - /@webassemblyjs/helper-api-error@1.11.6: - resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} - dev: true + '@webassemblyjs/helper-api-error@1.11.6': {} - /@webassemblyjs/helper-buffer@1.12.1: - resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} - dev: true + '@webassemblyjs/helper-buffer@1.12.1': {} - /@webassemblyjs/helper-numbers@1.11.6: - resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + '@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 - dev: true - /@webassemblyjs/helper-wasm-bytecode@1.11.6: - resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} - dev: true + '@webassemblyjs/helper-wasm-bytecode@1.11.6': {} - /@webassemblyjs/helper-wasm-section@1.12.1: - resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} + '@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 - dev: true - /@webassemblyjs/ieee754@1.11.6: - resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + '@webassemblyjs/ieee754@1.11.6': dependencies: '@xtuc/ieee754': 1.2.0 - dev: true - /@webassemblyjs/leb128@1.11.6: - resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + '@webassemblyjs/leb128@1.11.6': dependencies: '@xtuc/long': 4.2.2 - dev: true - /@webassemblyjs/utf8@1.11.6: - resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} - dev: true + '@webassemblyjs/utf8@1.11.6': {} - /@webassemblyjs/wasm-edit@1.12.1: - resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} + '@webassemblyjs/wasm-edit@1.12.1': dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-buffer': 1.12.1 @@ -6912,29 +11799,23 @@ packages: '@webassemblyjs/wasm-opt': 1.12.1 '@webassemblyjs/wasm-parser': 1.12.1 '@webassemblyjs/wast-printer': 1.12.1 - dev: true - /@webassemblyjs/wasm-gen@1.12.1: - resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} + '@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 - dev: true - /@webassemblyjs/wasm-opt@1.12.1: - resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} + '@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 - dev: true - /@webassemblyjs/wasm-parser@1.12.1: - resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} + '@webassemblyjs/wasm-parser@1.12.1': dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-api-error': 1.11.6 @@ -6942,399 +11823,239 @@ packages: '@webassemblyjs/ieee754': 1.11.6 '@webassemblyjs/leb128': 1.11.6 '@webassemblyjs/utf8': 1.11.6 - dev: true - /@webassemblyjs/wast-printer@1.12.1: - resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + '@webassemblyjs/wast-printer@1.12.1': dependencies: '@webassemblyjs/ast': 1.12.1 '@xtuc/long': 4.2.2 - dev: true - /@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.91.0): - resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==} - engines: {node: '>=14.15.0'} - peerDependencies: - webpack: 5.x.x - webpack-cli: 5.x.x + '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.2)(webpack@5.91.0))(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4))': dependencies: webpack: 5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.2)(webpack@5.91.0) - dev: true - /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.91.0): - resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==} - engines: {node: '>=14.15.0'} - peerDependencies: - webpack: 5.x.x - webpack-cli: 5.x.x + '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.0.4)(webpack@5.91.0))(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4))': + dependencies: + webpack: 5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.0.4)(webpack@5.91.0) + + '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4(webpack@5.91.0))(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4))': + dependencies: + webpack: 5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack@5.91.0) + + '@webpack-cli/info@2.0.2(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.2)(webpack@5.91.0))(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4))': dependencies: webpack: 5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.2)(webpack@5.91.0) - dev: true - /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@4.15.2)(webpack@5.91.0): - resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==} - engines: {node: '>=14.15.0'} - peerDependencies: - webpack: 5.x.x - webpack-cli: 5.x.x - webpack-dev-server: '*' - peerDependenciesMeta: - webpack-dev-server: - optional: true + '@webpack-cli/info@2.0.2(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.0.4)(webpack@5.91.0))(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4))': + dependencies: + webpack: 5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.0.4)(webpack@5.91.0) + + '@webpack-cli/info@2.0.2(webpack-cli@5.1.4(webpack@5.91.0))(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4))': + dependencies: + webpack: 5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack@5.91.0) + + '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.2)(webpack@5.91.0))(webpack-dev-server@4.15.2(webpack-cli@5.1.4)(webpack@5.91.0))(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4))': dependencies: webpack: 5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.2)(webpack@5.91.0) + optionalDependencies: webpack-dev-server: 4.15.2(webpack-cli@5.1.4)(webpack@5.91.0) - dev: true - /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.0.4)(webpack@5.91.0): - resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==} - engines: {node: '>=14.15.0'} - peerDependencies: - webpack: 5.x.x - webpack-cli: 5.x.x - webpack-dev-server: '*' - peerDependenciesMeta: - webpack-dev-server: - optional: true + '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.0.4)(webpack@5.91.0))(webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.91.0))(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4))': dependencies: webpack: 5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.0.4)(webpack@5.91.0) + optionalDependencies: webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.91.0) - dev: true - /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack@5.91.0): - resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==} - engines: {node: '>=14.15.0'} - peerDependencies: - webpack: 5.x.x - webpack-cli: 5.x.x - webpack-dev-server: '*' - peerDependenciesMeta: - webpack-dev-server: - optional: true + '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4(webpack@5.91.0))(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4))': dependencies: - webpack: 5.91.0(webpack-cli@5.1.4) + webpack: 5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack@5.91.0) - dev: true - /@xtuc/ieee754@1.2.0: - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} - dev: true + '@xtuc/ieee754@1.2.0': {} - /@xtuc/long@4.2.2: - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - dev: true + '@xtuc/long@4.2.2': {} - /@yarnpkg/esbuild-plugin-pnp@3.0.0-rc.15(esbuild@0.20.2): - resolution: {integrity: sha512-kYzDJO5CA9sy+on/s2aIW0411AklfCi8Ck/4QDivOqsMKpStZA2SsR+X27VTggGwpStWaLrjJcDcdDMowtG8MA==} - engines: {node: '>=14.15.0'} - peerDependencies: - esbuild: '>=0.10.0' + '@yarnpkg/esbuild-plugin-pnp@3.0.0-rc.15(esbuild@0.20.2)': dependencies: esbuild: 0.20.2 tslib: 2.6.2 - dev: true - /@yarnpkg/fslib@2.10.3: - resolution: {integrity: sha512-41H+Ga78xT9sHvWLlFOZLIhtU6mTGZ20pZ29EiZa97vnxdohJD2AF42rCoAoWfqUz486xY6fhjMH+DYEM9r14A==} - engines: {node: '>=12 <14 || 14.2 - 14.9 || >14.10.0'} + '@yarnpkg/fslib@2.10.3': dependencies: '@yarnpkg/libzip': 2.3.0 tslib: 1.14.1 - dev: true - /@yarnpkg/libzip@2.3.0: - resolution: {integrity: sha512-6xm38yGVIa6mKm/DUCF2zFFJhERh/QWp1ufm4cNUvxsONBmfPg8uZ9pZBdOmF6qFGr/HlT6ABBkCSx/dlEtvWg==} - engines: {node: '>=12 <14 || 14.2 - 14.9 || >14.10.0'} + '@yarnpkg/libzip@2.3.0': dependencies: '@types/emscripten': 1.39.7 tslib: 1.14.1 - dev: true - /@yarnpkg/lockfile@1.1.0: - resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} - dev: true + '@yarnpkg/lockfile@1.1.0': {} - /@yarnpkg/parsers@3.0.0-rc.46: - resolution: {integrity: sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q==} - engines: {node: '>=14.15.0'} + '@yarnpkg/parsers@3.0.0-rc.46': dependencies: js-yaml: 3.14.1 tslib: 2.6.2 - dev: true - /@zkochan/js-yaml@0.0.6: - resolution: {integrity: sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==} - hasBin: true + '@zkochan/js-yaml@0.0.6': dependencies: argparse: 2.0.1 - dev: true - /accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} + accepts@1.3.8: dependencies: mime-types: 2.1.35 negotiator: 0.6.3 - dev: true - /acorn-import-assertions@1.9.0(acorn@8.10.0): - resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} - peerDependencies: - acorn: ^8 + acorn-import-assertions@1.9.0(acorn@8.10.0): dependencies: acorn: 8.10.0 - dev: true - /acorn-jsx@5.3.2(acorn@8.10.0): - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + acorn-jsx@5.3.2(acorn@8.10.0): dependencies: acorn: 8.10.0 - dev: true - /acorn-walk@8.3.1: - resolution: {integrity: sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==} - engines: {node: '>=0.4.0'} - dev: true + acorn-walk@8.3.1: {} - /acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} - engines: {node: '>=0.4.0'} - dev: true + acorn-walk@8.3.2: {} - /acorn@8.10.0: - resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true + acorn@8.10.0: {} - /address@1.2.2: - resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} - engines: {node: '>= 10.0.0'} - dev: true + address@1.2.2: {} - /agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} + agent-base@6.0.2: dependencies: debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: true - /aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} + aggregate-error@3.1.0: dependencies: clean-stack: 2.2.0 indent-string: 4.0.0 - dev: true - /ajv-formats@2.1.1(ajv@8.12.0): - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - dependencies: + ajv-formats@2.1.1(ajv@8.12.0): + optionalDependencies: ajv: 8.12.0 - dev: true - /ajv-keywords@3.5.2(ajv@6.12.6): - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} - peerDependencies: - ajv: ^6.9.1 + ajv-keywords@3.5.2(ajv@6.12.6): dependencies: ajv: 6.12.6 - dev: true - /ajv-keywords@5.1.0(ajv@8.12.0): - resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} - peerDependencies: - ajv: ^8.8.2 + ajv-keywords@5.1.0(ajv@8.12.0): dependencies: ajv: 8.12.0 fast-deep-equal: 3.1.3 - dev: true - /ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 - dev: true - /ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + ajv@8.12.0: dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 uri-js: 4.4.1 - dev: true - /ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} - dev: true + ansi-colors@4.1.3: {} - /ansi-escapes@6.2.0: - resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==} - engines: {node: '>=14.16'} + ansi-escapes@6.2.0: dependencies: type-fest: 3.13.1 - dev: true - /ansi-html-community@0.0.8: - resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} - engines: {'0': node >= 0.8.0} - hasBin: true - dev: true + ansi-html-community@0.0.8: {} - /ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - dev: true + ansi-regex@5.0.1: {} - /ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} - dev: true + ansi-regex@6.0.1: {} - /ansi-sequence-parser@1.1.1: - resolution: {integrity: sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==} - dev: true + ansi-sequence-parser@1.1.1: {} - /ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} + ansi-styles@3.2.1: dependencies: color-convert: 1.9.3 - /ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} + ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 - dev: true - /ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - dev: true + ansi-styles@5.2.0: {} - /ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - dev: true + ansi-styles@6.2.1: {} - /any-base@1.1.0: - resolution: {integrity: sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==} - dev: true + any-base@1.1.0: {} - /anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} + anymatch@3.1.3: dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - dev: true - /app-root-dir@1.0.2: - resolution: {integrity: sha512-jlpIfsOoNoafl92Sz//64uQHGSyMrD2vYG5d8o2a4qGvyNCvXur7bzIsWtAC/6flI2RYAp3kv8rsfBtaLm7w0g==} - dev: true + app-root-dir@1.0.2: {} - /argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + argparse@1.0.10: dependencies: sprintf-js: 1.0.3 - dev: true - /argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - dev: true + argparse@2.0.1: {} - /aria-hidden@1.2.3: - resolution: {integrity: sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==} - engines: {node: '>=10'} + aria-hidden@1.2.3: dependencies: tslib: 2.6.2 - /aria-query@5.1.3: - resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} + aria-query@5.1.3: dependencies: deep-equal: 2.2.2 - dev: true - /array-buffer-byte-length@1.0.0: - resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + array-buffer-byte-length@1.0.0: dependencies: call-bind: 1.0.2 is-array-buffer: 3.0.2 - dev: true - /array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - dev: true + array-flatten@1.1.1: {} - /array-includes@3.1.7: - resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} - engines: {node: '>= 0.4'} + array-includes@3.1.7: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 es-abstract: 1.22.1 get-intrinsic: 1.2.1 is-string: 1.0.7 - dev: true - /array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - dev: true + array-union@2.1.0: {} - /array.prototype.findlastindex@1.2.3: - resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} - engines: {node: '>= 0.4'} + array.prototype.findlastindex@1.2.3: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 es-abstract: 1.22.1 es-shim-unscopables: 1.0.0 get-intrinsic: 1.2.1 - dev: true - /array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} + array.prototype.flat@1.3.2: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 es-abstract: 1.22.1 es-shim-unscopables: 1.0.0 - dev: true - /array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} - engines: {node: '>= 0.4'} + array.prototype.flatmap@1.3.2: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 es-abstract: 1.22.1 es-shim-unscopables: 1.0.0 - dev: true - /arraybuffer.prototype.slice@1.0.1: - resolution: {integrity: sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==} - engines: {node: '>= 0.4'} + arraybuffer.prototype.slice@1.0.1: dependencies: array-buffer-byte-length: 1.0.0 call-bind: 1.0.2 @@ -7342,77 +12063,48 @@ packages: get-intrinsic: 1.2.1 is-array-buffer: 3.0.2 is-shared-array-buffer: 1.0.2 - dev: true - /assert@2.1.0: - resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==} + assert@2.1.0: dependencies: call-bind: 1.0.2 is-nan: 1.3.2 object-is: 1.1.5 object.assign: 4.1.4 util: 0.12.5 - dev: true - /assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} - dev: true + assertion-error@1.1.0: {} - /ast-types@0.16.1: - resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} - engines: {node: '>=4'} + ast-types@0.16.1: dependencies: tslib: 2.6.2 - dev: true - /async@3.2.4: - resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} - dev: true + async@3.2.4: {} - /asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - dev: true + asynckit@0.4.0: {} - /at-least-node@1.0.0: - resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} - engines: {node: '>= 4.0.0'} - dev: true + at-least-node@1.0.0: {} - /available-typed-arrays@1.0.5: - resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} - engines: {node: '>= 0.4'} - dev: true + available-typed-arrays@1.0.5: {} - /axios@1.6.7: - resolution: {integrity: sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==} + axios@1.6.7: dependencies: follow-redirects: 1.15.5 form-data: 4.0.0 proxy-from-env: 1.1.0 transitivePeerDependencies: - debug - dev: true - /babel-core@7.0.0-bridge.0(@babel/core@7.24.4): - resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==} - peerDependencies: - '@babel/core': ^7.0.0-0 + babel-core@7.0.0-bridge.0(@babel/core@7.24.4): dependencies: '@babel/core': 7.24.4 - dev: true - /babel-plugin-macros@3.1.0: - resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} - engines: {node: '>=10', npm: '>=6'} + babel-plugin-macros@3.1.0: dependencies: '@babel/runtime': 7.23.6 cosmiconfig: 7.1.0 resolve: 1.22.8 - /babel-plugin-polyfill-corejs2@0.4.7(@babel/core@7.24.4): - resolution: {integrity: sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-polyfill-corejs2@0.4.7(@babel/core@7.24.4): dependencies: '@babel/compat-data': 7.23.5 '@babel/core': 7.24.4 @@ -7420,87 +12112,51 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color - dev: true - /babel-plugin-polyfill-corejs3@0.8.7(@babel/core@7.24.4): - resolution: {integrity: sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-polyfill-corejs3@0.8.7(@babel/core@7.24.4): dependencies: '@babel/core': 7.24.4 '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.24.4) core-js-compat: 3.34.0 transitivePeerDependencies: - supports-color - dev: true - /babel-plugin-polyfill-regenerator@0.5.4(@babel/core@7.24.4): - resolution: {integrity: sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-polyfill-regenerator@0.5.4(@babel/core@7.24.4): dependencies: '@babel/core': 7.24.4 '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.24.4) transitivePeerDependencies: - supports-color - dev: true - /balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: true + balanced-match@1.0.2: {} - /base16@1.0.0: - resolution: {integrity: sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ==} - dev: true + base16@1.0.0: {} - /base64-arraybuffer@1.0.2: - resolution: {integrity: sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==} - engines: {node: '>= 0.6.0'} + base64-arraybuffer@1.0.2: {} - /base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - dev: true + base64-js@1.5.1: {} - /batch@0.6.1: - resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} - dev: true + batch@0.6.1: {} - /better-opn@3.0.2: - resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==} - engines: {node: '>=12.0.0'} + better-opn@3.0.2: dependencies: open: 8.4.2 - dev: true - /big-integer@1.6.51: - resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} - engines: {node: '>=0.6'} - dev: true + big-integer@1.6.51: {} - /big.js@5.2.2: - resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} - dev: true + big.js@5.2.2: {} - /binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} - engines: {node: '>=8'} - dev: true + binary-extensions@2.2.0: {} - /bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + bl@4.1.0: dependencies: buffer: 5.7.1 inherits: 2.0.4 readable-stream: 3.6.2 - dev: true - /bmp-js@0.1.0: - resolution: {integrity: sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==} - dev: true + bmp-js@0.1.0: {} - /body-parser@1.20.1: - resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + body-parser@1.20.1: dependencies: bytes: 3.1.2 content-type: 1.0.5 @@ -7516,133 +12172,80 @@ packages: unpipe: 1.0.0 transitivePeerDependencies: - supports-color - dev: true - /bonjour-service@1.2.1: - resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==} + bonjour-service@1.2.1: dependencies: fast-deep-equal: 3.1.3 multicast-dns: 7.2.5 - dev: true - /boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - dev: true + boolbase@1.0.0: {} - /bplist-parser@0.2.0: - resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} - engines: {node: '>= 5.10.0'} + bplist-parser@0.2.0: dependencies: big-integer: 1.6.51 - dev: true - /brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - dev: true - /brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + brace-expansion@2.0.1: dependencies: balanced-match: 1.0.2 - dev: true - /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} + braces@3.0.2: dependencies: fill-range: 7.0.1 - dev: true - /browser-assert@1.2.1: - resolution: {integrity: sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==} - dev: true + browser-assert@1.2.1: {} - /browserify-zlib@0.1.4: - resolution: {integrity: sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==} + browserify-zlib@0.1.4: dependencies: pako: 0.2.9 - dev: true - /browserslist@4.22.2: - resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true + browserslist@4.22.2: dependencies: caniuse-lite: 1.0.30001570 electron-to-chromium: 1.4.614 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.22.2) - /buffer-equal@0.0.1: - resolution: {integrity: sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==} - engines: {node: '>=0.4.0'} - dev: true + buffer-equal@0.0.1: {} - /buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - dev: true + buffer-from@1.1.2: {} - /buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + buffer@5.7.1: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - dev: true - - /builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} - dev: true - /bundle-name@4.1.0: - resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} - engines: {node: '>=18'} + builtin-modules@3.3.0: {} + + bundle-name@4.1.0: dependencies: run-applescript: 7.0.0 - dev: true - /bytes@3.0.0: - resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} - engines: {node: '>= 0.8'} - dev: true + bytes@3.0.0: {} - /bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} - dev: true + bytes@3.1.2: {} - /cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - dev: true + cac@6.7.14: {} - /call-bind@1.0.2: - resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + call-bind@1.0.2: dependencies: function-bind: 1.1.1 get-intrinsic: 1.2.1 - dev: true - /callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} + callsites@3.1.0: {} - /camel-case@4.1.2: - resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + camel-case@4.1.2: dependencies: pascal-case: 3.1.2 tslib: 2.6.2 - dev: true - /caniuse-lite@1.0.30001570: - resolution: {integrity: sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==} + caniuse-lite@1.0.30001570: {} - /chai@4.4.1: - resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} - engines: {node: '>=4'} + chai@4.4.1: dependencies: assertion-error: 1.1.0 check-error: 1.0.3 @@ -7651,46 +12254,30 @@ packages: loupe: 2.3.7 pathval: 1.1.1 type-detect: 4.0.8 - dev: true - /chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} + chalk@2.4.2: dependencies: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 - /chalk@3.0.0: - resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} - engines: {node: '>=8'} + chalk@3.0.0: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - dev: true - /chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} + chalk@4.1.2: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - dev: true - /chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - dev: true + chalk@5.3.0: {} - /check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + check-error@1.0.3: dependencies: get-func-name: 2.0.2 - dev: true - /chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} + chokidar@3.6.0: dependencies: anymatch: 3.1.3 braces: 3.0.2 @@ -7701,221 +12288,121 @@ packages: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.3 - dev: true - /chownr@1.1.4: - resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - dev: true + chownr@1.1.4: {} - /chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} - dev: true + chownr@2.0.0: {} - /chrome-trace-event@1.0.3: - resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} - engines: {node: '>=6.0'} - dev: true + chrome-trace-event@1.0.3: {} - /classnames@2.4.0: - resolution: {integrity: sha512-lWxiIlphgAhTLN657pwU/ofFxsUTOWc2CRIFeoV5st0MGRJHStUnWIUJgDHxjUO/F0mXzGufXIM4Lfu/8h+MpA==} - dev: false + classnames@2.4.0: {} - /clean-css@5.3.3: - resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} - engines: {node: '>= 10.0'} + clean-css@5.3.3: dependencies: source-map: 0.6.1 - dev: true - /clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} - dev: true + clean-stack@2.2.0: {} - /cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} + cli-cursor@3.1.0: dependencies: restore-cursor: 3.1.0 - dev: true - /cli-cursor@4.0.0: - resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + cli-cursor@4.0.0: dependencies: restore-cursor: 4.0.0 - dev: true - /cli-spinners@2.6.1: - resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} - engines: {node: '>=6'} - dev: true + cli-spinners@2.6.1: {} - /cli-spinners@2.9.0: - resolution: {integrity: sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==} - engines: {node: '>=6'} - dev: true + cli-spinners@2.9.0: {} - /cli-table3@0.6.3: - resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==} - engines: {node: 10.* || >= 12.*} + cli-table3@0.6.3: dependencies: string-width: 4.2.3 optionalDependencies: '@colors/colors': 1.5.0 - dev: true - /cli-truncate@4.0.0: - resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} - engines: {node: '>=18'} + cli-truncate@4.0.0: dependencies: slice-ansi: 5.0.0 string-width: 7.0.0 - dev: true - /cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} + cliui@8.0.1: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - dev: true - /clone-deep@4.0.1: - resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} - engines: {node: '>=6'} + clone-deep@4.0.1: dependencies: is-plain-object: 2.0.4 kind-of: 6.0.3 shallow-clone: 3.0.1 - dev: true - /clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - dev: true + clone@1.0.4: {} - /clsx@1.1.1: - resolution: {integrity: sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==} - engines: {node: '>=6'} - dev: true + clsx@1.1.1: {} - /color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + color-convert@1.9.3: dependencies: color-name: 1.1.3 - /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} + color-convert@2.0.1: dependencies: color-name: 1.1.4 - dev: true - /color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + color-name@1.1.3: {} - /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: true + color-name@1.1.4: {} - /color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + color-string@1.9.1: dependencies: color-name: 1.1.4 simple-swizzle: 0.2.2 - dev: true - /color@3.2.1: - resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} + color@3.2.1: dependencies: color-convert: 1.9.3 color-string: 1.9.1 - dev: true - /color@4.2.3: - resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} - engines: {node: '>=12.5.0'} + color@4.2.3: dependencies: color-convert: 2.0.1 color-string: 1.9.1 - dev: true - /colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - dev: true + colorette@2.0.20: {} - /combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} + combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 - dev: true - /comlink@4.4.1: - resolution: {integrity: sha512-+1dlx0aY5Jo1vHy/tSsIGpSkN4tS9rZSW8FIhG0JH/crs9wwweswIo/POr451r7bZww3hFbPAKnTpimzL/mm4Q==} + comlink@4.4.1: {} - /commander@10.0.1: - resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} - engines: {node: '>=14'} - dev: true + commander@10.0.1: {} - /commander@11.1.0: - resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} - engines: {node: '>=16'} - dev: true + commander@11.1.0: {} - /commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - dev: true + commander@2.20.3: {} - /commander@6.2.1: - resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} - engines: {node: '>= 6'} - dev: true + commander@6.2.1: {} - /commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} - dev: true + commander@7.2.0: {} - /commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} - dev: true + commander@8.3.0: {} - /commander@9.5.0: - resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} - engines: {node: ^12.20.0 || >=14} - requiresBuild: true - dev: true + commander@9.5.0: optional: true - /common-path-prefix@3.0.0: - resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} - dev: true + common-path-prefix@3.0.0: {} - /common-tags@1.8.2: - resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} - engines: {node: '>=4.0.0'} - dev: true + common-tags@1.8.2: {} - /commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - dev: true + commondir@1.0.1: {} - /compressible@2.0.18: - resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} - engines: {node: '>= 0.6'} + compressible@2.0.18: dependencies: mime-db: 1.52.0 - dev: true - /compression@1.7.4: - resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} - engines: {node: '>= 0.8.0'} + compression@1.7.4: dependencies: accepts: 1.3.8 bytes: 3.0.0 @@ -7926,53 +12413,28 @@ packages: vary: 1.1.2 transitivePeerDependencies: - supports-color - dev: true - /computeds@0.0.1: - resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} - dev: true + computeds@0.0.1: {} - /concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - dev: true + concat-map@0.0.1: {} - /connect-history-api-fallback@2.0.0: - resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} - engines: {node: '>=0.8'} - dev: true + connect-history-api-fallback@2.0.0: {} - /content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} + content-disposition@0.5.4: dependencies: safe-buffer: 5.2.1 - dev: true - /content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} - dev: true + content-type@1.0.5: {} - /convert-source-map@1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + convert-source-map@1.9.0: {} - /convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + convert-source-map@2.0.0: {} - /cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - dev: true + cookie-signature@1.0.6: {} - /cookie@0.5.0: - resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} - engines: {node: '>= 0.6'} - dev: true + cookie@0.5.0: {} - /copy-webpack-plugin@12.0.2(webpack@5.91.0): - resolution: {integrity: sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==} - engines: {node: '>= 18.12.0'} - peerDependencies: - webpack: ^5.1.0 + copy-webpack-plugin@12.0.2(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)): dependencies: fast-glob: 3.3.2 glob-parent: 6.0.2 @@ -7981,31 +12443,18 @@ packages: schema-utils: 4.2.0 serialize-javascript: 6.0.2 webpack: 5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4) - dev: true - /core-js-compat@3.34.0: - resolution: {integrity: sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==} + core-js-compat@3.34.0: dependencies: browserslist: 4.22.2 - dev: true - /core-js-pure@3.34.0: - resolution: {integrity: sha512-pmhivkYXkymswFfbXsANmBAewXx86UBfmagP+w0wkK06kLsLlTK5oQmsURPivzMkIBQiYq2cjamcZExIwlFQIg==} - requiresBuild: true - dev: true + core-js-pure@3.34.0: {} - /core-js@3.36.1: - resolution: {integrity: sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==} - requiresBuild: true - dev: true + core-js@3.36.1: {} - /core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - dev: true + core-util-is@1.0.3: {} - /cosmiconfig@7.1.0: - resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} - engines: {node: '>=10'} + cosmiconfig@7.1.0: dependencies: '@types/parse-json': 4.0.2 import-fresh: 3.3.0 @@ -8013,39 +12462,19 @@ packages: path-type: 4.0.0 yaml: 1.10.2 - /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} + cross-spawn@7.0.3: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - dev: true - /crypto-js@4.2.0: - resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} - dev: true + crypto-js@4.2.0: {} - /crypto-random-string@2.0.0: - resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} - engines: {node: '>=8'} - dev: true + crypto-random-string@2.0.0: {} - /css-color-names@1.0.1: - resolution: {integrity: sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA==} - dev: true + css-color-names@1.0.1: {} - /css-loader@7.1.1(webpack@5.91.0): - resolution: {integrity: sha512-OxIR5P2mjO1PSXk44bWuQ8XtMK4dpEqpIyERCx3ewOo3I8EmbcxMPUc5ScLtQfgXtOojoMv57So4V/C02HQLsw==} - engines: {node: '>= 18.12.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - webpack: ^5.27.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true + css-loader@7.1.1(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)): dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 @@ -8055,233 +12484,130 @@ packages: postcss-modules-values: 4.0.0(postcss@8.4.38) postcss-value-parser: 4.2.0 semver: 7.6.0 + optionalDependencies: webpack: 5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4) - dev: true - /css-select@4.3.0: - resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + css-select@4.3.0: dependencies: boolbase: 1.0.0 css-what: 6.1.0 domhandler: 4.3.1 domutils: 2.8.0 nth-check: 2.1.1 - dev: true - /css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} - engines: {node: '>= 6'} - dev: true + css-what@6.1.0: {} - /css.escape@1.5.1: - resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} - dev: true + css.escape@1.5.1: {} - /cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - dev: true + cssesc@3.0.0: {} - /csstype@3.0.9: - resolution: {integrity: sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw==} - dev: true + csstype@3.0.9: {} - /csstype@3.1.2: - resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + csstype@3.1.2: {} - /d3-array@3.2.4: - resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} - engines: {node: '>=12'} + d3-array@3.2.4: dependencies: internmap: 2.0.3 - dev: true - /d3-axis@3.0.0: - resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} - engines: {node: '>=12'} - dev: true + d3-axis@3.0.0: {} - /d3-brush@3.0.0: - resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} - engines: {node: '>=12'} + d3-brush@3.0.0: dependencies: d3-dispatch: 3.0.1 d3-drag: 3.0.0 d3-interpolate: 3.0.1 d3-selection: 3.0.0 d3-transition: 3.0.1(d3-selection@3.0.0) - dev: true - /d3-chord@3.0.1: - resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} - engines: {node: '>=12'} + d3-chord@3.0.1: dependencies: d3-path: 3.1.0 - dev: true - /d3-color@3.1.0: - resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} - engines: {node: '>=12'} - dev: true + d3-color@3.1.0: {} - /d3-contour@4.0.2: - resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==} - engines: {node: '>=12'} + d3-contour@4.0.2: dependencies: d3-array: 3.2.4 - dev: true - /d3-delaunay@6.0.4: - resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==} - engines: {node: '>=12'} + d3-delaunay@6.0.4: dependencies: delaunator: 5.0.0 - dev: true - /d3-dispatch@3.0.1: - resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} - engines: {node: '>=12'} - dev: true + d3-dispatch@3.0.1: {} - /d3-drag@3.0.0: - resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} - engines: {node: '>=12'} + d3-drag@3.0.0: dependencies: d3-dispatch: 3.0.1 d3-selection: 3.0.0 - dev: true - /d3-dsv@3.0.1: - resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} - engines: {node: '>=12'} - hasBin: true + d3-dsv@3.0.1: dependencies: commander: 7.2.0 iconv-lite: 0.6.3 rw: 1.3.3 - dev: true - /d3-ease@3.0.1: - resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} - engines: {node: '>=12'} - dev: true + d3-ease@3.0.1: {} - /d3-fetch@3.0.1: - resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} - engines: {node: '>=12'} + d3-fetch@3.0.1: dependencies: d3-dsv: 3.0.1 - dev: true - /d3-force@3.0.0: - resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} - engines: {node: '>=12'} + d3-force@3.0.0: dependencies: d3-dispatch: 3.0.1 d3-quadtree: 3.0.1 d3-timer: 3.0.1 - dev: true - /d3-format@3.1.0: - resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} - engines: {node: '>=12'} - dev: true + d3-format@3.1.0: {} - /d3-geo@3.1.0: - resolution: {integrity: sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA==} - engines: {node: '>=12'} + d3-geo@3.1.0: dependencies: d3-array: 3.2.4 - dev: true - /d3-hierarchy@3.1.2: - resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} - engines: {node: '>=12'} - dev: true + d3-hierarchy@3.1.2: {} - /d3-interpolate@3.0.1: - resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} - engines: {node: '>=12'} + d3-interpolate@3.0.1: dependencies: d3-color: 3.1.0 - dev: true - /d3-path@3.1.0: - resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==} - engines: {node: '>=12'} - dev: true + d3-path@3.1.0: {} - /d3-polygon@3.0.1: - resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} - engines: {node: '>=12'} - dev: true + d3-polygon@3.0.1: {} - /d3-quadtree@3.0.1: - resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} - engines: {node: '>=12'} - dev: true + d3-quadtree@3.0.1: {} - /d3-random@3.0.1: - resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} - engines: {node: '>=12'} - dev: true + d3-random@3.0.1: {} - /d3-scale-chromatic@3.0.0: - resolution: {integrity: sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==} - engines: {node: '>=12'} + d3-scale-chromatic@3.0.0: dependencies: d3-color: 3.1.0 d3-interpolate: 3.0.1 - dev: true - /d3-scale@4.0.2: - resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} - engines: {node: '>=12'} + d3-scale@4.0.2: dependencies: d3-array: 3.2.4 d3-format: 3.1.0 d3-interpolate: 3.0.1 d3-time: 3.1.0 d3-time-format: 4.1.0 - dev: true - /d3-selection@3.0.0: - resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} - engines: {node: '>=12'} - dev: true + d3-selection@3.0.0: {} - /d3-shape@3.2.0: - resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} - engines: {node: '>=12'} + d3-shape@3.2.0: dependencies: d3-path: 3.1.0 - dev: true - /d3-time-format@4.1.0: - resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} - engines: {node: '>=12'} + d3-time-format@4.1.0: dependencies: d3-time: 3.1.0 - dev: true - /d3-time@3.1.0: - resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} - engines: {node: '>=12'} + d3-time@3.1.0: dependencies: d3-array: 3.2.4 - dev: true - /d3-timer@3.0.1: - resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} - engines: {node: '>=12'} - dev: true + d3-timer@3.0.1: {} - /d3-transition@3.0.1(d3-selection@3.0.0): - resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} - engines: {node: '>=12'} - peerDependencies: - d3-selection: 2 - 3 + d3-transition@3.0.1(d3-selection@3.0.0): dependencies: d3-color: 3.1.0 d3-dispatch: 3.0.1 @@ -8289,58 +12615,16 @@ packages: d3-interpolate: 3.0.1 d3-selection: 3.0.0 d3-timer: 3.0.1 - dev: true - - /d3-zoom@3.0.0: - resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} - engines: {node: '>=12'} - dependencies: - d3-dispatch: 3.0.1 - d3-drag: 3.0.0 - d3-interpolate: 3.0.1 - d3-selection: 3.0.0 - d3-transition: 3.0.1(d3-selection@3.0.0) - dev: true - /d3@7.8.5: - resolution: {integrity: sha512-JgoahDG51ncUfJu6wX/1vWQEqOflgXyl4MaHqlcSruTez7yhaRKR9i8VjjcQGeS2en/jnFivXuaIMnseMMt0XA==} - engines: {node: '>=12'} + d3-zoom@3.0.0: dependencies: - d3-array: 3.2.4 - d3-axis: 3.0.0 - d3-brush: 3.0.0 - d3-chord: 3.0.1 - d3-color: 3.1.0 - d3-contour: 4.0.2 - d3-delaunay: 6.0.4 d3-dispatch: 3.0.1 d3-drag: 3.0.0 - d3-dsv: 3.0.1 - d3-ease: 3.0.1 - d3-fetch: 3.0.1 - d3-force: 3.0.0 - d3-format: 3.1.0 - d3-geo: 3.1.0 - d3-hierarchy: 3.1.2 d3-interpolate: 3.0.1 - d3-path: 3.1.0 - d3-polygon: 3.0.1 - d3-quadtree: 3.0.1 - d3-random: 3.0.1 - d3-scale: 4.0.2 - d3-scale-chromatic: 3.0.0 d3-selection: 3.0.0 - d3-shape: 3.2.0 - d3-time: 3.1.0 - d3-time-format: 4.1.0 - d3-timer: 3.0.1 d3-transition: 3.0.1(d3-selection@3.0.0) - d3-zoom: 3.0.0 - dev: true - /d3@7.9.0: - resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==} - engines: {node: '>=12'} + d3@7.9.0: dependencies: d3-array: 3.2.4 d3-axis: 3.0.0 @@ -8372,63 +12656,30 @@ packages: d3-timer: 3.0.1 d3-transition: 3.0.1(d3-selection@3.0.0) d3-zoom: 3.0.0 - dev: true - /data-uri-to-buffer@4.0.1: - resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} - engines: {node: '>= 12'} - dev: true + data-uri-to-buffer@4.0.1: {} - /de-indent@1.0.2: - resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} - dev: true + de-indent@1.0.2: {} - /debounce@1.2.1: - resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} - dev: true + debounce@1.2.1: {} - /debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + debug@2.6.9: dependencies: - ms: 2.0.0 - dev: true - - /debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + ms: 2.0.0 + + debug@3.2.7: dependencies: ms: 2.1.3 - dev: 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.4: dependencies: ms: 2.1.2 - /deep-eql@4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} - engines: {node: '>=6'} + deep-eql@4.1.3: dependencies: type-detect: 4.0.8 - dev: true - /deep-equal@2.2.2: - resolution: {integrity: sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA==} + deep-equal@2.2.2: dependencies: array-buffer-byte-length: 1.0.0 call-bind: 1.0.2 @@ -8448,85 +12699,49 @@ packages: which-boxed-primitive: 1.0.2 which-collection: 1.0.1 which-typed-array: 1.1.11 - dev: true - /deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - dev: true + deep-is@0.1.4: {} - /deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - dev: true + deepmerge@4.3.1: {} - /default-browser-id@3.0.0: - resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} - engines: {node: '>=12'} + default-browser-id@3.0.0: dependencies: bplist-parser: 0.2.0 untildify: 4.0.0 - dev: true - /default-browser-id@5.0.0: - resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} - engines: {node: '>=18'} - dev: true + default-browser-id@5.0.0: {} - /default-browser@5.2.1: - resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} - engines: {node: '>=18'} + default-browser@5.2.1: dependencies: bundle-name: 4.1.0 default-browser-id: 5.0.0 - dev: true - /default-gateway@6.0.3: - resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} - engines: {node: '>= 10'} + default-gateway@6.0.3: dependencies: execa: 5.1.1 - dev: true - /defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + defaults@1.0.4: dependencies: clone: 1.0.4 - dev: true - /define-data-property@1.1.1: - resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} - engines: {node: '>= 0.4'} + define-data-property@1.1.1: dependencies: get-intrinsic: 1.2.1 gopd: 1.0.1 has-property-descriptors: 1.0.0 - dev: true - /define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - dev: true + define-lazy-prop@2.0.0: {} - /define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} - dev: true + define-lazy-prop@3.0.0: {} - /define-properties@1.2.0: - resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} - engines: {node: '>= 0.4'} + define-properties@1.2.0: dependencies: has-property-descriptors: 1.0.0 object-keys: 1.1.1 - dev: true - /defu@6.1.2: - resolution: {integrity: sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ==} - dev: true + defu@6.1.2: {} - /del@6.1.1: - resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} - engines: {node: '>=10'} + del@6.1.1: dependencies: globby: 11.1.0 graceful-fs: 4.2.11 @@ -8536,234 +12751,131 @@ packages: p-map: 4.0.0 rimraf: 3.0.2 slash: 3.0.0 - dev: true - /delaunator@5.0.0: - resolution: {integrity: sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==} + delaunator@5.0.0: dependencies: robust-predicates: 3.0.2 - dev: true - /delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - dev: true + delayed-stream@1.0.0: {} - /depd@1.1.2: - resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} - engines: {node: '>= 0.6'} - dev: true + depd@1.1.2: {} - /depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - dev: true + depd@2.0.0: {} - /dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - dev: true + dequal@2.0.3: {} - /destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - dev: true + destroy@1.2.0: {} - /detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} - dev: true + detect-indent@6.1.0: {} - /detect-node-es@1.1.0: - resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + detect-node-es@1.1.0: {} - /detect-node@2.1.0: - resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} - dev: true + detect-node@2.1.0: {} - /detect-package-manager@2.0.1: - resolution: {integrity: sha512-j/lJHyoLlWi6G1LDdLgvUtz60Zo5GEj+sVYtTVXnYLDPuzgC3llMxonXym9zIwhhUII8vjdw0LXxavpLqTbl1A==} - engines: {node: '>=12'} + detect-package-manager@2.0.1: dependencies: execa: 5.1.1 - dev: true - /detect-port@1.5.1: - resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==} - hasBin: true + detect-port@1.5.1: dependencies: address: 1.2.2 debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: true - /dexie@3.2.7: - resolution: {integrity: sha512-2a+BXvVhY5op+smDRLxeBAivE7YcYaneXJ1la3HOkUfX9zKkE/AJ8CNgjiXbtXepFyFmJNGSbmjOwqbT749r/w==} - engines: {node: '>=6.0'} - dev: false + dexie@3.2.7: {} - /diff-match-patch@1.0.5: - resolution: {integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==} - dev: true + diff-match-patch@1.0.5: {} - /diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true + diff-sequences@29.6.3: {} - /dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} + dir-glob@3.0.1: dependencies: path-type: 4.0.0 - dev: true - /dns-packet@5.6.1: - resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} - engines: {node: '>=6'} + dns-packet@5.6.1: dependencies: '@leichtgewicht/ip-codec': 2.0.4 - dev: true - /doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} + doctrine@2.1.0: dependencies: esutils: 2.0.3 - dev: true - /doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} + doctrine@3.0.0: dependencies: esutils: 2.0.3 - dev: true - /dom-accessibility-api@0.5.16: - resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} - dev: true + dom-accessibility-api@0.5.16: {} - /dom-accessibility-api@0.6.3: - resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} - dev: true + dom-accessibility-api@0.6.3: {} - /dom-converter@0.2.0: - resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} + dom-converter@0.2.0: dependencies: utila: 0.4.0 - dev: true - /dom-serializer@1.4.1: - resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + dom-serializer@1.4.1: dependencies: domelementtype: 2.3.0 domhandler: 4.3.1 entities: 2.2.0 - dev: true - /dom-walk@0.1.2: - resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==} - dev: true + dom-walk@0.1.2: {} - /domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - dev: true + domelementtype@2.3.0: {} - /domhandler@4.3.1: - resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} - engines: {node: '>= 4'} + domhandler@4.3.1: dependencies: domelementtype: 2.3.0 - dev: true - /domutils@2.8.0: - resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + domutils@2.8.0: dependencies: dom-serializer: 1.4.1 domelementtype: 2.3.0 domhandler: 4.3.1 - dev: true - /dot-case@3.0.4: - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + dot-case@3.0.4: dependencies: no-case: 3.0.4 tslib: 2.6.2 - dev: true - /dotenv-expand@10.0.0: - resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} - engines: {node: '>=12'} - dev: true + dotenv-expand@10.0.0: {} - /dotenv@16.3.1: - resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==} - engines: {node: '>=12'} - dev: true + dotenv@16.3.1: {} - /duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - dev: true + duplexer@0.1.2: {} - /duplexify@3.7.1: - resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} + duplexify@3.7.1: dependencies: end-of-stream: 1.4.4 inherits: 2.0.4 readable-stream: 2.3.8 stream-shift: 1.0.1 - dev: true - /eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - dev: true + eastasianwidth@0.2.0: {} - /ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - dev: true + ee-first@1.1.1: {} - /ejs@3.1.9: - resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} - engines: {node: '>=0.10.0'} - hasBin: true + ejs@3.1.9: dependencies: jake: 10.8.7 - dev: true - /electron-to-chromium@1.4.614: - resolution: {integrity: sha512-X4ze/9Sc3QWs6h92yerwqv7aB/uU8vCjZcrMjA8N9R1pjMFRe44dLsck5FzLilOYvcXuDn93B+bpGYyufc70gQ==} + electron-to-chromium@1.4.614: {} - /emoji-regex@10.3.0: - resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} - dev: true + emoji-regex@10.3.0: {} - /emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - dev: true + emoji-regex@8.0.0: {} - /emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - dev: true + emoji-regex@9.2.2: {} - /emojis-list@3.0.0: - resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} - engines: {node: '>= 4'} - dev: true + emojis-list@3.0.0: {} - /encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} - dev: true + encodeurl@1.0.2: {} - /end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + end-of-stream@1.4.4: dependencies: once: 1.4.0 - dev: true - /engine.io-client@6.5.3: - resolution: {integrity: sha512-9Z0qLB0NIisTRt1DZ/8U2k12RJn8yls/nXMZLn+/N8hANT3TcYjKFKcwbw5zFQiN4NTde3TSY9zb79e1ij6j9Q==} + engine.io-client@6.5.3: dependencies: '@socket.io/component-emitter': 3.1.0 debug: 4.3.4 @@ -8774,65 +12886,38 @@ packages: - bufferutil - supports-color - utf-8-validate - dev: false - /engine.io-parser@5.2.1: - resolution: {integrity: sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==} - engines: {node: '>=10.0.0'} - dev: false + engine.io-parser@5.2.1: {} - /enhanced-resolve@5.15.0: - resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} - engines: {node: '>=10.13.0'} + enhanced-resolve@5.15.0: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 - dev: true - /enhanced-resolve@5.16.0: - resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} - engines: {node: '>=10.13.0'} + enhanced-resolve@5.16.0: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 - dev: true - /enquirer@2.3.6: - resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} - engines: {node: '>=8.6'} + enquirer@2.3.6: dependencies: ansi-colors: 4.1.3 - dev: true - /entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} - dev: true + entities@2.2.0: {} - /entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - dev: true + entities@4.5.0: {} - /envinfo@7.10.0: - resolution: {integrity: sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==} - engines: {node: '>=4'} - hasBin: true - dev: true + envinfo@7.10.0: {} - /error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 - /error-stack-parser@2.1.4: - resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + error-stack-parser@2.1.4: dependencies: stackframe: 1.3.4 - dev: true - /es-abstract@1.22.1: - resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==} - engines: {node: '>= 0.4'} + es-abstract@1.22.1: dependencies: array-buffer-byte-length: 1.0.0 arraybuffer.prototype.slice: 1.0.1 @@ -8873,10 +12958,8 @@ packages: typed-array-length: 1.0.4 unbox-primitive: 1.0.2 which-typed-array: 1.1.11 - dev: true - /es-get-iterator@1.1.3: - resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + es-get-iterator@1.1.3: dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 @@ -8887,60 +12970,37 @@ packages: is-string: 1.0.7 isarray: 2.0.5 stop-iteration-iterator: 1.0.0 - dev: true - /es-module-lexer@0.9.3: - resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} - dev: true + es-module-lexer@0.9.3: {} - /es-module-lexer@1.4.1: - resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==} - dev: true + es-module-lexer@1.4.1: {} - /es-set-tostringtag@2.0.1: - resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} - engines: {node: '>= 0.4'} + es-set-tostringtag@2.0.1: dependencies: get-intrinsic: 1.2.1 has: 1.0.3 has-tostringtag: 1.0.0 - dev: true - /es-shim-unscopables@1.0.0: - resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + es-shim-unscopables@1.0.0: dependencies: has: 1.0.3 - dev: true - /es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} + es-to-primitive@1.2.1: dependencies: is-callable: 1.2.7 is-date-object: 1.0.5 is-symbol: 1.0.4 - dev: true - /esbuild-plugin-alias@0.2.1: - resolution: {integrity: sha512-jyfL/pwPqaFXyKnj8lP8iLk6Z0m099uXR45aSN8Av1XD4vhvQutxxPzgA2bTcAwQpa1zCXDcWOlhFgyP3GKqhQ==} - dev: true + esbuild-plugin-alias@0.2.1: {} - /esbuild-register@3.5.0(esbuild@0.19.9): - resolution: {integrity: sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==} - peerDependencies: - esbuild: '>=0.12 <1' + esbuild-register@3.5.0(esbuild@0.19.9): dependencies: debug: 4.3.4 esbuild: 0.19.9 transitivePeerDependencies: - supports-color - dev: true - /esbuild@0.19.9: - resolution: {integrity: sha512-U9CHtKSy+EpPsEBa+/A2gMs/h3ylBC0H0KSqIg7tpztHerLi6nrrcoUJAkNCEPumx8yJ+Byic4BVwHgRbN0TBg==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true + esbuild@0.19.9: optionalDependencies: '@esbuild/android-arm': 0.19.9 '@esbuild/android-arm64': 0.19.9 @@ -8964,13 +13024,8 @@ packages: '@esbuild/win32-arm64': 0.19.9 '@esbuild/win32-ia32': 0.19.9 '@esbuild/win32-x64': 0.19.9 - dev: true - /esbuild@0.20.2: - resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true + esbuild@0.20.2: optionalDependencies: '@esbuild/aix-ppc64': 0.20.2 '@esbuild/android-arm': 0.20.2 @@ -8995,83 +13050,39 @@ packages: '@esbuild/win32-arm64': 0.20.2 '@esbuild/win32-ia32': 0.20.2 '@esbuild/win32-x64': 0.20.2 - dev: true - /escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} + escalade@3.1.1: {} - /escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - dev: true + escape-html@1.0.3: {} - /escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} + escape-string-regexp@1.0.5: {} - /escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} + escape-string-regexp@4.0.0: {} - /eslint-config-prettier@9.1.0(eslint@8.57.0): - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' + eslint-config-prettier@9.1.0(eslint@8.57.0): dependencies: eslint: 8.57.0 - dev: true - /eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7 is-core-module: 2.13.1 resolve: 1.22.4 transitivePeerDependencies: - supports-color - dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.6.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): - resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true + eslint-module-utils@2.8.0(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): dependencies: - '@typescript-eslint/parser': 7.6.0(eslint@8.57.0)(typescript@5.4.5) debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 7.6.0(eslint@8.57.0)(typescript@5.4.5) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.6.0)(eslint@8.57.0): - resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true + eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0): dependencies: - '@typescript-eslint/parser': 7.6.0(eslint@8.57.0)(typescript@5.4.5) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -9080,7 +13091,7 @@ packages: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.6.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -9090,83 +13101,48 @@ packages: object.values: 1.1.7 semver: 6.3.1 tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 7.6.0(eslint@8.57.0)(typescript@5.4.5) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - dev: true - /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5): - resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - '@types/eslint': '>=8.0.0' - eslint: '>=8.0.0' - eslint-config-prettier: '*' - prettier: '>=3.0.0' - peerDependenciesMeta: - '@types/eslint': - optional: true - eslint-config-prettier: - optional: true + eslint-plugin-prettier@5.1.3(@types/eslint@8.56.0)(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.2.5): dependencies: eslint: 8.57.0 - eslint-config-prettier: 9.1.0(eslint@8.57.0) prettier: 3.2.5 prettier-linter-helpers: 1.0.0 synckit: 0.8.8 - dev: true + optionalDependencies: + '@types/eslint': 8.56.0 + eslint-config-prettier: 9.1.0(eslint@8.57.0) - /eslint-plugin-react-hooks@4.6.0(eslint@8.57.0): - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + eslint-plugin-react-hooks@4.6.0(eslint@8.57.0): dependencies: eslint: 8.57.0 - dev: true - /eslint-plugin-react-refresh@0.4.6(eslint@8.57.0): - resolution: {integrity: sha512-NjGXdm7zgcKRkKMua34qVO9doI7VOxZ6ancSvBELJSSoX97jyndXcSoa8XBh69JoB31dNz3EEzlMcizZl7LaMA==} - peerDependencies: - eslint: '>=7' + eslint-plugin-react-refresh@0.4.6(eslint@8.57.0): dependencies: eslint: 8.57.0 - dev: true - /eslint-plugin-simple-import-sort@12.0.0(eslint@8.57.0): - resolution: {integrity: sha512-8o0dVEdAkYap0Cn5kNeklaKcT1nUsa3LITWEuFk3nJifOoD+5JQGoyDUW2W/iPWwBsNBJpyJS9y4je/BgxLcyQ==} - peerDependencies: - eslint: '>=5.0.0' + eslint-plugin-simple-import-sort@12.0.0(eslint@8.57.0): dependencies: eslint: 8.57.0 - dev: true - /eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} + eslint-scope@5.1.1: dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 - dev: true - /eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-scope@7.2.2: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 - dev: true - /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} - dev: true + eslint-visitor-keys@3.4.3: {} - /eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true + eslint@8.57.0: dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@eslint-community/regexpp': 4.7.0 @@ -9208,87 +13184,46 @@ packages: text-table: 0.2.0 transitivePeerDependencies: - supports-color - dev: true - /espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + espree@9.6.1: dependencies: acorn: 8.10.0 acorn-jsx: 5.3.2(acorn@8.10.0) eslint-visitor-keys: 3.4.3 - dev: true - /esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - dev: true + esprima@4.0.1: {} - /esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} + esquery@1.5.0: dependencies: estraverse: 5.3.0 - dev: true - /esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} + esrecurse@4.3.0: dependencies: estraverse: 5.3.0 - dev: true - /estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - dev: true + estraverse@4.3.0: {} - /estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - dev: true + estraverse@5.3.0: {} - /estree-walker@1.0.1: - resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} - dev: true + estree-walker@1.0.1: {} - /estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - dev: true + estree-walker@2.0.2: {} - /estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + estree-walker@3.0.3: dependencies: '@types/estree': 1.0.1 - dev: true - /esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - dev: true + esutils@2.0.3: {} - /etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - dev: true + etag@1.8.1: {} - /eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - dev: true + eventemitter3@4.0.7: {} - /eventemitter3@5.0.1: - resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} - dev: true + eventemitter3@5.0.1: {} - /events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - dev: true + events@3.3.0: {} - /execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} + execa@5.1.1: dependencies: cross-spawn: 7.0.3 get-stream: 6.0.1 @@ -9299,11 +13234,8 @@ packages: onetime: 5.1.2 signal-exit: 3.0.7 strip-final-newline: 2.0.0 - dev: true - /execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} + execa@8.0.1: dependencies: cross-spawn: 7.0.3 get-stream: 8.0.1 @@ -9314,15 +13246,10 @@ packages: onetime: 6.0.0 signal-exit: 4.1.0 strip-final-newline: 3.0.0 - dev: true - /exif-parser@0.1.12: - resolution: {integrity: sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==} - dev: true + exif-parser@0.1.12: {} - /express@4.18.2: - resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} - engines: {node: '>= 0.10.0'} + express@4.18.2: dependencies: accepts: 1.3.8 array-flatten: 1.1.1 @@ -9357,122 +13284,76 @@ packages: vary: 1.1.2 transitivePeerDependencies: - supports-color - dev: true - /fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - dev: true + fast-deep-equal@3.1.3: {} - /fast-diff@1.3.0: - resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - dev: true + fast-diff@1.3.0: {} - /fast-glob@3.3.1: - resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} - engines: {node: '>=8.6.0'} + fast-glob@3.3.1: dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.5 - dev: true - /fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} + fast-glob@3.3.2: dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.5 - dev: true - - /fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - dev: true - /fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - dev: true + fast-json-stable-stringify@2.1.0: {} - /fastest-levenshtein@1.0.16: - resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} - engines: {node: '>= 4.9.1'} - dev: true + fast-levenshtein@2.0.6: {} - /fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + fastest-levenshtein@1.0.16: {} + + fastq@1.15.0: dependencies: reusify: 1.0.4 - dev: true - /faye-websocket@0.11.4: - resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} - engines: {node: '>=0.8.0'} + faye-websocket@0.11.4: dependencies: websocket-driver: 0.7.4 - dev: true - /fetch-blob@3.2.0: - resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} - engines: {node: ^12.20 || >= 14.13} + fetch-blob@3.2.0: dependencies: node-domexception: 1.0.0 web-streams-polyfill: 3.2.1 - dev: true - /fetch-retry@5.0.6: - resolution: {integrity: sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ==} - dev: true + fetch-retry@5.0.6: {} - /figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} + figures@3.2.0: dependencies: escape-string-regexp: 1.0.5 - dev: true - /file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + file-entry-cache@6.0.1: dependencies: flat-cache: 3.0.4 - dev: true - /file-system-cache@2.3.0: - resolution: {integrity: sha512-l4DMNdsIPsVnKrgEXbJwDJsA5mB8rGwHYERMgqQx/xAUtChPJMre1bXBzDEqqVbWv9AIbFezXMxeEkZDSrXUOQ==} + file-system-cache@2.3.0: dependencies: fs-extra: 11.1.1 ramda: 0.29.0 - dev: true - /file-type@16.5.4: - resolution: {integrity: sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==} - engines: {node: '>=10'} + file-type@16.5.4: dependencies: readable-web-to-node-stream: 3.0.2 strtok3: 6.3.0 token-types: 4.2.1 - dev: true - /filelist@1.0.4: - resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + filelist@1.0.4: dependencies: minimatch: 5.1.6 - dev: true - /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} + fill-range@7.0.1: dependencies: to-regex-range: 5.0.1 - dev: true - /finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} - engines: {node: '>= 0.8'} + finalhandler@1.2.0: dependencies: debug: 2.6.9 encodeurl: 1.0.2 @@ -9483,292 +13364,161 @@ packages: unpipe: 1.0.0 transitivePeerDependencies: - supports-color - dev: true - /find-cache-dir@2.1.0: - resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==} - engines: {node: '>=6'} + find-cache-dir@2.1.0: dependencies: commondir: 1.0.1 make-dir: 2.1.0 pkg-dir: 3.0.0 - dev: true - /find-cache-dir@3.3.2: - resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} - engines: {node: '>=8'} + find-cache-dir@3.3.2: dependencies: commondir: 1.0.1 make-dir: 3.1.0 pkg-dir: 4.2.0 - dev: true - /find-root@1.1.0: - resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + find-root@1.1.0: {} - /find-up@3.0.0: - resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} - engines: {node: '>=6'} + find-up@3.0.0: dependencies: locate-path: 3.0.0 - dev: true - /find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} + find-up@4.1.0: dependencies: locate-path: 5.0.0 path-exists: 4.0.0 - dev: true - /find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} + find-up@5.0.0: dependencies: locate-path: 6.0.0 path-exists: 4.0.0 - dev: true - /flat-cache@3.0.4: - resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} - engines: {node: ^10.12.0 || >=12.0.0} + flat-cache@3.0.4: dependencies: flatted: 3.2.7 rimraf: 3.0.2 - dev: true - /flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true - dev: true + flat@5.0.2: {} - /flatted@3.2.7: - resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} - dev: true + flatted@3.2.7: {} - /flow-parser@0.215.1: - resolution: {integrity: sha512-qq3rdRToqwesrddyXf+Ml8Tuf7TdoJS+EMbJgC6fHAVoBCXjb4mHelNd3J+jD8ts0bSHX81FG3LN7Qn/dcl6pA==} - engines: {node: '>=0.4.0'} - dev: true + flow-parser@0.215.1: {} - /follow-redirects@1.15.5: - resolution: {integrity: sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - dev: true + follow-redirects@1.15.5: {} - /for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + for-each@0.3.3: dependencies: is-callable: 1.2.7 - dev: true - /foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} - engines: {node: '>=14'} + foreground-child@3.1.1: dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 - dev: true - /form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} + form-data@4.0.0: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 - dev: true - /formdata-polyfill@4.0.10: - resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} - engines: {node: '>=12.20.0'} + formdata-polyfill@4.0.10: dependencies: fetch-blob: 3.2.0 - dev: true - /forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} - dev: true + forwarded@0.2.0: {} - /framer-motion@11.0.28(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-j/vNYTCH5MX5sY/3dwMs00z1+qAqKX3iIHF762bwqlU814ooD5dDbuj3pA0LmIT5YqyryCkXEb/q+zRblin0lw==} - peerDependencies: - '@emotion/is-prop-valid': '*' - react: ^18.0.0 - react-dom: ^18.0.0 - peerDependenciesMeta: - '@emotion/is-prop-valid': - optional: true - react: - optional: true - react-dom: - optional: true + framer-motion@11.0.28(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: + tslib: 2.6.2 + optionalDependencies: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - tslib: 2.6.2 - dev: true - /fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} - dev: true + fresh@0.5.2: {} - /fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - dev: true + fs-constants@1.0.0: {} - /fs-extra@11.1.1: - resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} - engines: {node: '>=14.14'} + fs-extra@11.1.1: dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.0 - dev: true - /fs-extra@7.0.1: - resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} - engines: {node: '>=6 <7 || >=8'} + fs-extra@7.0.1: dependencies: graceful-fs: 4.2.11 jsonfile: 4.0.0 universalify: 0.1.2 - dev: true - /fs-extra@9.1.0: - resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} - engines: {node: '>=10'} + fs-extra@9.1.0: dependencies: at-least-node: 1.0.0 graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.0 - dev: true - /fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} + fs-minipass@2.1.0: dependencies: minipass: 3.3.6 - dev: true - /fs-monkey@1.0.5: - resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} - dev: true + fs-monkey@1.0.5: {} - /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - dev: true + fs.realpath@1.0.0: {} - /fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - dev: true + fsevents@2.3.3: optional: true - /function-bind@1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - dev: true + function-bind@1.1.1: {} - /function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + function-bind@1.1.2: {} - /function.prototype.name@1.1.5: - resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} - engines: {node: '>= 0.4'} + function.prototype.name@1.1.5: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 es-abstract: 1.22.1 functions-have-names: 1.2.3 - dev: true - /functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - dev: true + functions-have-names@1.2.3: {} - /fuse.js@7.0.0: - resolution: {integrity: sha512-14F4hBIxqKvD4Zz/XjDc3y94mNZN6pRv3U13Udo0lNLCWRBUsrMv2xwcF/y/Z5sV6+FQW+/ow68cHpm4sunt8Q==} - engines: {node: '>=10'} - dev: true + fuse.js@7.0.0: {} - /gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} + gensync@1.0.0-beta.2: {} - /get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - dev: true + get-caller-file@2.0.5: {} - /get-east-asian-width@1.2.0: - resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} - engines: {node: '>=18'} - dev: true + get-east-asian-width@1.2.0: {} - /get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - dev: true + get-func-name@2.0.2: {} - /get-intrinsic@1.2.1: - resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} + get-intrinsic@1.2.1: dependencies: function-bind: 1.1.1 has: 1.0.3 has-proto: 1.0.1 has-symbols: 1.0.3 - dev: true - /get-nonce@1.0.1: - resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} - engines: {node: '>=6'} + get-nonce@1.0.1: {} - /get-npm-tarball-url@2.0.3: - resolution: {integrity: sha512-R/PW6RqyaBQNWYaSyfrh54/qtcnOp22FHCCiRhSSZj0FP3KQWCsxxt0DzIdVTbwTqe9CtQfvl/FPD4UIPt4pqw==} - engines: {node: '>=12.17'} - dev: true + get-npm-tarball-url@2.0.3: {} - /get-own-enumerable-property-symbols@3.0.2: - resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} - dev: true + get-own-enumerable-property-symbols@3.0.2: {} - /get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - dev: true + get-stream@6.0.1: {} - /get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} - dev: true + get-stream@8.0.1: {} - /get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} - engines: {node: '>= 0.4'} + get-symbol-description@1.0.0: dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 - dev: true - /gifwrap@0.9.4: - resolution: {integrity: sha512-MDMwbhASQuVeD4JKd1fKgNgCRL3fGqMM4WaqpNhWO0JiMOAjbQdumbs4BbBZEy9/M00EHEjKN3HieVhCUlwjeQ==} + gifwrap@0.9.4: dependencies: image-q: 4.0.0 omggif: 1.0.10 - dev: true - /giget@1.1.2: - resolution: {integrity: sha512-HsLoS07HiQ5oqvObOI+Qb2tyZH4Gj5nYGfF9qQcZNrPw+uEFhdXtgJr01aO2pWadGHucajYDLxxbtQkm97ON2A==} - hasBin: true + giget@1.1.2: dependencies: colorette: 2.0.20 defu: 6.1.2 @@ -9779,56 +13529,36 @@ packages: tar: 6.1.15 transitivePeerDependencies: - supports-color - dev: true - /github-slugger@2.0.0: - resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} - dev: true + github-slugger@2.0.0: {} - /glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 - dev: true - /glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} + glob-parent@6.0.2: dependencies: is-glob: 4.0.3 - dev: true - /glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - dev: true + glob-to-regexp@0.4.1: {} - /glob@10.3.12: - resolution: {integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true + glob@10.3.12: dependencies: foreground-child: 3.1.1 jackspeak: 2.3.6 minimatch: 9.0.4 minipass: 7.0.4 path-scurry: 1.10.2 - dev: true - /glob@10.3.4: - resolution: {integrity: sha512-6LFElP3A+i/Q8XQKEvZjkEWEOTgAIALR9AO2rwT8bgPhDd1anmqDJDZ6lLddI4ehxxxR1S5RIqKe1uapMQfYaQ==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true + glob@10.3.4: dependencies: foreground-child: 3.1.1 jackspeak: 2.3.1 minimatch: 9.0.3 minipass: 7.0.3 path-scurry: 1.10.1 - dev: true - /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + glob@7.2.3: dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -9836,36 +13566,23 @@ packages: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 - dev: true - /global@4.4.0: - resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==} + global@4.4.0: dependencies: min-document: 2.19.0 process: 0.11.10 - dev: true - /globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} + globals@11.12.0: {} - /globals@13.21.0: - resolution: {integrity: sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==} - engines: {node: '>=8'} + globals@13.21.0: dependencies: type-fest: 0.20.2 - dev: true - /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} + globalthis@1.0.3: dependencies: define-properties: 1.2.0 - dev: true - /globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} + globby@11.1.0: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 @@ -9873,11 +13590,8 @@ packages: ignore: 5.2.4 merge2: 1.4.1 slash: 3.0.0 - dev: true - /globby@14.0.1: - resolution: {integrity: sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==} - engines: {node: '>=18'} + globby@14.0.1: dependencies: '@sindresorhus/merge-streams': 2.3.0 fast-glob: 3.3.2 @@ -9885,29 +13599,18 @@ packages: path-type: 5.0.0 slash: 5.1.0 unicorn-magic: 0.1.0 - dev: true - /globrex@0.1.2: - resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - dev: true + globrex@0.1.2: {} - /gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + gopd@1.0.1: dependencies: get-intrinsic: 1.2.1 - dev: true - /graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - dev: true + graceful-fs@4.2.11: {} - /graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - dev: true + graphemer@1.4.0: {} - /gunzip-maybe@1.4.2: - resolution: {integrity: sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==} - hasBin: true + gunzip-maybe@1.4.2: dependencies: browserify-zlib: 0.1.4 is-deflate: 1.0.0 @@ -9915,23 +13618,14 @@ packages: peek-stream: 1.1.3 pumpify: 1.5.1 through2: 2.0.5 - dev: true - /gzip-size@6.0.0: - resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} - engines: {node: '>=10'} + gzip-size@6.0.0: dependencies: duplexer: 0.1.2 - dev: true - /handle-thing@2.0.1: - resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} - dev: true + handle-thing@2.0.1: {} - /handlebars@4.7.8: - resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} - engines: {node: '>=0.4.7'} - hasBin: true + handlebars@4.7.8: dependencies: minimist: 1.2.8 neo-async: 2.6.2 @@ -9939,122 +13633,67 @@ packages: wordwrap: 1.0.0 optionalDependencies: uglify-js: 3.17.4 - dev: true - /has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - dev: true + has-bigints@1.0.2: {} - /has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} + has-flag@3.0.0: {} - /has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - dev: true + has-flag@4.0.0: {} - /has-property-descriptors@1.0.0: - resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + has-property-descriptors@1.0.0: dependencies: get-intrinsic: 1.2.1 - dev: true - /has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} - engines: {node: '>= 0.4'} - dev: true + has-proto@1.0.1: {} - /has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} - dev: true + has-symbols@1.0.3: {} - /has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} - engines: {node: '>= 0.4'} + has-tostringtag@1.0.0: dependencies: has-symbols: 1.0.3 - dev: true - /has@1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} + has@1.0.3: dependencies: function-bind: 1.1.1 - dev: true - /hasown@2.0.0: - resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} - engines: {node: '>= 0.4'} + hasown@2.0.0: dependencies: function-bind: 1.1.2 - /hast-util-heading-rank@3.0.0: - resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==} + hast-util-heading-rank@3.0.0: dependencies: '@types/hast': 3.0.4 - dev: true - /hast-util-is-element@3.0.0: - resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + hast-util-is-element@3.0.0: dependencies: '@types/hast': 3.0.4 - dev: true - /hast-util-to-string@3.0.0: - resolution: {integrity: sha512-OGkAxX1Ua3cbcW6EJ5pT/tslVb90uViVkcJ4ZZIMW/R33DX/AkcJcRrPebPwJkHYwlDHXz4aIwvAAaAdtrACFA==} + hast-util-to-string@3.0.0: dependencies: '@types/hast': 3.0.4 - dev: true - /he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - dev: true - - /highlight-words-core@1.2.2: - resolution: {integrity: sha512-BXUKIkUuh6cmmxzi5OIbUJxrG8OAk2MqoL1DtO3Wo9D2faJg2ph5ntyuQeLqaHJmzER6H5tllCDA9ZnNe9BVGg==} - dev: true + he@1.2.0: {} - /highlight.js@10.7.3: - resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} - dev: true + highlight-words-core@1.2.2: {} - /highlightjs-graphql@1.0.2: - resolution: {integrity: sha512-jShTftpKQDwMXc+7OHOpHXRYSweT08EO2YOIcLbwU00e9yuwJMYXGLF1eiDO0aUPeQU4/5EjAh5HtPt3ly7rvg==} - dev: true - - /hoist-non-react-statics@3.3.2: - resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + hoist-non-react-statics@3.3.2: dependencies: react-is: 16.13.1 - /hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - dev: true + hosted-git-info@2.8.9: {} - /hpack.js@2.1.6: - resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} + hpack.js@2.1.6: dependencies: inherits: 2.0.4 obuf: 1.1.2 readable-stream: 2.3.8 wbuf: 1.7.3 - dev: true - /html-entities@2.4.0: - resolution: {integrity: sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==} - dev: true + html-entities@2.4.0: {} - /html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - dev: true + html-escaper@2.0.2: {} - /html-minifier-terser@6.1.0: - resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} - engines: {node: '>=12'} - hasBin: true + html-minifier-terser@6.1.0: dependencies: camel-case: 4.1.2 clean-css: 5.3.3 @@ -10063,748 +13702,415 @@ packages: param-case: 3.0.4 relateurl: 0.2.7 terser: 5.26.0 - dev: true - /html-to-image@1.11.11: - resolution: {integrity: sha512-9gux8QhvjRO/erSnDPv28noDZcPZmYE7e1vFsBLKLlRlKDSqNJYebj6Qz1TGd5lsRV+X+xYyjCKjuZdABinWjA==} - dev: true + html-to-image@1.11.11: {} - /html-webpack-plugin@5.6.0(webpack@5.91.0): - resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==} - engines: {node: '>=10.13.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - webpack: ^5.20.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true + html-webpack-plugin@5.6.0(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 lodash: 4.17.21 pretty-error: 4.0.0 tapable: 2.2.1 + optionalDependencies: webpack: 5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4) - dev: true - /htmlparser2@6.1.0: - resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} + htmlparser2@6.1.0: dependencies: domelementtype: 2.3.0 domhandler: 4.3.1 domutils: 2.8.0 entities: 2.2.0 - dev: true - /http-deceiver@1.2.7: - resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} - dev: true + http-deceiver@1.2.7: {} - /http-errors@1.6.3: - resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} - engines: {node: '>= 0.6'} + http-errors@1.6.3: dependencies: depd: 1.1.2 inherits: 2.0.3 setprototypeof: 1.1.0 statuses: 1.5.0 - dev: true - /http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} + http-errors@2.0.0: dependencies: depd: 2.0.0 inherits: 2.0.4 setprototypeof: 1.2.0 statuses: 2.0.1 toidentifier: 1.0.1 - dev: true - /http-parser-js@0.5.8: - resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} - dev: true + http-parser-js@0.5.8: {} - /http-proxy-middleware@2.0.6(@types/express@4.17.21): - resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@types/express': ^4.17.13 - peerDependenciesMeta: - '@types/express': - optional: true + http-proxy-middleware@2.0.6(@types/express@4.17.21): dependencies: - '@types/express': 4.17.21 '@types/http-proxy': 1.17.14 http-proxy: 1.18.1 is-glob: 4.0.3 is-plain-obj: 3.0.0 micromatch: 4.0.5 + optionalDependencies: + '@types/express': 4.17.21 transitivePeerDependencies: - debug - dev: true - /http-proxy@1.18.1: - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} - engines: {node: '>=8.0.0'} + http-proxy@1.18.1: dependencies: eventemitter3: 4.0.7 follow-redirects: 1.15.5 requires-port: 1.0.0 transitivePeerDependencies: - debug - dev: true - /https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} + https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: true - /human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - dev: true + human-signals@2.1.0: {} - /human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} - dev: true + human-signals@5.0.0: {} - /husky@9.0.11: - resolution: {integrity: sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==} - engines: {node: '>=18'} - hasBin: true - dev: true + husky@9.0.11: {} - /iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} + iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 - dev: true - /iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} + iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 - dev: true - /icss-utils@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + icss-utils@5.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 - dev: true - /idb@7.1.1: - resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} + idb@7.1.1: {} - /ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - dev: true + ieee754@1.2.1: {} - /ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} - engines: {node: '>= 4'} - dev: true + ignore@5.2.4: {} - /ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} - engines: {node: '>= 4'} - dev: true + ignore@5.3.1: {} - /image-q@4.0.0: - resolution: {integrity: sha512-PfJGVgIfKQJuq3s0tTDOKtztksibuUEbJQIYT3by6wctQo+Rdlh7ef4evJ5NCdxY4CfMbvFkocEwbl4BF8RlJw==} + image-q@4.0.0: dependencies: '@types/node': 16.9.1 - dev: true - /immer@10.0.4: - resolution: {integrity: sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw==} - dev: false + immer@10.0.4: {} - /immutable@4.3.4: - resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==} - dev: true + immutable@4.3.4: {} - /import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} + import-fresh@3.3.0: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 - /import-lazy@4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} - engines: {node: '>=8'} - dev: true + import-lazy@4.0.0: {} - /import-local@3.1.0: - resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} - engines: {node: '>=8'} - hasBin: true + import-local@3.1.0: dependencies: pkg-dir: 4.2.0 resolve-cwd: 3.0.0 - dev: true - /imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - dev: true + imurmurhash@0.1.4: {} - /indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - dev: true + indent-string@4.0.0: {} - /inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + inflight@1.0.6: dependencies: once: 1.4.0 wrappy: 1.0.2 - dev: true - /inherits@2.0.3: - resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} - dev: true + inherits@2.0.3: {} - /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - dev: true + inherits@2.0.4: {} - /internal-slot@1.0.5: - resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} - engines: {node: '>= 0.4'} + internal-slot@1.0.5: dependencies: get-intrinsic: 1.2.1 has: 1.0.3 side-channel: 1.0.4 - dev: true - /internmap@2.0.3: - resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} - engines: {node: '>=12'} - dev: true + internmap@2.0.3: {} - /interpret@3.1.1: - resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} - engines: {node: '>=10.13.0'} - dev: true + interpret@3.1.1: {} - /invariant@2.2.4: - resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + invariant@2.2.4: dependencies: loose-envify: 1.4.0 - /ip@2.0.1: - resolution: {integrity: sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==} - dev: true + ip@2.0.1: {} - /ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} - dev: true + ipaddr.js@1.9.1: {} - /ipaddr.js@2.1.0: - resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==} - engines: {node: '>= 10'} - dev: true + ipaddr.js@2.1.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} - dev: true + is-absolute-url@4.0.1: {} - /is-arguments@1.1.1: - resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} - engines: {node: '>= 0.4'} + is-arguments@1.1.1: dependencies: call-bind: 1.0.2 has-tostringtag: 1.0.0 - dev: true - /is-array-buffer@3.0.2: - resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + is-array-buffer@3.0.2: dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 is-typed-array: 1.1.12 - dev: true - /is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + is-arrayish@0.2.1: {} - /is-arrayish@0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - dev: true + is-arrayish@0.3.2: {} - /is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + is-bigint@1.0.4: dependencies: has-bigints: 1.0.2 - dev: true - /is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} + is-binary-path@2.1.0: dependencies: binary-extensions: 2.2.0 - dev: true - /is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} + is-boolean-object@1.1.2: dependencies: call-bind: 1.0.2 has-tostringtag: 1.0.0 - dev: true - /is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - dev: true + is-callable@1.2.7: {} - /is-core-module@2.13.0: - resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} + is-core-module@2.13.0: dependencies: has: 1.0.3 - dev: true - /is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + is-core-module@2.13.1: dependencies: hasown: 2.0.0 - /is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} + is-date-object@1.0.5: dependencies: has-tostringtag: 1.0.0 - dev: true - /is-deflate@1.0.0: - resolution: {integrity: sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ==} - dev: true + is-deflate@1.0.0: {} - /is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - dev: true + is-docker@2.2.1: {} - /is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true - dev: true + is-docker@3.0.0: {} - /is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - dev: true + is-extglob@2.1.1: {} - /is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - dev: true + is-fullwidth-code-point@3.0.0: {} - /is-fullwidth-code-point@4.0.0: - resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} - engines: {node: '>=12'} - dev: true + is-fullwidth-code-point@4.0.0: {} - /is-fullwidth-code-point@5.0.0: - resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} - engines: {node: '>=18'} + is-fullwidth-code-point@5.0.0: dependencies: get-east-asian-width: 1.2.0 - dev: true - /is-function@1.0.2: - resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==} - dev: true + is-function@1.0.2: {} - /is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} - engines: {node: '>= 0.4'} + is-generator-function@1.0.10: dependencies: has-tostringtag: 1.0.0 - dev: true - /is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} + is-glob@4.0.3: dependencies: is-extglob: 2.1.1 - dev: true - /is-gzip@1.0.0: - resolution: {integrity: sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ==} - engines: {node: '>=0.10.0'} - dev: true + is-gzip@1.0.0: {} - /is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} - hasBin: true + is-inside-container@1.0.0: dependencies: is-docker: 3.0.0 - dev: true - /is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - dev: true + is-interactive@1.0.0: {} - /is-map@2.0.2: - resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} - dev: true + is-map@2.0.2: {} - /is-module@1.0.0: - resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} - dev: true + is-module@1.0.0: {} - /is-nan@1.3.2: - resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} - engines: {node: '>= 0.4'} + is-nan@1.3.2: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - dev: true - /is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} - engines: {node: '>= 0.4'} - dev: true + is-negative-zero@2.0.2: {} - /is-network-error@1.1.0: - resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==} - engines: {node: '>=16'} - dev: true + is-network-error@1.1.0: {} - /is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} + is-number-object@1.0.7: dependencies: has-tostringtag: 1.0.0 - dev: true - /is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - dev: true + is-number@7.0.0: {} - /is-obj@1.0.1: - resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} - engines: {node: '>=0.10.0'} - dev: true + is-obj@1.0.1: {} - /is-path-cwd@2.2.0: - resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} - engines: {node: '>=6'} - dev: true + is-path-cwd@2.2.0: {} - /is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - dev: true + is-path-inside@3.0.3: {} - /is-plain-obj@3.0.0: - resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} - engines: {node: '>=10'} - dev: true + is-plain-obj@3.0.0: {} - /is-plain-object@2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} - engines: {node: '>=0.10.0'} + is-plain-object@2.0.4: dependencies: isobject: 3.0.1 - dev: true - /is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} + is-regex@1.1.4: dependencies: call-bind: 1.0.2 has-tostringtag: 1.0.0 - dev: true - /is-regexp@1.0.0: - resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} - engines: {node: '>=0.10.0'} - dev: true + is-regexp@1.0.0: {} - /is-set@2.0.2: - resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} - dev: true + is-set@2.0.2: {} - /is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + is-shared-array-buffer@1.0.2: dependencies: call-bind: 1.0.2 - dev: true - /is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - dev: true + is-stream@2.0.1: {} - /is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true + is-stream@3.0.0: {} - /is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} + is-string@1.0.7: dependencies: has-tostringtag: 1.0.0 - dev: true - /is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} + is-symbol@1.0.4: dependencies: has-symbols: 1.0.3 - dev: true - /is-typed-array@1.1.12: - resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} - engines: {node: '>= 0.4'} + is-typed-array@1.1.12: dependencies: which-typed-array: 1.1.11 - dev: true - /is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - dev: true + is-unicode-supported@0.1.0: {} - /is-weakmap@2.0.1: - resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} - dev: true + is-weakmap@2.0.1: {} - /is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + is-weakref@1.0.2: dependencies: call-bind: 1.0.2 - dev: true - /is-weakset@2.0.2: - resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + is-weakset@2.0.2: dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 - dev: true - /is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} + is-wsl@2.2.0: dependencies: is-docker: 2.2.1 - dev: true - /is-wsl@3.1.0: - resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} - engines: {node: '>=16'} + is-wsl@3.1.0: dependencies: is-inside-container: 1.0.0 - dev: true - /isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - dev: true + isarray@1.0.0: {} - /isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - dev: true + isarray@2.0.5: {} - /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - dev: true + isexe@2.0.0: {} - /isobject@3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} - engines: {node: '>=0.10.0'} - dev: true + isobject@3.0.1: {} - /jackspeak@2.3.1: - resolution: {integrity: sha512-4iSY3Bh1Htv+kLhiiZunUhQ+OYXIn0ze3ulq8JeWrFKmhPAJSySV2+kdtRh2pGcCeF0s6oR8Oc+pYZynJj4t8A==} - engines: {node: '>=14'} + jackspeak@2.3.1: dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 - dev: true - /jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} + jackspeak@2.3.6: dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 - dev: true - /jake@10.8.7: - resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} - engines: {node: '>=10'} - hasBin: true + jake@10.8.7: dependencies: async: 3.2.4 chalk: 4.1.2 filelist: 1.0.4 minimatch: 3.1.2 - dev: true - /javascript-stringify@2.1.0: - resolution: {integrity: sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==} - dev: true + javascript-stringify@2.1.0: {} - /jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + 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 - dev: true - /jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true + jest-get-type@29.6.3: {} - /jest-worker@26.6.2: - resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} - engines: {node: '>= 10.13.0'} + jest-worker@26.6.2: dependencies: '@types/node': 18.19.31 merge-stream: 2.0.0 supports-color: 7.2.0 - dev: true - /jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} + jest-worker@27.5.1: dependencies: '@types/node': 18.19.31 merge-stream: 2.0.0 supports-color: 8.1.1 - dev: true - /jimp@0.16.1: - resolution: {integrity: sha512-+EKVxbR36Td7Hfd23wKGIeEyHbxShZDX6L8uJkgVW3ESA9GiTEPK08tG1XI2r/0w5Ch0HyJF5kPqF9K7EmGjaw==} + jimp@0.16.1: dependencies: '@babel/runtime': 7.22.11 '@jimp/custom': 0.16.13 '@jimp/plugins': 0.16.13(@jimp/custom@0.16.13) '@jimp/types': 0.16.13(@jimp/custom@0.16.13) regenerator-runtime: 0.13.11 - dev: true - /jju@1.4.0: - resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} - dev: true + jju@1.4.0: {} - /jotai-devtools@0.8.0(@emotion/react@11.11.4)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0)(redux@5.0.1): - resolution: {integrity: sha512-dSxiDuEz/fvgxC5hCWJfRHTSaDz8RBaQ2DUO3SJqvskIP44BUxx5EJSQHN9WdbPqp9VQ2Db8yIR9jLGbpnuLtA==} - engines: {node: '>=14.0.0'} - peerDependencies: - '@emotion/react': '>=11.0.0' - react: '>=17.0.0' + jotai-devtools@0.8.0(@emotion/react@11.11.4(@types/react@18.2.77)(react@18.2.0))(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(redux@5.0.1): dependencies: '@emotion/react': 11.11.4(@types/react@18.2.77)(react@18.2.0) - '@mantine/core': 6.0.21(@emotion/react@11.11.4)(@mantine/hooks@6.0.21)(@types/react@18.2.77)(react-dom@18.2.0)(react@18.2.0) + '@mantine/core': 6.0.21(@emotion/react@11.11.4(@types/react@18.2.77)(react@18.2.0))(@mantine/hooks@6.0.21(react@18.2.0))(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mantine/hooks': 6.0.21(react@18.2.0) - '@mantine/prism': 6.0.21(@mantine/core@6.0.21)(@mantine/hooks@6.0.21)(react-dom@18.2.0)(react@18.2.0) + '@mantine/prism': 6.0.21(@mantine/core@6.0.21(@emotion/react@11.11.4(@types/react@18.2.77)(react@18.2.0))(@mantine/hooks@6.0.21(react@18.2.0))(@types/react@18.2.77)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@mantine/hooks@6.0.21(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@redux-devtools/extension': 3.3.0(redux@5.0.1) javascript-stringify: 2.1.0 jsondiffpatch: 0.5.0 react: 18.2.0 react-error-boundary: 4.0.12(react@18.2.0) react-json-tree: 0.18.0(@types/react@18.2.77)(react@18.2.0) - react-resizable-panels: 0.0.54(react-dom@18.2.0)(react@18.2.0) + react-resizable-panels: 0.0.54(react-dom@18.2.0(react@18.2.0))(react@18.2.0) transitivePeerDependencies: - '@types/react' - react-dom - redux - dev: true - /jotai-immer@0.3.0(immer@10.0.4)(jotai@2.8.0)(react@18.2.0): - resolution: {integrity: sha512-k+o4rWfWWLyHfucHAdoiN+l8flxMrKC/bEFvJA98znj+kbPW5R90EPa1u8mhWLJTABW3xjAp7Z3kyD3FVi0Hgw==} - peerDependencies: - immer: '*' - jotai: '>=2.0.0' - react: '>=17.0.0' + jotai-immer@0.3.0(immer@10.0.4)(jotai@2.8.0(@types/react@18.2.77)(react@18.2.0))(react@18.2.0): dependencies: immer: 10.0.4 jotai: 2.8.0(@types/react@18.2.77)(react@18.2.0) react: 18.2.0 - dev: false - /jotai@2.8.0(@types/react@18.2.77)(react@18.2.0): - resolution: {integrity: sha512-yZNMC36FdLOksOr8qga0yLf14miCJlEThlp5DeFJNnqzm2+ZG7wLcJzoOyij5K6U6Xlc5ljQqPDlJRgqW0Y18g==} - engines: {node: '>=12.20.0'} - peerDependencies: - '@types/react': '>=17.0.0' - react: '>=17.0.0' - peerDependenciesMeta: - '@types/react': - optional: true - react: - optional: true - dependencies: + jotai@2.8.0(@types/react@18.2.77)(react@18.2.0): + optionalDependencies: '@types/react': 18.2.77 react: 18.2.0 - dev: false - /jpeg-js@0.4.4: - resolution: {integrity: sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==} - dev: true + jpeg-js@0.4.4: {} - /js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-tokens@4.0.0: {} - /js-tokens@9.0.0: - resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} - dev: true + js-tokens@9.0.0: {} - /js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true + js-yaml@3.14.1: dependencies: argparse: 1.0.10 esprima: 4.0.1 - dev: true - /js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true + js-yaml@4.1.0: dependencies: argparse: 2.0.1 - dev: true - /jscodeshift@0.15.1(@babel/preset-env@7.23.6): - resolution: {integrity: sha512-hIJfxUy8Rt4HkJn/zZPU9ChKfKZM1342waJ1QC2e2YsPcWhM+3BJ4dcfQCzArTrk1jJeNLB341H+qOcEHRxJZg==} - hasBin: true - peerDependencies: - '@babel/preset-env': ^7.1.6 - peerDependenciesMeta: - '@babel/preset-env': - optional: true + jscodeshift@0.15.1(@babel/preset-env@7.23.6(@babel/core@7.24.4)): dependencies: '@babel/core': 7.24.4 '@babel/parser': 7.24.0 @@ -10813,7 +14119,6 @@ packages: '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.24.4) '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.24.4) '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.24.4) - '@babel/preset-env': 7.23.6(@babel/core@7.24.4) '@babel/preset-flow': 7.23.3(@babel/core@7.24.4) '@babel/preset-typescript': 7.23.3(@babel/core@7.24.4) '@babel/register': 7.22.15(@babel/core@7.24.4) @@ -10827,144 +14132,81 @@ packages: recast: 0.23.6 temp: 0.8.4 write-file-atomic: 2.4.3 + optionalDependencies: + '@babel/preset-env': 7.23.6(@babel/core@7.24.4) transitivePeerDependencies: - supports-color - dev: true - /jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true - dev: true + jsesc@0.5.0: {} - /jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true + jsesc@2.5.2: {} - /json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + json-parse-even-better-errors@2.3.1: {} - /json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - dev: true + json-schema-traverse@0.4.1: {} - /json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - dev: true + json-schema-traverse@1.0.0: {} - /json-schema@0.4.0: - resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} - dev: true + json-schema@0.4.0: {} - /json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - dev: true + json-stable-stringify-without-jsonify@1.0.1: {} - /json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true + json5@1.0.2: dependencies: minimist: 1.2.8 - dev: true - /json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true + json5@2.2.3: {} - /jsonc-parser@3.2.0: - resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - dev: true + jsonc-parser@3.2.0: {} - /jsondiffpatch@0.5.0: - resolution: {integrity: sha512-Quz3MvAwHxVYNXsOByL7xI5EB2WYOeFswqaHIA3qOK3isRWTxiplBEocmmru6XmxDB2L7jDNYtYA4FyimoAFEw==} - engines: {node: '>=8.17.0'} - hasBin: true + jsondiffpatch@0.5.0: dependencies: chalk: 3.0.0 diff-match-patch: 1.0.5 - dev: true - bundledDependencies: [] - /jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + jsonfile@4.0.0: optionalDependencies: graceful-fs: 4.2.11 - dev: true - /jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + jsonfile@6.1.0: dependencies: universalify: 2.0.0 optionalDependencies: graceful-fs: 4.2.11 - dev: true - /jsonpointer@5.0.1: - resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} - engines: {node: '>=0.10.0'} - dev: true + jsonpointer@5.0.1: {} - /kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - dev: true + kind-of@6.0.3: {} - /kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - dev: true + kleur@3.0.3: {} - /kolorist@1.8.0: - resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} - dev: true + kolorist@1.8.0: {} - /launch-editor@2.6.1: - resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==} + launch-editor@2.6.1: dependencies: picocolors: 1.0.0 shell-quote: 1.8.1 - dev: true - /lazy-universal-dotenv@4.0.0: - resolution: {integrity: sha512-aXpZJRnTkpK6gQ/z4nk+ZBLd/Qdp118cvPruLSIQzQNRhKwEcdXCOzXuF55VDqIiuAaY3UGZ10DJtvZzDcvsxg==} - engines: {node: '>=14.0.0'} + lazy-universal-dotenv@4.0.0: dependencies: app-root-dir: 1.0.2 dotenv: 16.3.1 dotenv-expand: 10.0.0 - dev: true - /leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - dev: true + leven@3.1.0: {} - /levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} + levn@0.4.1: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 - dev: true - /lilconfig@3.0.0: - resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} - engines: {node: '>=14'} - dev: true + lilconfig@3.0.0: {} - /lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + lines-and-columns@1.2.4: {} - /lines-and-columns@2.0.4: - resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true + lines-and-columns@2.0.4: {} - /lint-staged@15.2.2: - resolution: {integrity: sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==} - engines: {node: '>=18.12.0'} - hasBin: true + lint-staged@15.2.2: dependencies: chalk: 5.3.0 commander: 11.1.0 @@ -10978,11 +14220,8 @@ packages: yaml: 2.3.4 transitivePeerDependencies: - supports-color - dev: true - /listr2@8.0.1: - resolution: {integrity: sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==} - engines: {node: '>=18.0.0'} + listr2@8.0.1: dependencies: cli-truncate: 4.0.0 colorette: 2.0.20 @@ -10990,13 +14229,8 @@ packages: log-update: 6.0.0 rfdc: 1.3.0 wrap-ansi: 9.0.0 - dev: true - /lit-html@1.4.1: - resolution: {integrity: sha512-B9btcSgPYb1q4oSOb/PrOT6Z/H+r6xuNzfH4lFli/AWhYwdtrgQkQWBbIc6mdnf6E2IL3gDXdkkqNktpU0OZQA==} - - /load-bmfont@1.4.1: - resolution: {integrity: sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==} + load-bmfont@1.4.1: dependencies: buffer-equal: 0.0.1 mime: 1.6.0 @@ -11006,569 +14240,306 @@ packages: phin: 2.9.3 xhr: 2.6.0 xtend: 4.0.2 - dev: true - /loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} - engines: {node: '>=6.11.5'} - dev: true + loader-runner@4.3.0: {} - /loader-utils@2.0.4: - resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} - engines: {node: '>=8.9.0'} + loader-utils@2.0.4: dependencies: big.js: 5.2.2 emojis-list: 3.0.0 json5: 2.2.3 - dev: true - /local-pkg@0.5.0: - resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} - engines: {node: '>=14'} + local-pkg@0.5.0: dependencies: mlly: 1.4.2 pkg-types: 1.0.3 - dev: true - /locate-path@3.0.0: - resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} - engines: {node: '>=6'} + locate-path@3.0.0: dependencies: p-locate: 3.0.0 path-exists: 3.0.0 - dev: true - /locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} + locate-path@5.0.0: dependencies: p-locate: 4.1.0 - dev: true - /locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} + locate-path@6.0.0: dependencies: p-locate: 5.0.0 - dev: true - /lodash-es@4.17.21: - resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + lodash-es@4.17.21: {} - /lodash.curry@4.1.1: - resolution: {integrity: sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA==} - dev: true + lodash.curry@4.1.1: {} - /lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - dev: true + lodash.debounce@4.0.8: {} - /lodash.get@4.4.2: - resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} - dev: true + lodash.get@4.4.2: {} - /lodash.isequal@4.5.0: - resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} - dev: true + lodash.isequal@4.5.0: {} - /lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - dev: true + lodash.merge@4.6.2: {} - /lodash.sortby@4.7.0: - resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} - dev: true + lodash.sortby@4.7.0: {} - /lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - dev: true + lodash@4.17.21: {} - /log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} + log-symbols@4.1.0: dependencies: chalk: 4.1.2 is-unicode-supported: 0.1.0 - dev: true - /log-update@6.0.0: - resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==} - engines: {node: '>=18'} + log-update@6.0.0: dependencies: ansi-escapes: 6.2.0 cli-cursor: 4.0.0 slice-ansi: 7.1.0 strip-ansi: 7.1.0 wrap-ansi: 9.0.0 - dev: true - /loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true + loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 - /loupe@2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + loupe@2.3.7: dependencies: get-func-name: 2.0.2 - dev: true - /lower-case@2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + lower-case@2.0.2: dependencies: tslib: 2.6.2 - dev: true - /lru-cache@10.0.1: - resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} - engines: {node: 14 || >=16.14} - dev: true + lru-cache@10.0.1: {} - /lru-cache@10.2.0: - resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} - engines: {node: 14 || >=16.14} - dev: true + lru-cache@10.2.0: {} - /lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 - /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} + lru-cache@6.0.0: dependencies: yallist: 4.0.0 - dev: true - /luxon@3.4.4: - resolution: {integrity: sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==} - engines: {node: '>=12'} + luxon@3.4.4: {} - /lz-string@1.5.0: - resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} - hasBin: true - dev: true + lz-string@1.5.0: {} - /macaddress@0.5.3: - resolution: {integrity: sha512-vGBKTA+jwM4KgjGZ+S/8/Mkj9rWzePyGY6jManXPGhiWu63RYwW8dKPyk5koP+8qNVhPhHgFa1y/MJ4wrjsNrg==} - dev: true + macaddress@0.5.3: {} - /magic-string@0.25.9: - resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + magic-string@0.25.9: dependencies: sourcemap-codec: 1.4.8 - dev: true - /magic-string@0.30.5: - resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} - engines: {node: '>=12'} + magic-string@0.30.5: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - - /magic-string@0.30.9: - resolution: {integrity: sha512-S1+hd+dIrC8EZqKyT9DstTH/0Z+f76kmmvZnkfQVmOpDEF9iVgdYif3Q/pIWHmCoo59bQVGW0kVL3e2nl+9+Sw==} - engines: {node: '>=12'} + + magic-string@0.30.9: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - /make-dir@2.1.0: - resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} - engines: {node: '>=6'} + make-dir@2.1.0: dependencies: pify: 4.0.1 semver: 5.7.2 - dev: true - /make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} + make-dir@3.1.0: dependencies: semver: 6.3.1 - dev: true - /map-or-similar@1.5.0: - resolution: {integrity: sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==} - dev: true + map-or-similar@1.5.0: {} - /markdown-to-jsx@7.3.2(react@18.2.0): - resolution: {integrity: sha512-B+28F5ucp83aQm+OxNrPkS8z0tMKaeHiy0lHJs3LqCyDQFtWuenaIrkaVTgAm1pf1AU85LXltva86hlaT17i8Q==} - engines: {node: '>= 10'} - peerDependencies: - react: '>= 0.14.0' + markdown-to-jsx@7.3.2(react@18.2.0): dependencies: react: 18.2.0 - dev: true - /media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} - dev: true + media-typer@0.3.0: {} - /memfs@3.5.3: - resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} - engines: {node: '>= 4.0.0'} + memfs@3.5.3: dependencies: fs-monkey: 1.0.5 - dev: true - /memfs@4.8.1: - resolution: {integrity: sha512-7q/AdPzf2WpwPlPL4v1kE2KsJsHl7EF4+hAeVzlyanr2+YnR21NVn9mDqo+7DEaKDRsQy8nvxPlKH4WqMtiO0w==} - engines: {node: '>= 4.0.0'} + memfs@4.8.1: dependencies: tslib: 2.6.2 - dev: true - /memoizerific@1.11.3: - resolution: {integrity: sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==} + memoizerific@1.11.3: dependencies: map-or-similar: 1.5.0 - dev: true - /merge-descriptors@1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} - dev: true + merge-descriptors@1.0.1: {} - /merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: true + merge-stream@2.0.0: {} - /merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - dev: true + merge2@1.4.1: {} - /methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} - dev: true + methods@1.1.2: {} - /micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} + micromatch@4.0.5: dependencies: braces: 3.0.2 picomatch: 2.3.1 - dev: true - /mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - dev: true + mime-db@1.52.0: {} - /mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} + mime-types@2.1.35: dependencies: mime-db: 1.52.0 - dev: true - /mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - dev: true + mime@1.6.0: {} - /mime@2.4.6: - resolution: {integrity: sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==} - engines: {node: '>=4.0.0'} - hasBin: true - dev: true + mime@2.4.6: {} - /mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - dev: true + mimic-fn@2.1.0: {} - /mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - dev: true + mimic-fn@4.0.0: {} - /min-document@2.19.0: - resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==} + min-document@2.19.0: dependencies: dom-walk: 0.1.2 - dev: true - /min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - dev: true + min-indent@1.0.1: {} - /mini-css-extract-plugin@2.8.1(webpack@5.91.0): - resolution: {integrity: sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^5.0.0 + mini-css-extract-plugin@2.8.1(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)): dependencies: schema-utils: 4.2.0 tapable: 2.2.1 webpack: 5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4) - dev: true - /minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} - dev: true + minimalistic-assert@1.0.1: {} - /minimatch@3.0.8: - resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} + minimatch@3.0.8: dependencies: brace-expansion: 1.1.11 - dev: true - /minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 - dev: true - /minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} + minimatch@5.1.6: dependencies: brace-expansion: 2.0.1 - dev: true - /minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} + minimatch@9.0.3: dependencies: brace-expansion: 2.0.1 - dev: true - /minimatch@9.0.4: - resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} - engines: {node: '>=16 || 14 >=14.17'} + minimatch@9.0.4: dependencies: brace-expansion: 2.0.1 - dev: true - /minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - dev: true + minimist@1.2.8: {} - /minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} + minipass@3.3.6: dependencies: yallist: 4.0.0 - dev: true - /minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} - dev: true + minipass@5.0.0: {} - /minipass@7.0.3: - resolution: {integrity: sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg==} - engines: {node: '>=16 || 14 >=14.17'} - dev: true + minipass@7.0.3: {} - /minipass@7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} - engines: {node: '>=16 || 14 >=14.17'} - dev: true + minipass@7.0.4: {} - /minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} + minizlib@2.1.2: dependencies: minipass: 3.3.6 yallist: 4.0.0 - dev: true - /mkdirp-classic@0.5.3: - resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} - dev: true + mkdirp-classic@0.5.3: {} - /mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true + mkdirp@0.5.6: dependencies: minimist: 1.2.8 - dev: true - /mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - dev: true + mkdirp@1.0.4: {} - /mlly@1.4.2: - resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} + mlly@1.4.2: dependencies: acorn: 8.10.0 pathe: 1.1.1 pkg-types: 1.0.3 ufo: 1.3.2 - dev: true - /mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - dev: true + mri@1.2.0: {} - /mrmime@2.0.0: - resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} - engines: {node: '>=10'} - dev: true + mrmime@2.0.0: {} - /ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - dev: true + ms@2.0.0: {} - /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + ms@2.1.2: {} - /ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - dev: true + ms@2.1.3: {} - /muggle-string@0.3.1: - resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} - dev: true + muggle-string@0.3.1: {} - /multicast-dns@7.2.5: - resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} - hasBin: true + multicast-dns@7.2.5: dependencies: dns-packet: 5.6.1 thunky: 1.1.0 - dev: true - /nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - dev: true + nanoid@3.3.7: {} - /nanoid@5.0.7: - resolution: {integrity: sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==} - engines: {node: ^18 || >=20} - hasBin: true - dev: true + nanoid@5.0.7: {} - /natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - dev: true + natural-compare@1.4.0: {} - /negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - dev: true + negotiator@0.6.3: {} - /neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - dev: true + neo-async@2.6.2: {} - /no-case@3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + no-case@3.0.4: dependencies: lower-case: 2.0.2 tslib: 2.6.2 - dev: true - /node-dir@0.1.17: - resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==} - engines: {node: '>= 0.10.5'} + node-dir@0.1.17: dependencies: minimatch: 3.1.2 - dev: true - /node-domexception@1.0.0: - resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} - engines: {node: '>=10.5.0'} - dev: true + node-domexception@1.0.0: {} - /node-fetch-native@1.4.0: - resolution: {integrity: sha512-F5kfEj95kX8tkDhUCYdV8dg3/8Olx/94zB8+ZNthFs6Bz31UpUi8Xh40TN3thLwXgrwXry1pEg9lJ++tLWTcqA==} - dev: true + node-fetch-native@1.4.0: {} - /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 + node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 - dev: true - /node-fetch@3.3.2: - resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + node-fetch@3.3.2: dependencies: data-uri-to-buffer: 4.0.1 fetch-blob: 3.2.0 formdata-polyfill: 4.0.10 - dev: true - /node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} - engines: {node: '>= 6.13.0'} - dev: true + node-forge@1.3.1: {} - /node-machine-id@1.1.12: - resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} - dev: true + node-machine-id@1.1.12: {} - /node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + node-releases@2.0.14: {} - /normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 resolve: 1.22.8 semver: 5.7.2 validate-npm-package-license: 3.0.4 - dev: true - /normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - dev: true + normalize-path@3.0.0: {} - /npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} + npm-run-path@4.0.1: dependencies: path-key: 3.1.1 - dev: true - /npm-run-path@5.1.0: - resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + npm-run-path@5.1.0: dependencies: path-key: 4.0.0 - dev: true - /nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + nth-check@2.1.1: dependencies: boolbase: 1.0.0 - dev: true - /nx@18.2.4: - resolution: {integrity: sha512-GxqJcDOhfLa9jsPmip0jG73CZKA96wCryss2DhixCiCU66I3GLYF4+585ObO8Tx7Z1GqhT92RaNGjCxjMIwaPg==} - hasBin: true - requiresBuild: true - peerDependencies: - '@swc-node/register': ^1.8.0 - '@swc/core': ^1.3.85 - peerDependenciesMeta: - '@swc-node/register': - optional: true - '@swc/core': - optional: true + nx@18.2.4(@swc/core@1.3.101): dependencies: - '@nrwl/tao': 18.2.4 + '@nrwl/tao': 18.2.4(@swc/core@1.3.101) '@yarnpkg/lockfile': 1.1.0 '@yarnpkg/parsers': 3.0.0-rc.46 '@zkochan/js-yaml': 0.0.6 @@ -11613,131 +14584,83 @@ packages: '@nx/nx-linux-x64-musl': 18.2.4 '@nx/nx-win32-arm64-msvc': 18.2.4 '@nx/nx-win32-x64-msvc': 18.2.4 + '@swc/core': 1.3.101 transitivePeerDependencies: - debug - dev: true - /object-inspect@1.12.3: - resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} - dev: true + object-inspect@1.12.3: {} - /object-is@1.1.5: - resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} - engines: {node: '>= 0.4'} + object-is@1.1.5: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 - dev: true - /object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - dev: true + object-keys@1.1.1: {} - /object.assign@4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} - engines: {node: '>= 0.4'} + object.assign@4.1.4: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 has-symbols: 1.0.3 object-keys: 1.1.1 - dev: true - /object.fromentries@2.0.7: - resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} - engines: {node: '>= 0.4'} + object.fromentries@2.0.7: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 es-abstract: 1.22.1 - dev: true - /object.groupby@1.0.1: - resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} + object.groupby@1.0.1: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 es-abstract: 1.22.1 get-intrinsic: 1.2.1 - dev: true - /object.values@1.1.7: - resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} - engines: {node: '>= 0.4'} + object.values@1.1.7: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 es-abstract: 1.22.1 - dev: true - /obuf@1.1.2: - resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} - dev: true + obuf@1.1.2: {} - /omggif@1.0.10: - resolution: {integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==} - dev: true + omggif@1.0.10: {} - /on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} + on-finished@2.4.1: dependencies: ee-first: 1.1.1 - dev: true - /on-headers@1.0.2: - resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} - engines: {node: '>= 0.8'} - dev: true + on-headers@1.0.2: {} - /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + once@1.4.0: dependencies: wrappy: 1.0.2 - dev: true - /onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} + onetime@5.1.2: dependencies: mimic-fn: 2.1.0 - dev: true - /onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} + onetime@6.0.0: dependencies: mimic-fn: 4.0.0 - dev: true - /open@10.1.0: - resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} - engines: {node: '>=18'} + open@10.1.0: dependencies: default-browser: 5.2.1 define-lazy-prop: 3.0.0 is-inside-container: 1.0.0 is-wsl: 3.1.0 - dev: true - /open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} + open@8.4.2: dependencies: define-lazy-prop: 2.0.0 is-docker: 2.2.1 is-wsl: 2.2.0 - dev: true - /opener@1.5.2: - resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} - hasBin: true - dev: true + opener@1.5.2: {} - /optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} - engines: {node: '>= 0.8.0'} + optionator@0.9.3: dependencies: '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 @@ -11745,11 +14668,8 @@ packages: levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 - dev: true - /ora@5.3.0: - resolution: {integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==} - engines: {node: '>=10'} + ora@5.3.0: dependencies: bl: 4.1.0 chalk: 4.1.2 @@ -11759,11 +14679,8 @@ packages: log-symbols: 4.1.0 strip-ansi: 6.0.1 wcwidth: 1.0.1 - dev: true - /ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} + ora@5.4.1: dependencies: bl: 4.1.0 chalk: 4.1.2 @@ -11774,526 +14691,295 @@ packages: log-symbols: 4.1.0 strip-ansi: 6.0.1 wcwidth: 1.0.1 - dev: true - /p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} + p-limit@2.3.0: dependencies: p-try: 2.2.0 - dev: true - /p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} + p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 - dev: true - /p-limit@5.0.0: - resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} - engines: {node: '>=18'} + p-limit@5.0.0: dependencies: yocto-queue: 1.0.0 - dev: true - /p-locate@3.0.0: - resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} - engines: {node: '>=6'} + p-locate@3.0.0: dependencies: p-limit: 2.3.0 - dev: true - /p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} + p-locate@4.1.0: dependencies: p-limit: 2.3.0 - dev: true - /p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} + p-locate@5.0.0: dependencies: p-limit: 3.1.0 - dev: true - /p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} + p-map@4.0.0: dependencies: aggregate-error: 3.1.0 - dev: true - /p-retry@4.6.2: - resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} - engines: {node: '>=8'} + p-retry@4.6.2: dependencies: '@types/retry': 0.12.0 retry: 0.13.1 - dev: true - /p-retry@6.2.0: - resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==} - engines: {node: '>=16.17'} + p-retry@6.2.0: dependencies: '@types/retry': 0.12.2 is-network-error: 1.1.0 retry: 0.13.1 - dev: true - /p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - dev: true + p-try@2.2.0: {} - /pako@0.2.9: - resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} - dev: true + pako@0.2.9: {} - /pako@1.0.11: - resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} - dev: true + pako@1.0.11: {} - /param-case@3.0.4: - resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + param-case@3.0.4: dependencies: dot-case: 3.0.4 tslib: 2.6.2 - dev: true - /parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} + parent-module@1.0.1: dependencies: callsites: 3.1.0 - /parse-bmfont-ascii@1.0.6: - resolution: {integrity: sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==} - dev: true + parse-bmfont-ascii@1.0.6: {} - /parse-bmfont-binary@1.0.6: - resolution: {integrity: sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==} - dev: true + parse-bmfont-binary@1.0.6: {} - /parse-bmfont-xml@1.1.4: - resolution: {integrity: sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==} + parse-bmfont-xml@1.1.4: dependencies: xml-parse-from-string: 1.0.1 xml2js: 0.4.23 - dev: true - /parse-headers@2.0.5: - resolution: {integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==} - dev: true + parse-headers@2.0.5: {} - /parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} + parse-json@5.2.0: dependencies: '@babel/code-frame': 7.23.5 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - /parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} - dev: true + parseurl@1.3.3: {} - /pascal-case@3.1.2: - resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + pascal-case@3.1.2: dependencies: no-case: 3.0.4 tslib: 2.6.2 - dev: true - /path-browserify@1.0.1: - resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} - dev: true + path-browserify@1.0.1: {} - /path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - dev: true + path-exists@3.0.0: {} - /path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - dev: true + path-exists@4.0.0: {} - /path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - dev: true + path-is-absolute@1.0.1: {} - /path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - dev: true + path-key@3.1.1: {} - /path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - dev: true + path-key@4.0.0: {} - /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + path-parse@1.0.7: {} - /path-scurry@1.10.1: - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} - engines: {node: '>=16 || 14 >=14.17'} + path-scurry@1.10.1: dependencies: lru-cache: 10.0.1 minipass: 7.0.3 - dev: true - /path-scurry@1.10.2: - resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} - engines: {node: '>=16 || 14 >=14.17'} + path-scurry@1.10.2: dependencies: lru-cache: 10.2.0 minipass: 7.0.4 - dev: true - /path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} - dev: true + path-to-regexp@0.1.7: {} - /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} + path-type@4.0.0: {} - /path-type@5.0.0: - resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} - engines: {node: '>=12'} - dev: true + path-type@5.0.0: {} - /pathe@1.1.1: - resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} - dev: true + pathe@1.1.1: {} - /pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} - dev: true + pathval@1.1.1: {} - /peek-readable@4.1.0: - resolution: {integrity: sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==} - engines: {node: '>=8'} - dev: true + peek-readable@4.1.0: {} - /peek-stream@1.1.3: - resolution: {integrity: sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==} + peek-stream@1.1.3: dependencies: buffer-from: 1.1.2 duplexify: 3.7.1 through2: 2.0.5 - dev: true - /phin@2.9.3: - resolution: {integrity: sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==} - dev: true + phin@2.9.3: {} - /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + picocolors@1.0.0: {} - /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - dev: true + picomatch@2.3.1: {} - /pidtree@0.6.0: - resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} - engines: {node: '>=0.10'} - hasBin: true - dev: true + pidtree@0.6.0: {} - /pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - dev: true + pify@4.0.1: {} - /pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} - dev: true + pirates@4.0.6: {} - /pixelmatch@4.0.2: - resolution: {integrity: sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==} - hasBin: true + pixelmatch@4.0.2: dependencies: pngjs: 3.4.0 - dev: true - /pkg-dir@3.0.0: - resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==} - engines: {node: '>=6'} + pkg-dir@3.0.0: dependencies: find-up: 3.0.0 - dev: true - /pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} + pkg-dir@4.2.0: dependencies: find-up: 4.1.0 - dev: true - /pkg-dir@5.0.0: - resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} - engines: {node: '>=10'} + pkg-dir@5.0.0: dependencies: find-up: 5.0.0 - dev: true - /pkg-types@1.0.3: - resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} + pkg-types@1.0.3: dependencies: jsonc-parser: 3.2.0 mlly: 1.4.2 pathe: 1.1.1 - dev: true - /pngjs@3.4.0: - resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==} - engines: {node: '>=4.0.0'} - dev: true + pngjs@3.4.0: {} - /polished@4.2.2: - resolution: {integrity: sha512-Sz2Lkdxz6F2Pgnpi9U5Ng/WdWAUZxmHrNPoVlm3aAemxoy2Qy7LGjQg4uf8qKelDAUW94F4np3iH2YPf2qefcQ==} - engines: {node: '>=10'} + polished@4.2.2: dependencies: - '@babel/runtime': 7.23.6 - dev: true - - /postcss-modules-extract-imports@3.1.0(postcss@8.4.38): - resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + '@babel/runtime': 7.23.6 + + postcss-modules-extract-imports@3.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 - dev: true - /postcss-modules-local-by-default@4.0.5(postcss@8.4.38): - resolution: {integrity: sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + postcss-modules-local-by-default@4.0.5(postcss@8.4.38): dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 - dev: true - /postcss-modules-scope@3.2.0(postcss@8.4.38): - resolution: {integrity: sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + postcss-modules-scope@3.2.0(postcss@8.4.38): dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.13 - dev: true - /postcss-modules-values@4.0.0(postcss@8.4.38): - resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + postcss-modules-values@4.0.0(postcss@8.4.38): dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 - dev: true - /postcss-selector-parser@6.0.13: - resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} - engines: {node: '>=4'} + postcss-selector-parser@6.0.13: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - dev: true - /postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - dev: true + postcss-value-parser@4.2.0: {} - /postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} - engines: {node: ^10 || ^12 || >=14} + postcss@8.4.38: dependencies: nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.2.0 - dev: true - /prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - dev: true + prelude-ls@1.2.1: {} - /prettier-linter-helpers@1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} - engines: {node: '>=6.0.0'} + prettier-linter-helpers@1.0.0: dependencies: fast-diff: 1.3.0 - dev: true - /prettier@3.2.5: - resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} - engines: {node: '>=14'} - hasBin: true - dev: true + prettier@3.2.5: {} - /pretty-bytes@5.6.0: - resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} - engines: {node: '>=6'} - dev: true + pretty-bytes@5.6.0: {} - /pretty-error@4.0.0: - resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} + pretty-error@4.0.0: dependencies: lodash: 4.17.21 renderkid: 3.0.0 - dev: 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} + pretty-format@27.5.1: dependencies: ansi-regex: 5.0.1 ansi-styles: 5.2.0 react-is: 17.0.2 - dev: true - /pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + pretty-format@29.7.0: dependencies: '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 react-is: 18.2.0 - dev: true - /pretty-hrtime@1.0.3: - resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==} - engines: {node: '>= 0.8'} - dev: true + pretty-hrtime@1.0.3: {} - /prism-react-renderer@1.3.5(react@18.2.0): - resolution: {integrity: sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==} - peerDependencies: - react: '>=0.14.9' + prism-react-renderer@1.3.5(react@18.2.0): dependencies: react: 18.2.0 - dev: true - /process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - dev: true + process-nextick-args@2.0.1: {} - /process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} - dev: true + process@0.11.10: {} - /prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} + prompts@2.4.2: dependencies: kleur: 3.0.3 sisteransi: 1.0.5 - dev: true - /proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} + proxy-addr@2.0.7: dependencies: forwarded: 0.2.0 ipaddr.js: 1.9.1 - dev: true - /proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - dev: true + proxy-from-env@1.1.0: {} - /pump@2.0.1: - resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==} + pump@2.0.1: dependencies: end-of-stream: 1.4.4 once: 1.4.0 - dev: true - /pump@3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + pump@3.0.0: dependencies: end-of-stream: 1.4.4 once: 1.4.0 - dev: true - /pumpify@1.5.1: - resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} + pumpify@1.5.1: dependencies: duplexify: 3.7.1 inherits: 2.0.4 pump: 2.0.1 - dev: true - /punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} - engines: {node: '>=6'} - dev: true + punycode@2.3.0: {} - /qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} - engines: {node: '>=0.6'} + qs@6.11.0: dependencies: side-channel: 1.0.4 - dev: true - /qs@6.11.2: - resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} - engines: {node: '>=0.6'} + qs@6.11.2: dependencies: side-channel: 1.0.4 - dev: true - - /queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - dev: true - /ramda@0.27.1: - resolution: {integrity: sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==} - dev: true + queue-microtask@1.2.3: {} - /ramda@0.29.0: - resolution: {integrity: sha512-BBea6L67bYLtdbOqfp8f58fPMqEwx0doL+pAi8TZyp2YWz8R9G8z9x75CZI8W+ftqhFHCpEX2cRnUUXK130iKA==} - dev: true + ramda@0.29.0: {} - /randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 - dev: true - /range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} - dev: true + range-parser@1.2.1: {} - /raw-body@2.5.1: - resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} - engines: {node: '>= 0.8'} + raw-body@2.5.1: dependencies: bytes: 3.1.2 http-errors: 2.0.0 iconv-lite: 0.4.24 unpipe: 1.0.0 - dev: true - /react-base16-styling@0.9.1: - resolution: {integrity: sha512-1s0CY1zRBOQ5M3T61wetEpvQmsYSNtWEcdYzyZNxKa8t7oDvaOn9d21xrGezGAHFWLM7SHcktPuPTrvoqxSfKw==} + react-base16-styling@0.9.1: dependencies: '@babel/runtime': 7.23.6 '@types/base16': 1.0.5 @@ -12302,152 +14988,85 @@ packages: color: 3.2.1 csstype: 3.1.2 lodash.curry: 4.1.1 - dev: true - /react-colorful@5.6.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + react-colorful@5.6.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true - /react-dom@18.2.0(react@18.2.0): - resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} - peerDependencies: - react: ^18.2.0 + react-dom@18.2.0(react@18.2.0): dependencies: loose-envify: 1.4.0 react: 18.2.0 scheduler: 0.23.0 - /react-error-boundary@4.0.12(react@18.2.0): - resolution: {integrity: sha512-kJdxdEYlb7CPC1A0SeUY38cHpjuu6UkvzKiAmqmOFL21VRfMhOcWxTCBgLVCO0VEMh9JhFNcVaXlV4/BTpiwOA==} - peerDependencies: - react: '>=16.13.1' + react-error-boundary@4.0.12(react@18.2.0): dependencies: '@babel/runtime': 7.23.6 react: 18.2.0 - dev: true - /react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + react-is@16.13.1: {} - /react-is@17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - dev: true + react-is@17.0.2: {} - /react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - dev: true + react-is@18.2.0: {} - /react-json-tree@0.18.0(@types/react@18.2.77)(react@18.2.0): - resolution: {integrity: sha512-Qe6HKSXrr++n9Y31nkRJ3XvQMATISpqigH1vEKhLwB56+nk5thTP0ITThpjxY6ZG/ubpVq/aEHIcyLP/OPHxeA==} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-json-tree@0.18.0(@types/react@18.2.77)(react@18.2.0): dependencies: '@babel/runtime': 7.23.6 '@types/lodash': 4.14.197 '@types/react': 18.2.77 react: 18.2.0 react-base16-styling: 0.9.1 - dev: true - /react-refresh@0.14.0: - resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} - engines: {node: '>=0.10.0'} - dev: true + react-refresh@0.14.0: {} - /react-remove-scroll-bar@2.3.4(@types/react@18.2.77)(react@18.2.0): - resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true + react-remove-scroll-bar@2.3.4(@types/react@18.2.77)(react@18.2.0): dependencies: - '@types/react': 18.2.77 react: 18.2.0 react-style-singleton: 2.2.1(@types/react@18.2.77)(react@18.2.0) tslib: 2.6.2 + optionalDependencies: + '@types/react': 18.2.77 - /react-remove-scroll@2.5.5(@types/react@18.2.77)(react@18.2.0): - resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true + react-remove-scroll@2.5.5(@types/react@18.2.77)(react@18.2.0): dependencies: - '@types/react': 18.2.77 react: 18.2.0 react-remove-scroll-bar: 2.3.4(@types/react@18.2.77)(react@18.2.0) react-style-singleton: 2.2.1(@types/react@18.2.77)(react@18.2.0) tslib: 2.6.2 use-callback-ref: 1.3.0(@types/react@18.2.77)(react@18.2.0) use-sidecar: 1.1.2(@types/react@18.2.77)(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.77 - /react-resizable-panels@0.0.54(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-f8hHdQrqvXoiZGdRNuoOi/C2cdYT2nEpaOb1KIWVWorSTPZmnE+ZQiamGeu+AMx3iZ/tqBtlAkBOpKXzTnDCoA==} - peerDependencies: - react: ^16.14.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.14.0 || ^17.0.0 || ^18.0.0 + react-resizable-panels@0.0.54(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: true - /react-router-dom@6.22.3(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-7ZILI7HjcE+p31oQvwbokjk6OA/bnFxrhJ19n82Ex9Ph8fNAq+Hm/7KchpMGlTgWhUxRHMMCut+vEtNpWpowKw==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' + react-router-dom@6.22.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@remix-run/router': 1.15.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-router: 6.22.3(react@18.2.0) - dev: false - /react-router@6.22.3(react@18.2.0): - resolution: {integrity: sha512-dr2eb3Mj5zK2YISHK++foM9w4eBnO23eKnZEDs7c880P6oKbrjz/Svg9+nxqtHQK+oMW4OtjZca0RqPglXxguQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: '>=16.8' + react-router@6.22.3(react@18.2.0): dependencies: '@remix-run/router': 1.15.3 react: 18.2.0 - dev: false - /react-style-singleton@2.2.1(@types/react@18.2.77)(react@18.2.0): - resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true + react-style-singleton@2.2.1(@types/react@18.2.77)(react@18.2.0): dependencies: - '@types/react': 18.2.77 get-nonce: 1.0.1 invariant: 2.2.4 react: 18.2.0 tslib: 2.6.2 + optionalDependencies: + '@types/react': 18.2.77 - /react-textarea-autosize@8.3.4(@types/react@18.2.77)(react@18.2.0): - resolution: {integrity: sha512-CdtmP8Dc19xL8/R6sWvtknD/eCXkQr30dtvC4VmGInhRsfF8X/ihXCq6+9l9qbxmKRiq407/7z5fxE7cVWQNgQ==} - engines: {node: '>=10'} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-textarea-autosize@8.3.4(@types/react@18.2.77)(react@18.2.0): dependencies: '@babel/runtime': 7.23.6 react: 18.2.0 @@ -12455,35 +15074,25 @@ packages: use-latest: 1.2.1(@types/react@18.2.77)(react@18.2.0) transitivePeerDependencies: - '@types/react' - dev: true - /react@18.2.0: - resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} - engines: {node: '>=0.10.0'} + react@18.2.0: dependencies: loose-envify: 1.4.0 - /read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} + read-pkg-up@7.0.1: dependencies: find-up: 4.1.0 read-pkg: 5.2.0 type-fest: 0.8.1 - dev: true - /read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} + read-pkg@5.2.0: dependencies: '@types/normalize-package-data': 2.4.1 normalize-package-data: 2.5.0 parse-json: 5.2.0 type-fest: 0.6.0 - dev: true - /readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + readable-stream@2.3.8: dependencies: core-util-is: 1.0.3 inherits: 2.0.4 @@ -12492,97 +15101,61 @@ packages: safe-buffer: 5.1.2 string_decoder: 1.1.1 util-deprecate: 1.0.2 - dev: true - /readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} + readable-stream@3.6.2: dependencies: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 - dev: true - /readable-web-to-node-stream@3.0.2: - resolution: {integrity: sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==} - engines: {node: '>=8'} + readable-web-to-node-stream@3.0.2: dependencies: readable-stream: 3.6.2 - dev: true - /readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} + readdirp@3.6.0: dependencies: picomatch: 2.3.1 - dev: true - /recast@0.23.6: - resolution: {integrity: sha512-9FHoNjX1yjuesMwuthAmPKabxYQdOgihFYmT5ebXfYGBcnqXZf3WOVz+5foEZ8Y83P4ZY6yQD5GMmtV+pgCCAQ==} - engines: {node: '>= 4'} + recast@0.23.6: dependencies: ast-types: 0.16.1 esprima: 4.0.1 source-map: 0.6.1 tiny-invariant: 1.3.3 tslib: 2.6.2 - dev: true - /rechoir@0.8.0: - resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} - engines: {node: '>= 10.13.0'} + rechoir@0.8.0: dependencies: resolve: 1.22.8 - dev: true - /redent@3.0.0: - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} - engines: {node: '>=8'} + redent@3.0.0: dependencies: indent-string: 4.0.0 strip-indent: 3.0.0 - dev: true - /redux@5.0.1: - resolution: {integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==} - dev: true + redux@5.0.1: {} - /regenerate-unicode-properties@10.1.0: - resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==} - engines: {node: '>=4'} + regenerate-unicode-properties@10.1.0: dependencies: regenerate: 1.4.2 - dev: true - /regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - dev: true + regenerate@1.4.2: {} - /regenerator-runtime@0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - dev: true + regenerator-runtime@0.13.11: {} - /regenerator-runtime@0.14.0: - resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + regenerator-runtime@0.14.0: {} - /regenerator-transform@0.15.2: - resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} + regenerator-transform@0.15.2: dependencies: '@babel/runtime': 7.22.11 - dev: true - /regexp.prototype.flags@1.5.0: - resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} - engines: {node: '>= 0.4'} + regexp.prototype.flags@1.5.0: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 functions-have-names: 1.2.3 - dev: true - /regexpu-core@5.3.2: - resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} - engines: {node: '>=4'} + regexpu-core@5.3.2: dependencies: '@babel/regjsgen': 0.8.0 regenerate: 1.4.2 @@ -12590,17 +15163,12 @@ packages: regjsparser: 0.9.1 unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.1.0 - dev: true - /regjsparser@0.9.1: - resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} - hasBin: true + regjsparser@0.9.1: dependencies: jsesc: 0.5.0 - dev: true - /rehype-external-links@3.0.0: - resolution: {integrity: sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==} + rehype-external-links@3.0.0: dependencies: '@types/hast': 3.0.4 '@ungap/structured-clone': 1.2.0 @@ -12608,184 +15176,108 @@ packages: is-absolute-url: 4.0.1 space-separated-tokens: 2.0.2 unist-util-visit: 5.0.0 - dev: true - /rehype-slug@6.0.0: - resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==} + rehype-slug@6.0.0: dependencies: '@types/hast': 3.0.4 github-slugger: 2.0.0 hast-util-heading-rank: 3.0.0 hast-util-to-string: 3.0.0 unist-util-visit: 5.0.0 - dev: true - /relateurl@0.2.7: - resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} - engines: {node: '>= 0.10'} - dev: true + relateurl@0.2.7: {} - /renderkid@3.0.0: - resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} + renderkid@3.0.0: dependencies: css-select: 4.3.0 dom-converter: 0.2.0 htmlparser2: 6.1.0 lodash: 4.17.21 strip-ansi: 6.0.1 - dev: true - /require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - dev: true + require-directory@2.1.1: {} - /require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - dev: true + require-from-string@2.0.2: {} - /requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - dev: true + requires-port@1.0.0: {} - /resolve-cwd@3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} - engines: {node: '>=8'} + resolve-cwd@3.0.0: dependencies: resolve-from: 5.0.0 - dev: true - /resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} + resolve-from@4.0.0: {} - /resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - dev: true + resolve-from@5.0.0: {} - /resolve@1.19.0: - resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==} + resolve@1.19.0: dependencies: is-core-module: 2.13.1 path-parse: 1.0.7 - dev: true - /resolve@1.22.4: - resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==} - hasBin: true + resolve@1.22.4: dependencies: is-core-module: 2.13.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - dev: true - /resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true + resolve@1.22.8: dependencies: is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - /restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} + restore-cursor@3.1.0: dependencies: onetime: 5.1.2 signal-exit: 3.0.7 - dev: true - /restore-cursor@4.0.0: - resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + restore-cursor@4.0.0: dependencies: onetime: 5.1.2 signal-exit: 3.0.7 - dev: true - /retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} - dev: true + retry@0.13.1: {} - /reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: true + reusify@1.0.4: {} - /rfdc@1.3.0: - resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} - dev: true + rfdc@1.3.0: {} - /rimraf@2.6.3: - resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} - hasBin: true + rimraf@2.6.3: dependencies: glob: 7.2.3 - dev: true - /rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true + rimraf@3.0.2: dependencies: glob: 7.2.3 - dev: true - /rimraf@5.0.5: - resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} - engines: {node: '>=14'} - hasBin: true + rimraf@5.0.5: dependencies: glob: 10.3.12 - dev: true - /robust-predicates@3.0.2: - resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} - dev: true + robust-predicates@3.0.2: {} - /rollup-plugin-terser@7.0.2(rollup@2.79.1): - resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} - deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser - peerDependencies: - rollup: ^2.0.0 + rollup-plugin-terser@7.0.2(rollup@2.79.1): dependencies: '@babel/code-frame': 7.23.5 jest-worker: 26.6.2 rollup: 2.79.1 serialize-javascript: 4.0.0 terser: 5.26.0 - dev: true - /rollup-plugin-visualizer@5.12.0: - resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} - engines: {node: '>=14'} - hasBin: true - peerDependencies: - rollup: 2.x || 3.x || 4.x - peerDependenciesMeta: - rollup: - optional: true + rollup-plugin-visualizer@5.12.0(rollup@4.14.2): dependencies: open: 8.4.2 picomatch: 2.3.1 source-map: 0.7.4 yargs: 17.7.2 - dev: true + optionalDependencies: + rollup: 4.14.2 - /rollup@2.79.1: - resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} - engines: {node: '>=10.0.0'} - hasBin: true + rollup@2.79.1: optionalDependencies: fsevents: 2.3.3 - dev: true - /rollup@4.14.2: - resolution: {integrity: sha512-WkeoTWvuBoFjFAhsEOHKRoZ3r9GfTyhh7Vff1zwebEFLEFjT1lG3784xEgKiTa7E+e70vsC81roVL2MP4tgEEQ==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true + rollup@4.14.2: dependencies: '@types/estree': 1.0.5 optionalDependencies: @@ -12805,127 +15297,77 @@ packages: '@rollup/rollup-win32-ia32-msvc': 4.14.2 '@rollup/rollup-win32-x64-msvc': 4.14.2 fsevents: 2.3.3 - dev: true - /run-applescript@7.0.0: - resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} - engines: {node: '>=18'} - dev: true + run-applescript@7.0.0: {} - /run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 - dev: true - /rw@1.3.3: - resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} - dev: true + rw@1.3.3: {} - /rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + rxjs@7.8.1: dependencies: tslib: 2.6.2 - dev: true - /safe-array-concat@1.0.0: - resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==} - engines: {node: '>=0.4'} + safe-array-concat@1.0.0: dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 has-symbols: 1.0.3 isarray: 2.0.5 - dev: true - /safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - dev: true + safe-buffer@5.1.2: {} - /safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - dev: true + safe-buffer@5.2.1: {} - /safe-regex-test@1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + safe-regex-test@1.0.0: dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 is-regex: 1.1.4 - dev: true - /safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - dev: true + safer-buffer@2.1.2: {} - /sax@1.3.0: - resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} - dev: true + sax@1.3.0: {} - /scheduler@0.23.0: - resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + scheduler@0.23.0: dependencies: loose-envify: 1.4.0 - /schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} - engines: {node: '>= 10.13.0'} + schema-utils@3.3.0: dependencies: '@types/json-schema': 7.0.12 ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) - dev: true - /schema-utils@4.2.0: - resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} - engines: {node: '>= 12.13.0'} + schema-utils@4.2.0: dependencies: '@types/json-schema': 7.0.15 ajv: 8.12.0 ajv-formats: 2.1.1(ajv@8.12.0) ajv-keywords: 5.1.0(ajv@8.12.0) - dev: true - /select-hose@2.0.0: - resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} - dev: true + select-hose@2.0.0: {} - /selfsigned@2.4.1: - resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} - engines: {node: '>=10'} + selfsigned@2.4.1: dependencies: '@types/node-forge': 1.3.10 node-forge: 1.3.1 - dev: true - /semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - dev: true + semver@5.7.2: {} - /semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true + semver@6.3.1: {} - /semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true + semver@7.5.4: dependencies: lru-cache: 6.0.0 - dev: true - /semver@7.6.0: - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} - engines: {node: '>=10'} - hasBin: true + semver@7.6.0: dependencies: lru-cache: 6.0.0 - dev: true - - /send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} - engines: {node: '>= 0.8.0'} + + send@0.18.0: dependencies: debug: 2.6.9 depd: 2.0.0 @@ -12942,29 +15384,20 @@ packages: statuses: 2.0.1 transitivePeerDependencies: - supports-color - dev: true - /serialize-javascript@4.0.0: - resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} + serialize-javascript@4.0.0: dependencies: randombytes: 2.1.0 - dev: true - /serialize-javascript@6.0.1: - resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==} + serialize-javascript@6.0.1: dependencies: randombytes: 2.1.0 - dev: true - /serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + serialize-javascript@6.0.2: dependencies: randombytes: 2.1.0 - dev: true - /serve-index@1.9.1: - resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} - engines: {node: '>= 0.8.0'} + serve-index@1.9.1: dependencies: accepts: 1.3.8 batch: 0.6.1 @@ -12975,11 +15408,8 @@ packages: parseurl: 1.3.3 transitivePeerDependencies: - supports-color - dev: true - /serve-static@1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} - engines: {node: '>= 0.8.0'} + serve-static@1.15.0: dependencies: encodeurl: 1.0.2 escape-html: 1.0.3 @@ -12987,126 +15417,75 @@ packages: send: 0.18.0 transitivePeerDependencies: - supports-color - dev: true - /set-function-name@2.0.1: - resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} - engines: {node: '>= 0.4'} + set-function-name@2.0.1: dependencies: define-data-property: 1.1.1 functions-have-names: 1.2.3 has-property-descriptors: 1.0.0 - dev: true - /setprototypeof@1.1.0: - resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} - dev: true + setprototypeof@1.1.0: {} - /setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - dev: true + setprototypeof@1.2.0: {} - /shallow-clone@3.0.1: - resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} - engines: {node: '>=8'} + shallow-clone@3.0.1: dependencies: kind-of: 6.0.3 - dev: true - /shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 - dev: true - /shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - dev: true + shebang-regex@3.0.0: {} - /shell-quote@1.8.1: - resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} - dev: true + shell-quote@1.8.1: {} - /shiki@0.14.7: - resolution: {integrity: sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==} + shiki@0.14.7: dependencies: ansi-sequence-parser: 1.1.1 jsonc-parser: 3.2.0 vscode-oniguruma: 1.7.0 vscode-textmate: 8.0.0 - dev: true - /side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + side-channel@1.0.4: dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 object-inspect: 1.12.3 - dev: true - /siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - dev: true + siginfo@2.0.0: {} - /signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - dev: true + signal-exit@3.0.7: {} - /signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - dev: true + signal-exit@4.1.0: {} - /simple-swizzle@0.2.2: - resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + simple-swizzle@0.2.2: dependencies: is-arrayish: 0.3.2 - dev: true - /sirv@2.0.4: - resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} - engines: {node: '>= 10'} + sirv@2.0.4: dependencies: '@polka/url': 1.0.0-next.24 mrmime: 2.0.0 totalist: 3.0.1 - dev: true - /sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - dev: true + sisteransi@1.0.5: {} - /slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - dev: true + slash@3.0.0: {} - /slash@5.1.0: - resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} - engines: {node: '>=14.16'} - dev: true + slash@5.1.0: {} - /slice-ansi@5.0.0: - resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} - engines: {node: '>=12'} + slice-ansi@5.0.0: dependencies: ansi-styles: 6.2.1 is-fullwidth-code-point: 4.0.0 - dev: true - /slice-ansi@7.1.0: - resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} - engines: {node: '>=18'} + slice-ansi@7.1.0: dependencies: ansi-styles: 6.2.1 is-fullwidth-code-point: 5.0.0 - dev: true - /socket.io-client@4.7.5: - resolution: {integrity: sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==} - engines: {node: '>=10.0.0'} + socket.io-client@4.7.5: dependencies: '@socket.io/component-emitter': 3.1.0 debug: 4.3.4 @@ -13116,101 +15495,60 @@ packages: - bufferutil - supports-color - utf-8-validate - dev: false - /socket.io-parser@4.2.4: - resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} - engines: {node: '>=10.0.0'} + socket.io-parser@4.2.4: dependencies: '@socket.io/component-emitter': 3.1.0 debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: false - /sockjs@0.3.24: - resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} + sockjs@0.3.24: dependencies: faye-websocket: 0.11.4 uuid: 8.3.2 websocket-driver: 0.7.4 - dev: true - /source-list-map@2.0.1: - resolution: {integrity: sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==} - dev: true + source-list-map@2.0.1: {} - /source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} - engines: {node: '>=0.10.0'} - dev: true + source-map-js@1.0.2: {} - /source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - dev: true + source-map-js@1.2.0: {} - /source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 source-map: 0.6.1 - dev: true - /source-map@0.5.7: - resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} - engines: {node: '>=0.10.0'} + source-map@0.5.7: {} - /source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - dev: true + source-map@0.6.1: {} - /source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} - dev: true + source-map@0.7.4: {} - /source-map@0.8.0-beta.0: - resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} - engines: {node: '>= 8'} + source-map@0.8.0-beta.0: dependencies: whatwg-url: 7.1.0 - dev: true - /sourcemap-codec@1.4.8: - resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - deprecated: Please use @jridgewell/sourcemap-codec instead - dev: true + sourcemap-codec@1.4.8: {} - /space-separated-tokens@2.0.2: - resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - dev: true + space-separated-tokens@2.0.2: {} - /spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 spdx-license-ids: 3.0.13 - dev: true - /spdx-exceptions@2.3.0: - resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} - dev: true + spdx-exceptions@2.3.0: {} - /spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + spdx-expression-parse@3.0.1: dependencies: spdx-exceptions: 2.3.0 spdx-license-ids: 3.0.13 - dev: true - /spdx-license-ids@3.0.13: - resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} - dev: true + spdx-license-ids@3.0.13: {} - /spdy-transport@3.0.0: - resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} + spdy-transport@3.0.0: dependencies: debug: 4.3.4 detect-node: 2.1.0 @@ -13220,11 +15558,8 @@ packages: wbuf: 1.7.3 transitivePeerDependencies: - supports-color - dev: true - /spdy@4.0.2: - resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} - engines: {node: '>=6.0.0'} + spdy@4.0.2: dependencies: debug: 4.3.4 handle-thing: 2.0.1 @@ -13233,54 +15568,30 @@ packages: spdy-transport: 3.0.0 transitivePeerDependencies: - supports-color - dev: true - /sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - dev: true + sprintf-js@1.0.3: {} - /stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - dev: true + stackback@0.0.2: {} - /stackframe@1.3.4: - resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} - dev: true + stackframe@1.3.4: {} - /stats.js@0.17.0: - resolution: {integrity: sha512-hNKz8phvYLPEcRkeG1rsGmV5ChMjKDAWU7/OJJdDErPBNChQXxCo3WZurGpnWc6gZhAzEPFad1aVgyOANH1sMw==} - dev: true + stats.js@0.17.0: {} - /statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} - engines: {node: '>= 0.6'} - dev: true + statuses@1.5.0: {} - /statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} - dev: true + statuses@2.0.1: {} - /std-env@3.6.0: - resolution: {integrity: sha512-aFZ19IgVmhdB2uX599ve2kE6BIE3YMnQ6Gp6BURhW/oIzpXGKr878TQfAQZn1+i0Flcc/UKUy1gOlcfaUBCryg==} - dev: true + std-env@3.6.0: {} - /stop-iteration-iterator@1.0.0: - resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} - engines: {node: '>= 0.4'} + stop-iteration-iterator@1.0.0: dependencies: internal-slot: 1.0.5 - dev: true - /store2@2.14.2: - resolution: {integrity: sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==} - dev: true + store2@2.14.2: {} - /storybook@8.0.8(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-9gTnnAakJBtMCg8oPGqnpy7g/C3Tj2IWiVflHiFg1SDD9zXBoc4mZhaYPTne4LRBUhXk7XuFagKfiRN2V/MuKA==} - hasBin: true + storybook@8.0.8(@babel/preset-env@7.23.6(@babel/core@7.24.4))(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@storybook/cli': 8.0.8(react-dom@18.2.0)(react@18.2.0) + '@storybook/cli': 8.0.8(@babel/preset-env@7.23.6(@babel/core@7.24.4))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) transitivePeerDependencies: - '@babel/preset-env' - bufferutil @@ -13289,46 +15600,30 @@ packages: - react-dom - supports-color - utf-8-validate - dev: true - /stream-shift@1.0.1: - resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} - dev: true + stream-shift@1.0.1: {} - /string-argv@0.3.2: - resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} - engines: {node: '>=0.6.19'} - dev: true + string-argv@0.3.2: {} - /string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - dev: true - /string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} + string-width@5.1.2: dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.1.0 - dev: true - /string-width@7.0.0: - resolution: {integrity: sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw==} - engines: {node: '>=18'} + string-width@7.0.0: dependencies: emoji-regex: 10.3.0 get-east-asian-width: 1.2.0 strip-ansi: 7.1.0 - dev: true - /string.prototype.matchall@4.0.10: - resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} + string.prototype.matchall@4.0.10: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 @@ -13339,211 +15634,127 @@ packages: regexp.prototype.flags: 1.5.0 set-function-name: 2.0.1 side-channel: 1.0.4 - dev: true - /string.prototype.trim@1.2.7: - resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} - engines: {node: '>= 0.4'} + string.prototype.trim@1.2.7: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 es-abstract: 1.22.1 - dev: true - /string.prototype.trimend@1.0.6: - resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} + string.prototype.trimend@1.0.6: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 es-abstract: 1.22.1 - dev: true - /string.prototype.trimstart@1.0.6: - resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} + string.prototype.trimstart@1.0.6: dependencies: call-bind: 1.0.2 define-properties: 1.2.0 es-abstract: 1.22.1 - dev: true - /string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + string_decoder@1.1.1: dependencies: safe-buffer: 5.1.2 - dev: true - /string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 - dev: true - /stringify-object@3.3.0: - resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} - engines: {node: '>=4'} + stringify-object@3.3.0: dependencies: get-own-enumerable-property-symbols: 3.0.2 is-obj: 1.0.1 is-regexp: 1.0.0 - dev: true - /strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 - dev: true - /strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} + strip-ansi@7.1.0: dependencies: ansi-regex: 6.0.1 - dev: true - /strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - dev: true + strip-bom@3.0.0: {} - /strip-comments@2.0.1: - resolution: {integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==} - engines: {node: '>=10'} - dev: true + strip-comments@2.0.1: {} - /strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - dev: true + strip-final-newline@2.0.0: {} - /strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - dev: true + strip-final-newline@3.0.0: {} - /strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} + strip-indent@3.0.0: dependencies: min-indent: 1.0.1 - dev: true - /strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - dev: true + strip-json-comments@3.1.1: {} - /strip-literal@2.1.0: - resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} + strip-literal@2.1.0: dependencies: js-tokens: 9.0.0 - dev: true - /strong-log-transformer@2.1.0: - resolution: {integrity: sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==} - engines: {node: '>=4'} - hasBin: true + strong-log-transformer@2.1.0: dependencies: duplexer: 0.1.2 minimist: 1.2.8 through: 2.3.8 - dev: true - /strtok3@6.3.0: - resolution: {integrity: sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==} - engines: {node: '>=10'} + strtok3@6.3.0: dependencies: '@tokenizer/token': 0.3.0 peek-readable: 4.1.0 - dev: true - /style-loader@4.0.0(webpack@5.91.0): - resolution: {integrity: sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA==} - engines: {node: '>= 18.12.0'} - peerDependencies: - webpack: ^5.27.0 + style-loader@4.0.0(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)): dependencies: webpack: 5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4) - dev: true - /stylis@4.2.0: - resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} + stylis@4.2.0: {} - /supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} + supports-color@5.5.0: dependencies: has-flag: 3.0.0 - /supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} + supports-color@7.2.0: dependencies: has-flag: 4.0.0 - dev: true - /supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} + supports-color@8.1.1: dependencies: has-flag: 4.0.0 - dev: true - /supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} + supports-preserve-symlinks-flag@1.0.0: {} - /swc-loader@0.2.6(@swc/core@1.3.101)(webpack@5.91.0): - resolution: {integrity: sha512-9Zi9UP2YmDpgmQVbyOPJClY0dwf58JDyDMQ7uRc4krmc72twNI2fvlBWHLqVekBpPc7h5NJkGVT1zNDxFrqhvg==} - peerDependencies: - '@swc/core': ^1.2.147 - webpack: '>=2' + swc-loader@0.2.6(@swc/core@1.3.101)(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)): dependencies: '@swc/core': 1.3.101 '@swc/counter': 0.1.3 webpack: 5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4) - dev: true - /synckit@0.8.8: - resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} - engines: {node: ^14.18.0 || >=16.0.0} + synckit@0.8.8: dependencies: '@pkgr/core': 0.1.1 tslib: 2.6.2 - dev: true - /tabbable@6.2.0: - resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} - dev: true + tabbable@6.2.0: {} - /tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} - dev: true + tapable@2.2.1: {} - /tar-fs@2.1.1: - resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + tar-fs@2.1.1: dependencies: chownr: 1.1.4 mkdirp-classic: 0.5.3 pump: 3.0.0 tar-stream: 2.2.0 - dev: true - /tar-stream@2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} - engines: {node: '>=6'} + tar-stream@2.2.0: dependencies: bl: 4.1.0 end-of-stream: 1.4.4 fs-constants: 1.0.0 inherits: 2.0.4 readable-stream: 3.6.2 - dev: true - /tar@6.1.15: - resolution: {integrity: sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==} - engines: {node: '>=10'} + tar@6.1.15: dependencies: chownr: 2.0.0 fs-minipass: 2.1.0 @@ -13551,646 +15762,338 @@ packages: minizlib: 2.1.2 mkdirp: 1.0.4 yallist: 4.0.0 - dev: true - /telejson@7.2.0: - resolution: {integrity: sha512-1QTEcJkJEhc8OnStBx/ILRu5J2p0GjvWsBx56bmZRqnrkdBMUe+nX92jxV+p3dB4CP6PZCdJMQJwCggkNBMzkQ==} + telejson@7.2.0: dependencies: memoizerific: 1.11.3 - dev: true - /temp-dir@2.0.0: - resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} - engines: {node: '>=8'} - dev: true + temp-dir@2.0.0: {} - /temp@0.8.4: - resolution: {integrity: sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==} - engines: {node: '>=6.0.0'} + temp@0.8.4: dependencies: rimraf: 2.6.3 - dev: true - /tempy@0.6.0: - resolution: {integrity: sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==} - engines: {node: '>=10'} + tempy@0.6.0: dependencies: is-stream: 2.0.1 temp-dir: 2.0.0 type-fest: 0.16.0 unique-string: 2.0.0 - dev: true - /tempy@1.0.1: - resolution: {integrity: sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==} - engines: {node: '>=10'} + tempy@1.0.1: dependencies: del: 6.1.1 is-stream: 2.0.1 temp-dir: 2.0.0 type-fest: 0.16.0 unique-string: 2.0.0 - dev: true - /terser-webpack-plugin@5.3.10(@swc/core@1.3.101)(webpack@5.91.0): - 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-webpack-plugin@5.3.10(@swc/core@1.3.101)(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)): dependencies: '@jridgewell/trace-mapping': 0.3.25 - '@swc/core': 1.3.101 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.1 terser: 5.26.0 webpack: 5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4) - dev: true - - /terser-webpack-plugin@5.3.10(webpack@5.91.0): - 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 - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - jest-worker: 27.5.1 - schema-utils: 3.3.0 - serialize-javascript: 6.0.1 - terser: 5.26.0 - webpack: 5.91.0(webpack-cli@5.1.4) - dev: true + optionalDependencies: + '@swc/core': 1.3.101 - /terser@5.26.0: - resolution: {integrity: sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==} - engines: {node: '>=10'} - hasBin: true + terser@5.26.0: dependencies: '@jridgewell/source-map': 0.3.5 acorn: 8.10.0 commander: 2.20.3 source-map-support: 0.5.21 - dev: true - /text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - dev: true + text-table@0.2.0: {} - /through2@2.0.5: - resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + through2@2.0.5: dependencies: readable-stream: 2.3.8 xtend: 4.0.2 - dev: true - - /through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - dev: true - /thunky@1.1.0: - resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} - dev: true + through@2.3.8: {} - /timm@1.7.1: - resolution: {integrity: sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==} - dev: true + thunky@1.1.0: {} - /tiny-invariant@1.3.3: - resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - dev: true + timm@1.7.1: {} - /tinybench@2.5.1: - resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==} - dev: true + tiny-invariant@1.3.3: {} - /tinycolor2@1.6.0: - resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} - dev: true + tinybench@2.5.1: {} - /tinykeys@2.1.0: - resolution: {integrity: sha512-/MESnqBD1xItZJn5oGQ4OsNORQgJfPP96XSGoyu4eLpwpL0ifO0SYR5OD76u0YMhMXsqkb0UqvI9+yXTh4xv8Q==} - dev: true + tinycolor2@1.6.0: {} - /tinypool@0.8.3: - resolution: {integrity: sha512-Ud7uepAklqRH1bvwy22ynrliC7Dljz7Tm8M/0RBUW+YRa4YHhZ6e4PpgE+fu1zr/WqB1kbeuVrdfeuyIBpy4tw==} - engines: {node: '>=14.0.0'} - dev: true + tinykeys@2.1.0: {} - /tinyspy@2.2.0: - resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} - engines: {node: '>=14.0.0'} - dev: true + tinypool@0.8.3: {} - /tippy.js@6.3.7: - resolution: {integrity: sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==} - dependencies: - '@popperjs/core': 2.9.3 - dev: true + tinyspy@2.2.0: {} - /tmp@0.2.3: - resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} - engines: {node: '>=14.14'} - dev: true + tmp@0.2.3: {} - /to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} + to-fast-properties@2.0.0: {} - /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - dev: true - /tocbot@4.21.1: - resolution: {integrity: sha512-IfajhBTeg0HlMXu1f+VMbPef05QpDTsZ9X2Yn1+8npdaXsXg/+wrm9Ze1WG5OS1UDC3qJ5EQN/XOZ3gfXjPFCw==} - dev: true + tocbot@4.21.1: {} - /toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - dev: true + toidentifier@1.0.1: {} - /token-types@4.2.1: - resolution: {integrity: sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==} - engines: {node: '>=10'} + token-types@4.2.1: dependencies: '@tokenizer/token': 0.3.0 ieee754: 1.2.1 - dev: true - /totalist@3.0.1: - resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} - engines: {node: '>=6'} - dev: true + totalist@3.0.1: {} - /tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - dev: true + tr46@0.0.3: {} - /tr46@1.0.1: - resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + tr46@1.0.1: dependencies: punycode: 2.3.0 - dev: true - - /ts-api-utils@1.3.0(typescript@5.4.5): - resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} - engines: {node: '>=16'} - peerDependencies: - typescript: 5.4.5 - dependencies: - typescript: 5.4.5 - dev: true - - /ts-dedent@2.2.0: - resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} - engines: {node: '>=6.10'} - dev: true - /ts-loader@9.5.1(typescript@5.4.5)(webpack@5.91.0): - resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==} - engines: {node: '>=12.0.0'} - peerDependencies: - typescript: 5.4.5 - webpack: ^5.0.0 + ts-api-utils@1.3.0(typescript@5.4.5): dependencies: - chalk: 4.1.2 - enhanced-resolve: 5.15.0 - micromatch: 4.0.5 - semver: 7.5.4 - source-map: 0.7.4 typescript: 5.4.5 - webpack: 5.91.0(webpack-cli@5.1.4) - dev: true - - /ts-toolbelt@6.15.5: - resolution: {integrity: sha512-FZIXf1ksVyLcfr7M317jbB67XFJhOO1YqdTcuGaq9q5jLUoTikukZ+98TPjKiP2jC5CgmYdWWYs0s2nLSU0/1A==} - dev: true - /tsconfck@3.0.3(typescript@5.4.5): - resolution: {integrity: sha512-4t0noZX9t6GcPTfBAbIbbIU4pfpCwh0ueq3S4O/5qXI1VwK1outmxhe9dOiEWqMz3MW2LKgDTpqWV+37IWuVbA==} - engines: {node: ^18 || >=20} - hasBin: true - peerDependencies: - typescript: 5.4.5 - peerDependenciesMeta: - typescript: - optional: true + ts-dedent@2.2.0: {} + + ts-loader@9.5.1(typescript@5.4.5)(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)): dependencies: + chalk: 4.1.2 + enhanced-resolve: 5.15.0 + micromatch: 4.0.5 + semver: 7.5.4 + source-map: 0.7.4 typescript: 5.4.5 - dev: true + webpack: 5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4) - /tsconfig-paths-webpack-plugin@4.1.0: - resolution: {integrity: sha512-xWFISjviPydmtmgeUAuXp4N1fky+VCtfhOkDUFIv5ea7p4wuTomI4QTrXvFBX2S4jZsmyTSrStQl+E+4w+RzxA==} - engines: {node: '>=10.13.0'} + tsconfck@3.0.3(typescript@5.4.5): + optionalDependencies: + typescript: 5.4.5 + + tsconfig-paths-webpack-plugin@4.1.0: dependencies: chalk: 4.1.2 enhanced-resolve: 5.15.0 tsconfig-paths: 4.2.0 - dev: true - /tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + tsconfig-paths@3.15.0: dependencies: '@types/json5': 0.0.29 json5: 1.0.2 minimist: 1.2.8 strip-bom: 3.0.0 - dev: true - /tsconfig-paths@4.2.0: - resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} - engines: {node: '>=6'} + tsconfig-paths@4.2.0: dependencies: json5: 2.2.3 minimist: 1.2.8 strip-bom: 3.0.0 - dev: true - /tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - dev: true + tslib@1.14.1: {} - /tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + tslib@2.6.2: {} - /type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 - dev: true - /type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - dev: true + type-detect@4.0.8: {} - /type-fest@0.16.0: - resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} - engines: {node: '>=10'} - dev: true + type-fest@0.16.0: {} - /type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - dev: true + type-fest@0.20.2: {} - /type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - dev: true + type-fest@0.6.0: {} - /type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - dev: true + type-fest@0.8.1: {} - /type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} - dev: true + type-fest@2.19.0: {} - /type-fest@3.13.1: - resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} - engines: {node: '>=14.16'} - dev: true + type-fest@3.13.1: {} - /type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} + type-is@1.6.18: dependencies: media-typer: 0.3.0 mime-types: 2.1.35 - dev: true - /typed-array-buffer@1.0.0: - resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} - engines: {node: '>= 0.4'} + typed-array-buffer@1.0.0: dependencies: call-bind: 1.0.2 get-intrinsic: 1.2.1 is-typed-array: 1.1.12 - dev: true - /typed-array-byte-length@1.0.0: - resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} - engines: {node: '>= 0.4'} + typed-array-byte-length@1.0.0: dependencies: call-bind: 1.0.2 for-each: 0.3.3 has-proto: 1.0.1 is-typed-array: 1.1.12 - dev: true - /typed-array-byte-offset@1.0.0: - resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} - engines: {node: '>= 0.4'} + typed-array-byte-offset@1.0.0: dependencies: available-typed-arrays: 1.0.5 call-bind: 1.0.2 for-each: 0.3.3 has-proto: 1.0.1 is-typed-array: 1.1.12 - dev: true - /typed-array-length@1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + typed-array-length@1.0.4: dependencies: call-bind: 1.0.2 for-each: 0.3.3 is-typed-array: 1.1.12 - dev: true - /typescript@5.4.5: - resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} - engines: {node: '>=14.17'} - hasBin: true - dev: true + typescript@5.4.5: {} - /ufo@1.3.2: - resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} - dev: true + ufo@1.3.2: {} - /uglify-js@3.17.4: - resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} - engines: {node: '>=0.8.0'} - hasBin: true - requiresBuild: true - dev: true + uglify-js@3.17.4: optional: true - /unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + unbox-primitive@1.0.2: dependencies: call-bind: 1.0.2 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 - dev: true - /undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - dev: true + undici-types@5.26.5: {} - /unicode-canonical-property-names-ecmascript@2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} - engines: {node: '>=4'} - dev: true + unicode-canonical-property-names-ecmascript@2.0.0: {} - /unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} + unicode-match-property-ecmascript@2.0.0: dependencies: unicode-canonical-property-names-ecmascript: 2.0.0 unicode-property-aliases-ecmascript: 2.1.0 - dev: true - /unicode-match-property-value-ecmascript@2.1.0: - resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} - engines: {node: '>=4'} - dev: true + unicode-match-property-value-ecmascript@2.1.0: {} - /unicode-property-aliases-ecmascript@2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} - engines: {node: '>=4'} - dev: true + unicode-property-aliases-ecmascript@2.1.0: {} - /unicorn-magic@0.1.0: - resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} - engines: {node: '>=18'} - dev: true + unicorn-magic@0.1.0: {} - /unique-string@2.0.0: - resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} - engines: {node: '>=8'} + unique-string@2.0.0: dependencies: crypto-random-string: 2.0.0 - dev: true - /unist-util-is@6.0.0: - resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + unist-util-is@6.0.0: dependencies: '@types/unist': 3.0.2 - dev: true - /unist-util-visit-parents@6.0.1: - resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + unist-util-visit-parents@6.0.1: dependencies: '@types/unist': 3.0.2 unist-util-is: 6.0.0 - dev: true - /unist-util-visit@5.0.0: - resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + unist-util-visit@5.0.0: dependencies: '@types/unist': 3.0.2 unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 - dev: true - /universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - dev: true + universalify@0.1.2: {} - /universalify@2.0.0: - resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} - engines: {node: '>= 10.0.0'} - dev: true + universalify@2.0.0: {} - /unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - dev: true + unpipe@1.0.0: {} - /unplugin@1.4.0: - resolution: {integrity: sha512-5x4eIEL6WgbzqGtF9UV8VEC/ehKptPXDS6L2b0mv4FRMkJxRtjaJfOWDd6a8+kYbqsjklix7yWP0N3SUepjXcg==} + unplugin@1.4.0: dependencies: acorn: 8.10.0 chokidar: 3.6.0 webpack-sources: 3.2.3 webpack-virtual-modules: 0.5.0 - dev: true - /untildify@4.0.0: - resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} - engines: {node: '>=8'} - dev: true + untildify@4.0.0: {} - /upath@1.2.0: - resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} - engines: {node: '>=4'} - dev: true + upath@1.2.0: {} - /update-browserslist-db@1.0.13(browserslist@4.22.2): - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' + update-browserslist-db@1.0.13(browserslist@4.22.2): dependencies: browserslist: 4.22.2 escalade: 3.1.1 picocolors: 1.0.0 - /uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + uri-js@4.4.1: dependencies: punycode: 2.3.0 - dev: true - /use-callback-ref@1.3.0(@types/react@18.2.77)(react@18.2.0): - resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true + use-callback-ref@1.3.0(@types/react@18.2.77)(react@18.2.0): dependencies: - '@types/react': 18.2.77 react: 18.2.0 tslib: 2.6.2 + optionalDependencies: + '@types/react': 18.2.77 - /use-composed-ref@1.3.0(react@18.2.0): - resolution: {integrity: sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + use-composed-ref@1.3.0(react@18.2.0): dependencies: react: 18.2.0 - dev: true - /use-isomorphic-layout-effect@1.1.2(@types/react@18.2.77)(react@18.2.0): - resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true + use-isomorphic-layout-effect@1.1.2(@types/react@18.2.77)(react@18.2.0): dependencies: - '@types/react': 18.2.77 react: 18.2.0 - dev: true + optionalDependencies: + '@types/react': 18.2.77 - /use-latest@1.2.1(@types/react@18.2.77)(react@18.2.0): - resolution: {integrity: sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true + use-latest@1.2.1(@types/react@18.2.77)(react@18.2.0): dependencies: - '@types/react': 18.2.77 react: 18.2.0 use-isomorphic-layout-effect: 1.1.2(@types/react@18.2.77)(react@18.2.0) - dev: true + optionalDependencies: + '@types/react': 18.2.77 - /use-sidecar@1.1.2(@types/react@18.2.77)(react@18.2.0): - resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true + use-sidecar@1.1.2(@types/react@18.2.77)(react@18.2.0): dependencies: - '@types/react': 18.2.77 detect-node-es: 1.1.0 react: 18.2.0 tslib: 2.6.2 + optionalDependencies: + '@types/react': 18.2.77 - /utif@2.0.1: - resolution: {integrity: sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==} + utif@2.0.1: dependencies: pako: 1.0.11 - dev: true - /util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - dev: true + util-deprecate@1.0.2: {} - /util@0.12.5: - resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + util@0.12.5: dependencies: inherits: 2.0.4 is-arguments: 1.1.1 is-generator-function: 1.0.10 is-typed-array: 1.1.12 which-typed-array: 1.1.11 - dev: true - /utila@0.4.0: - resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} - dev: true + utila@0.4.0: {} - /utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} - dev: true + utils-merge@1.0.1: {} - /uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true - dev: true + uuid@8.3.2: {} - /uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - hasBin: true - dev: true + uuid@9.0.1: {} - /validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - dev: true - /validator@13.11.0: - resolution: {integrity: sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==} - engines: {node: '>= 0.10'} - dev: true + validator@13.11.0: {} - /vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} - dev: true + vary@1.1.2: {} - /vite-node@1.5.0: - resolution: {integrity: sha512-tV8h6gMj6vPzVCa7l+VGq9lwoJjW8Y79vst8QZZGiuRAfijU+EEWuc0kFpmndQrWhMMhet1jdSF+40KSZUqIIw==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true + vite-node@1.5.0(@types/node@18.19.31)(terser@5.26.0): dependencies: cac: 6.7.14 debug: 4.3.4 pathe: 1.1.1 picocolors: 1.0.0 - vite: 5.2.8(@types/node@18.19.31) + vite: 5.2.8(@types/node@18.19.31)(terser@5.26.0) transitivePeerDependencies: - '@types/node' - less @@ -14200,110 +16103,46 @@ packages: - sugarss - supports-color - terser - dev: true - /vite-plugin-dts@3.8.2(@types/node@18.19.31)(typescript@5.4.5)(vite@5.2.8): - resolution: {integrity: sha512-GPkLNBUU+ztskHj37nelNsgRLurFuqXxqICSd/IxjRmgee1T6IIYlRCanugc9QtgWjYVPC/HJzSfpXJSy9OLUA==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - typescript: 5.4.5 - vite: '*' - peerDependenciesMeta: - vite: - optional: true + vite-plugin-dts@3.8.2(@types/node@18.19.31)(rollup@4.14.2)(typescript@5.4.5)(vite@5.2.8(@types/node@18.19.31)(terser@5.26.0)): dependencies: '@microsoft/api-extractor': 7.43.0(@types/node@18.19.31) - '@rollup/pluginutils': 5.1.0 + '@rollup/pluginutils': 5.1.0(rollup@4.14.2) '@vue/language-core': 1.8.27(typescript@5.4.5) debug: 4.3.4 kolorist: 1.8.0 magic-string: 0.30.9 typescript: 5.4.5 - vite: 5.2.8(@types/node@18.19.31) vue-tsc: 1.8.27(typescript@5.4.5) + optionalDependencies: + vite: 5.2.8(@types/node@18.19.31)(terser@5.26.0) transitivePeerDependencies: - '@types/node' - rollup - supports-color - dev: true - /vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@5.2.8): - resolution: {integrity: sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==} - peerDependencies: - vite: '*' - peerDependenciesMeta: - vite: - optional: true + vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@5.2.8(@types/node@18.19.31)(terser@5.26.0)): dependencies: debug: 4.3.4 globrex: 0.1.2 tsconfck: 3.0.3(typescript@5.4.5) - vite: 5.2.8(@types/node@18.19.31) + optionalDependencies: + vite: 5.2.8(@types/node@18.19.31)(terser@5.26.0) transitivePeerDependencies: - supports-color - typescript - dev: true - /vite@5.2.8(@types/node@18.19.31): - resolution: {integrity: sha512-OyZR+c1CE8yeHw5V5t59aXsUPPVTHMDjEZz8MgguLL/Q7NblxhZUlTu9xSPqlsUO/y+X7dlU05jdhvyycD55DA==} - 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 + vite@5.2.8(@types/node@18.19.31)(terser@5.26.0): dependencies: - '@types/node': 18.19.31 esbuild: 0.20.2 postcss: 8.4.38 rollup: 4.14.2 optionalDependencies: + '@types/node': 18.19.31 fsevents: 2.3.3 - dev: true + terser: 5.26.0 - /vitest@1.5.0: - resolution: {integrity: sha512-d8UKgR0m2kjdxDWX6911uwxout6GHS0XaGH1cksSIVVG8kRlE7G7aBw7myKQCvDI5dT4j7ZMa+l706BIORMDLw==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.5.0 - '@vitest/ui': 1.5.0 - 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 + vitest@1.5.0(@types/node@18.19.31)(terser@5.26.0): dependencies: '@vitest/expect': 1.5.0 '@vitest/runner': 1.5.0 @@ -14322,9 +16161,11 @@ packages: strip-literal: 2.1.0 tinybench: 2.5.1 tinypool: 0.8.3 - vite: 5.2.8(@types/node@18.19.31) - vite-node: 1.5.0 + vite: 5.2.8(@types/node@18.19.31)(terser@5.26.0) + vite-node: 1.5.0(@types/node@18.19.31)(terser@5.26.0) why-is-node-running: 2.2.2 + optionalDependencies: + '@types/node': 18.19.31 transitivePeerDependencies: - less - lightningcss @@ -14333,80 +16174,48 @@ packages: - sugarss - supports-color - terser - dev: true - /vscode-oniguruma@1.7.0: - resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} - dev: true + vscode-oniguruma@1.7.0: {} - /vscode-textmate@8.0.0: - resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} - dev: true + vscode-textmate@8.0.0: {} - /vue-template-compiler@2.7.16: - resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} + vue-template-compiler@2.7.16: dependencies: de-indent: 1.0.2 he: 1.2.0 - dev: true - /vue-tsc@1.8.27(typescript@5.4.5): - resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==} - hasBin: true - peerDependencies: - typescript: 5.4.5 + vue-tsc@1.8.27(typescript@5.4.5): dependencies: '@volar/typescript': 1.11.1 '@vue/language-core': 1.8.27(typescript@5.4.5) semver: 7.6.0 typescript: 5.4.5 - dev: true - /watchpack@2.4.0: - resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} - engines: {node: '>=10.13.0'} + watchpack@2.4.0: dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 - dev: true - /watchpack@2.4.1: - resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} - engines: {node: '>=10.13.0'} + watchpack@2.4.1: dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 - dev: true - /wbuf@1.7.3: - resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} + wbuf@1.7.3: dependencies: minimalistic-assert: 1.0.1 - dev: true - /wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + wcwidth@1.0.1: dependencies: defaults: 1.0.4 - dev: true - /web-streams-polyfill@3.2.1: - resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} - engines: {node: '>= 8'} - dev: true + web-streams-polyfill@3.2.1: {} - /webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - dev: true + webidl-conversions@3.0.1: {} - /webidl-conversions@4.0.2: - resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} - dev: true + webidl-conversions@4.0.2: {} - /webpack-bundle-analyzer@4.10.2: - resolution: {integrity: sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==} - engines: {node: '>= 10.13.0'} - hasBin: true + webpack-bundle-analyzer@4.10.2: dependencies: '@discoveryjs/json-ext': 0.5.7 acorn: 8.10.0 @@ -14418,34 +16227,18 @@ packages: html-escaper: 2.0.2 opener: 1.5.2 picocolors: 1.0.0 - sirv: 2.0.4 - ws: 7.5.9 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: true - - /webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.2)(webpack@5.91.0): - resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==} - engines: {node: '>=14.15.0'} - hasBin: true - peerDependencies: - '@webpack-cli/generators': '*' - webpack: 5.x.x - webpack-bundle-analyzer: '*' - webpack-dev-server: '*' - peerDependenciesMeta: - '@webpack-cli/generators': - optional: true - webpack-bundle-analyzer: - optional: true - webpack-dev-server: - optional: true + sirv: 2.0.4 + ws: 7.5.9 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.2)(webpack@5.91.0): dependencies: '@discoveryjs/json-ext': 0.5.7 - '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.91.0) - '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.91.0) - '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack-dev-server@4.15.2)(webpack@5.91.0) + '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.2)(webpack@5.91.0))(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)) + '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.2)(webpack@5.91.0))(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)) + '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.2)(webpack@5.91.0))(webpack-dev-server@4.15.2(webpack-cli@5.1.4)(webpack@5.91.0))(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)) colorette: 2.0.20 commander: 10.0.1 cross-spawn: 7.0.3 @@ -14455,32 +16248,17 @@ packages: interpret: 3.1.1 rechoir: 0.8.0 webpack: 5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4) + webpack-merge: 5.10.0 + optionalDependencies: webpack-bundle-analyzer: 4.10.2 webpack-dev-server: 4.15.2(webpack-cli@5.1.4)(webpack@5.91.0) - webpack-merge: 5.10.0 - dev: true - /webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.0.4)(webpack@5.91.0): - resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==} - engines: {node: '>=14.15.0'} - hasBin: true - peerDependencies: - '@webpack-cli/generators': '*' - webpack: 5.x.x - webpack-bundle-analyzer: '*' - webpack-dev-server: '*' - peerDependenciesMeta: - '@webpack-cli/generators': - optional: true - webpack-bundle-analyzer: - optional: true - webpack-dev-server: - optional: true + webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.0.4)(webpack@5.91.0): dependencies: '@discoveryjs/json-ext': 0.5.7 - '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.91.0) - '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.91.0) - '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.0.4)(webpack@5.91.0) + '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.0.4)(webpack@5.91.0))(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)) + '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.0.4)(webpack@5.91.0))(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)) + '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.0.4)(webpack@5.91.0))(webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.91.0))(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)) colorette: 2.0.20 commander: 10.0.1 cross-spawn: 7.0.3 @@ -14490,32 +16268,17 @@ packages: interpret: 3.1.1 rechoir: 0.8.0 webpack: 5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4) + webpack-merge: 5.10.0 + optionalDependencies: webpack-bundle-analyzer: 4.10.2 webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.91.0) - webpack-merge: 5.10.0 - dev: true - /webpack-cli@5.1.4(webpack@5.91.0): - resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==} - engines: {node: '>=14.15.0'} - hasBin: true - peerDependencies: - '@webpack-cli/generators': '*' - webpack: 5.x.x - webpack-bundle-analyzer: '*' - webpack-dev-server: '*' - peerDependenciesMeta: - '@webpack-cli/generators': - optional: true - webpack-bundle-analyzer: - optional: true - webpack-dev-server: - optional: true + webpack-cli@5.1.4(webpack@5.91.0): dependencies: '@discoveryjs/json-ext': 0.5.7 - '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.91.0) - '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.91.0) - '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack@5.91.0) + '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4(webpack@5.91.0))(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)) + '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4(webpack@5.91.0))(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)) + '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4(webpack@5.91.0))(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)) colorette: 2.0.20 commander: 10.0.1 cross-spawn: 7.0.3 @@ -14524,15 +16287,10 @@ packages: import-local: 3.1.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.91.0(webpack-cli@5.1.4) + webpack: 5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4) webpack-merge: 5.10.0 - dev: true - /webpack-dev-middleware@5.3.4(webpack@5.91.0): - resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 + webpack-dev-middleware@5.3.4(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)): dependencies: colorette: 2.0.20 memfs: 3.5.3 @@ -14540,16 +16298,8 @@ packages: range-parser: 1.2.1 schema-utils: 4.2.0 webpack: 5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4) - dev: true - /webpack-dev-middleware@7.2.1(webpack@5.91.0): - resolution: {integrity: sha512-hRLz+jPQXo999Nx9fXVdKlg/aehsw1ajA9skAneGmT03xwmyuhvF93p6HUKKbWhXdcERtGTzUCtIQr+2IQegrA==} - engines: {node: '>= 18.12.0'} - peerDependencies: - webpack: ^5.0.0 - peerDependenciesMeta: - webpack: - optional: true + webpack-dev-middleware@7.2.1(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)): dependencies: colorette: 2.0.20 memfs: 4.8.1 @@ -14557,21 +16307,10 @@ packages: on-finished: 2.4.1 range-parser: 1.2.1 schema-utils: 4.2.0 + optionalDependencies: webpack: 5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4) - dev: true - /webpack-dev-server@4.15.2(webpack-cli@5.1.4)(webpack@5.91.0): - resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==} - engines: {node: '>= 12.13.0'} - hasBin: true - peerDependencies: - webpack: ^4.37.0 || ^5.0.0 - webpack-cli: '*' - peerDependenciesMeta: - webpack: - optional: true - webpack-cli: - optional: true + webpack-dev-server@4.15.2(webpack-cli@5.1.4)(webpack@5.91.0): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -14601,29 +16340,18 @@ packages: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 + webpack-dev-middleware: 5.3.4(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)) + ws: 8.16.0 + optionalDependencies: webpack: 5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.2)(webpack@5.91.0) - webpack-dev-middleware: 5.3.4(webpack@5.91.0) - ws: 8.16.0 transitivePeerDependencies: - bufferutil - debug - supports-color - utf-8-validate - dev: true - /webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.91.0): - resolution: {integrity: sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==} - engines: {node: '>= 18.12.0'} - hasBin: true - peerDependencies: - webpack: ^5.0.0 - webpack-cli: '*' - peerDependenciesMeta: - webpack: - optional: true - webpack-cli: - optional: true + webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.91.0): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -14653,101 +16381,39 @@ packages: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 + webpack-dev-middleware: 7.2.1(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)) + ws: 8.16.0 + optionalDependencies: webpack: 5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.0.4)(webpack@5.91.0) - webpack-dev-middleware: 7.2.1(webpack@5.91.0) - ws: 8.16.0 transitivePeerDependencies: - bufferutil - debug - supports-color - utf-8-validate - dev: true - /webpack-merge@5.10.0: - resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} - engines: {node: '>=10.0.0'} + webpack-merge@5.10.0: dependencies: clone-deep: 4.0.1 flat: 5.0.2 wildcard: 2.0.1 - dev: true - /webpack-pwa-manifest@4.3.0: - resolution: {integrity: sha512-3hK8Qg58SyLCUIz4PBYnfUPM6iJ5K88h8Uhc3MxmlJcVtDF/11aBBdUTdQkqc9bo6Cb8Q1v2xdsB2XO6pzTbiA==} - engines: {node: '>=6.0.0'} + webpack-pwa-manifest@4.3.0: dependencies: css-color-names: 1.0.1 jimp: 0.16.1 mime: 2.4.6 - dev: true - /webpack-sources@1.4.3: - resolution: {integrity: sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==} + webpack-sources@1.4.3: dependencies: source-list-map: 2.0.1 source-map: 0.6.1 - dev: true - /webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} - engines: {node: '>=10.13.0'} - dev: true - - /webpack-virtual-modules@0.5.0: - resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==} - dev: true + webpack-sources@3.2.3: {} - /webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4): - resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - 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.10.0 - acorn-import-assertions: 1.9.0(acorn@8.10.0) - browserslist: 4.22.2 - chrome-trace-event: 1.0.3 - enhanced-resolve: 5.16.0 - es-module-lexer: 1.4.1 - 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.3.101)(webpack@5.91.0) - watchpack: 2.4.1 - webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.2)(webpack@5.91.0) - webpack-sources: 3.2.3 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - dev: true + webpack-virtual-modules@0.5.0: {} - /webpack@5.91.0(webpack-cli@5.1.4): - resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true + webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.5 @@ -14770,116 +16436,81 @@ packages: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(webpack@5.91.0) + terser-webpack-plugin: 5.3.10(@swc/core@1.3.101)(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)) watchpack: 2.4.1 - webpack-cli: 5.1.4(webpack@5.91.0) webpack-sources: 3.2.3 + optionalDependencies: + webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.2)(webpack@5.91.0) transitivePeerDependencies: - '@swc/core' - esbuild - uglify-js - dev: true - /websocket-driver@0.7.4: - resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} - engines: {node: '>=0.8.0'} + websocket-driver@0.7.4: dependencies: http-parser-js: 0.5.8 safe-buffer: 5.2.1 websocket-extensions: 0.1.4 - dev: true - /websocket-extensions@0.1.4: - resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} - engines: {node: '>=0.8.0'} - dev: true + websocket-extensions@0.1.4: {} - /whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + whatwg-url@5.0.0: dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 - dev: true - /whatwg-url@7.1.0: - resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + whatwg-url@7.1.0: dependencies: lodash.sortby: 4.7.0 tr46: 1.0.1 webidl-conversions: 4.0.2 - dev: true - /which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + which-boxed-primitive@1.0.2: dependencies: is-bigint: 1.0.4 is-boolean-object: 1.1.2 is-number-object: 1.0.7 is-string: 1.0.7 is-symbol: 1.0.4 - dev: true - /which-collection@1.0.1: - resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + which-collection@1.0.1: dependencies: is-map: 2.0.2 is-set: 2.0.2 is-weakmap: 2.0.1 is-weakset: 2.0.2 - dev: true - /which-typed-array@1.1.11: - resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} - engines: {node: '>= 0.4'} + which-typed-array@1.1.11: dependencies: available-typed-arrays: 1.0.5 call-bind: 1.0.2 for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 - dev: true - /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true + which@2.0.2: dependencies: isexe: 2.0.0 - dev: true - /why-is-node-running@2.2.2: - resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} - engines: {node: '>=8'} - hasBin: true + why-is-node-running@2.2.2: dependencies: siginfo: 2.0.0 stackback: 0.0.2 - dev: true - /wildcard@2.0.1: - resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} - dev: true + wildcard@2.0.1: {} - /wordwrap@1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - dev: true + wordwrap@1.0.0: {} - /workbox-background-sync@7.0.0: - resolution: {integrity: sha512-S+m1+84gjdueM+jIKZ+I0Lx0BDHkk5Nu6a3kTVxP4fdj3gKouRNmhO8H290ybnJTOPfBDtTMXSQA/QLTvr7PeA==} + workbox-background-sync@7.0.0: dependencies: idb: 7.1.1 workbox-core: 7.0.0 - dev: true - /workbox-broadcast-update@7.0.0: - resolution: {integrity: sha512-oUuh4jzZrLySOo0tC0WoKiSg90bVAcnE98uW7F8GFiSOXnhogfNDGZelPJa+6KpGBO5+Qelv04Hqx2UD+BJqNQ==} + workbox-broadcast-update@7.0.0: dependencies: workbox-core: 7.0.0 - dev: true - /workbox-build@7.0.0: - resolution: {integrity: sha512-CttE7WCYW9sZC+nUYhQg3WzzGPr4IHmrPnjKiu3AMXsiNQKx+l4hHl63WTrnicLmKEKHScWDH8xsGBdrYgtBzg==} - engines: {node: '>=16.0.0'} + workbox-build@7.0.0: dependencies: '@apideck/better-ajv-errors': 0.3.6(ajv@8.12.0) '@babel/core': 7.24.4 @@ -14921,52 +16552,40 @@ packages: transitivePeerDependencies: - '@types/babel__core' - supports-color - dev: true - /workbox-cacheable-response@7.0.0: - resolution: {integrity: sha512-0lrtyGHn/LH8kKAJVOQfSu3/80WDc9Ma8ng0p2i/5HuUndGttH+mGMSvOskjOdFImLs2XZIimErp7tSOPmu/6g==} + workbox-cacheable-response@7.0.0: dependencies: workbox-core: 7.0.0 - /workbox-core@7.0.0: - resolution: {integrity: sha512-81JkAAZtfVP8darBpfRTovHg8DGAVrKFgHpOArZbdFd78VqHr5Iw65f2guwjE2NlCFbPFDoez3D3/6ZvhI/rwQ==} + workbox-core@7.0.0: {} - /workbox-expiration@7.0.0: - resolution: {integrity: sha512-MLK+fogW+pC3IWU9SFE+FRStvDVutwJMR5if1g7oBJx3qwmO69BNoJQVaMXq41R0gg3MzxVfwOGKx3i9P6sOLQ==} + workbox-expiration@7.0.0: dependencies: idb: 7.1.1 workbox-core: 7.0.0 - /workbox-google-analytics@7.0.0: - resolution: {integrity: sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg==} + workbox-google-analytics@7.0.0: dependencies: workbox-background-sync: 7.0.0 workbox-core: 7.0.0 workbox-routing: 7.0.0 workbox-strategies: 7.0.0 - dev: true - /workbox-navigation-preload@7.0.0: - resolution: {integrity: sha512-juWCSrxo/fiMz3RsvDspeSLGmbgC0U9tKqcUPZBCf35s64wlaLXyn2KdHHXVQrb2cqF7I0Hc9siQalainmnXJA==} + workbox-navigation-preload@7.0.0: dependencies: workbox-core: 7.0.0 - dev: true - /workbox-precaching@7.0.0: - resolution: {integrity: sha512-EC0vol623LJqTJo1mkhD9DZmMP604vHqni3EohhQVwhJlTgyKyOkMrZNy5/QHfOby+39xqC01gv4LjOm4HSfnA==} + workbox-precaching@7.0.0: dependencies: workbox-core: 7.0.0 workbox-routing: 7.0.0 workbox-strategies: 7.0.0 - /workbox-range-requests@7.0.0: - resolution: {integrity: sha512-SxAzoVl9j/zRU9OT5+IQs7pbJBOUOlriB8Gn9YMvi38BNZRbM+RvkujHMo8FOe9IWrqqwYgDFBfv6sk76I1yaQ==} + workbox-range-requests@7.0.0: dependencies: workbox-core: 7.0.0 - dev: true - /workbox-recipes@7.0.0: - resolution: {integrity: sha512-DntcK9wuG3rYQOONWC0PejxYYIDHyWWZB/ueTbOUDQgefaeIj1kJ7pdP3LZV2lfrj8XXXBWt+JDRSw1lLLOnww==} + workbox-recipes@7.0.0: dependencies: workbox-cacheable-response: 7.0.0 workbox-core: 7.0.0 @@ -14974,34 +16593,23 @@ packages: workbox-precaching: 7.0.0 workbox-routing: 7.0.0 workbox-strategies: 7.0.0 - dev: true - /workbox-routing@7.0.0: - resolution: {integrity: sha512-8YxLr3xvqidnbVeGyRGkaV4YdlKkn5qZ1LfEePW3dq+ydE73hUUJJuLmGEykW3fMX8x8mNdL0XrWgotcuZjIvA==} + workbox-routing@7.0.0: dependencies: workbox-core: 7.0.0 - /workbox-strategies@7.0.0: - resolution: {integrity: sha512-dg3qJU7tR/Gcd/XXOOo7x9QoCI9nk74JopaJaYAQ+ugLi57gPsXycVdBnYbayVj34m6Y8ppPwIuecrzkpBVwbA==} + workbox-strategies@7.0.0: dependencies: workbox-core: 7.0.0 - /workbox-streams@7.0.0: - resolution: {integrity: sha512-moVsh+5to//l6IERWceYKGiftc+prNnqOp2sgALJJFbnNVpTXzKISlTIsrWY+ogMqt+x1oMazIdHj25kBSq/HQ==} + workbox-streams@7.0.0: dependencies: workbox-core: 7.0.0 workbox-routing: 7.0.0 - dev: true - /workbox-sw@7.0.0: - resolution: {integrity: sha512-SWfEouQfjRiZ7GNABzHUKUyj8pCoe+RwjfOIajcx6J5mtgKkN+t8UToHnpaJL5UVVOf5YhJh+OHhbVNIHe+LVA==} - dev: true + workbox-sw@7.0.0: {} - /workbox-webpack-plugin@7.0.0(webpack@5.91.0): - resolution: {integrity: sha512-R1ZzCHPfzeJjLK2/TpKUhxSQ3fFDCxlWxgRhhSjMQLz3G2MlBnyw/XeYb34e7SGgSv0qG22zEhMIzjMNqNeKbw==} - engines: {node: '>=16.0.0'} - peerDependencies: - webpack: ^4.4.0 || ^5.9.0 + workbox-webpack-plugin@7.0.0(webpack@5.91.0(@swc/core@1.3.101)(webpack-cli@5.1.4)): dependencies: fast-json-stable-stringify: 2.1.0 pretty-bytes: 5.6.0 @@ -15012,170 +16620,79 @@ packages: transitivePeerDependencies: - '@types/babel__core' - supports-color - dev: true - /workbox-window@7.0.0: - resolution: {integrity: sha512-j7P/bsAWE/a7sxqTzXo3P2ALb1reTfZdvVp6OJ/uLr/C2kZAMvjeWGm8V4htQhor7DOvYg0sSbFN2+flT5U0qA==} + workbox-window@7.0.0: dependencies: '@types/trusted-types': 2.0.7 workbox-core: 7.0.0 - /wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - dev: true - /wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} + wrap-ansi@8.1.0: dependencies: ansi-styles: 6.2.1 string-width: 5.1.2 strip-ansi: 7.1.0 - dev: true - /wrap-ansi@9.0.0: - resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} - engines: {node: '>=18'} + wrap-ansi@9.0.0: dependencies: ansi-styles: 6.2.1 string-width: 7.0.0 strip-ansi: 7.1.0 - dev: true - /wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - dev: true + wrappy@1.0.2: {} - /write-file-atomic@2.4.3: - resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==} + write-file-atomic@2.4.3: dependencies: graceful-fs: 4.2.11 imurmurhash: 0.1.4 signal-exit: 3.0.7 - dev: true - /ws@7.5.9: - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} - 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 - dev: true + ws@7.5.9: {} - /ws@8.11.0: - resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==} - 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 - dev: false + ws@8.11.0: {} - /ws@8.13.0: - resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} - 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 - dev: true + ws@8.13.0: {} - /ws@8.16.0: - resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} - 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 - dev: true + ws@8.16.0: {} - /xhr@2.6.0: - resolution: {integrity: sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==} + xhr@2.6.0: dependencies: global: 4.4.0 is-function: 1.0.2 parse-headers: 2.0.5 xtend: 4.0.2 - dev: true - /xml-parse-from-string@1.0.1: - resolution: {integrity: sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==} - dev: true + xml-parse-from-string@1.0.1: {} - /xml2js@0.4.23: - resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==} - engines: {node: '>=4.0.0'} + xml2js@0.4.23: dependencies: sax: 1.3.0 xmlbuilder: 11.0.1 - dev: true - /xmlbuilder@11.0.1: - resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} - engines: {node: '>=4.0'} - dev: true + xmlbuilder@11.0.1: {} - /xmlhttprequest-ssl@2.0.0: - resolution: {integrity: sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==} - engines: {node: '>=0.4.0'} - dev: false + xmlhttprequest-ssl@2.0.0: {} - /xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - dev: true + xtend@4.0.2: {} - /y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - dev: true + y18n@5.0.8: {} - /yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + yallist@3.1.1: {} - /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - dev: true + yallist@4.0.0: {} - /yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} + yaml@1.10.2: {} - /yaml@2.3.4: - resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} - engines: {node: '>= 14'} - dev: true + yaml@2.3.4: {} - /yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - dev: true + yargs-parser@21.1.1: {} - /yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} + yargs@17.7.2: dependencies: cliui: 8.0.1 escalade: 3.1.1 @@ -15184,26 +16701,15 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 - dev: true - /yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - dev: true + yocto-queue@0.1.0: {} - /yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} - engines: {node: '>=12.20'} - dev: true + yocto-queue@1.0.0: {} - /z-schema@5.0.5: - resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==} - engines: {node: '>=8.0.0'} - hasBin: true + z-schema@5.0.5: dependencies: lodash.get: 4.4.2 lodash.isequal: 4.5.0 validator: 13.11.0 optionalDependencies: commander: 9.5.0 - dev: true