From e072141953595085f29aae2f65953a6bb279380b Mon Sep 17 00:00:00 2001 From: mlogclub Date: Mon, 27 Jul 2026 19:04:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E7=89=88=E6=9C=AC=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 4 +- Dockerfile | 12 + Taskfile.yml | 17 + flowgram-editor/README.md | 386 + flowgram-editor/README.zh_CN.md | 386 + flowgram-editor/eslint.config.js | 20 + flowgram-editor/index.html | 12 + flowgram-editor/package.json | 78 + flowgram-editor/pnpm-lock.yaml | 10224 ++++++++++++++++ flowgram-editor/rsbuild.config.ts | 41 + flowgram-editor/src/app.tsx | 18 + .../src/assets/icon-auto-layout.tsx | 13 + flowgram-editor/src/assets/icon-break.jpg | Bin 0 -> 28182 bytes flowgram-editor/src/assets/icon-cancel.tsx | 24 + flowgram-editor/src/assets/icon-comment.tsx | 24 + flowgram-editor/src/assets/icon-condition.svg | 9 + flowgram-editor/src/assets/icon-continue.jpg | Bin 0 -> 38177 bytes flowgram-editor/src/assets/icon-end.jpg | Bin 0 -> 21016 bytes flowgram-editor/src/assets/icon-http.svg | 5 + flowgram-editor/src/assets/icon-llm.jpg | Bin 0 -> 11089 bytes flowgram-editor/src/assets/icon-loop.jpg | Bin 0 -> 25572 bytes flowgram-editor/src/assets/icon-minimap.tsx | 24 + flowgram-editor/src/assets/icon-mouse.tsx | 41 + flowgram-editor/src/assets/icon-pad.tsx | 56 + flowgram-editor/src/assets/icon-script.png | Bin 0 -> 3659 bytes flowgram-editor/src/assets/icon-start.jpg | Bin 0 -> 20971 bytes flowgram-editor/src/assets/icon-success.tsx | 37 + .../src/assets/icon-switch-line.tsx | 15 + flowgram-editor/src/assets/icon-variable.png | Bin 0 -> 3430 bytes flowgram-editor/src/assets/icon-warning.tsx | 27 + .../src/components/add-node/index.tsx | 28 + .../src/components/add-node/use-add-node.ts | 115 + .../src/components/base-node/index.tsx | 49 + .../src/components/base-node/node-wrapper.tsx | 83 + .../src/components/base-node/styles.tsx | 39 + .../src/components/base-node/utils.ts | 23 + .../comment/components/blank-area.tsx | 48 + .../comment/components/border-area.tsx | 120 + .../comment/components/container.tsx | 50 + .../comment/components/content-drag-area.tsx | 94 + .../comment/components/drag-area.tsx | 48 + .../components/comment/components/editor.tsx | 66 + .../components/comment/components/index.css | 108 + .../components/comment/components/index.ts | 8 + .../comment/components/more-button.tsx | 26 + .../components/comment/components/render.tsx | 83 + .../comment/components/resize-area.tsx | 89 + .../src/components/comment/constant.ts | 27 + .../src/components/comment/hooks/index.ts | 7 + .../src/components/comment/hooks/use-model.ts | 55 + .../components/comment/hooks/use-overflow.ts | 50 + .../comment/hooks/use-placeholder.ts | 34 + .../src/components/comment/hooks/use-size.ts | 168 + .../src/components/comment/index.ts | 6 + .../src/components/comment/model.ts | 127 + .../src/components/comment/type.ts | 35 + flowgram-editor/src/components/group/color.ts | 105 + .../group/components/background.tsx | 55 + .../src/components/group/components/color.tsx | 50 + .../components/group/components/header.tsx | 41 + .../group/components/icon-group.tsx | 52 + .../src/components/group/components/index.ts | 7 + .../group/components/node-render.tsx | 82 + .../group/components/tips/global-store.ts | 38 + .../group/components/tips/icon-close.tsx | 14 + .../group/components/tips/index.tsx | 41 + .../group/components/tips/is-mac-os.ts | 6 + .../components/group/components/tips/style.ts | 79 + .../group/components/tips/use-control.ts | 71 + .../src/components/group/components/title.tsx | 38 + .../src/components/group/components/tools.tsx | 19 + .../components/group/components/ungroup.tsx | 36 + .../src/components/group/constant.ts | 12 + .../src/components/group/index.css | 117 + flowgram-editor/src/components/group/index.ts | 9 + flowgram-editor/src/components/index.ts | 10 + .../src/components/line-add-button/button.tsx | 31 + .../src/components/line-add-button/index.less | 13 + .../src/components/line-add-button/index.tsx | 129 + .../components/line-add-button/use-visible.ts | 28 + .../src/components/node-menu/index.tsx | 145 + .../src/components/node-panel/index.less | 60 + .../src/components/node-panel/index.tsx | 64 + .../src/components/node-panel/node-list.tsx | 116 + .../node-panel/node-placeholder.tsx | 31 + .../src/components/problem-panel/index.ts | 6 + .../problem-panel/problem-panel.tsx | 100 + .../problem-panel/use-watch-validate.ts | 46 + .../components/selector-box-popover/index.tsx | 103 + .../src/components/sidebar/index.tsx | 4 + .../components/sidebar/node-form-panel.tsx | 94 + .../sidebar/sidebar-node-renderer.tsx | 30 + .../src/components/testrun/hooks/index.ts | 8 + .../components/testrun/hooks/use-fields.ts | 34 + .../components/testrun/hooks/use-form-meta.ts | 45 + .../testrun/hooks/use-sync-default.ts | 37 + .../testrun/json-value-editor/index.tsx | 47 + .../node-status-bar/group/index.module.less | 28 + .../testrun/node-status-bar/group/index.tsx | 61 + .../node-status-bar/header/index.module.less | 57 + .../testrun/node-status-bar/header/index.tsx | 67 + .../testrun/node-status-bar/index.tsx | 55 + .../node-status-bar/render/index.module.less | 94 + .../testrun/node-status-bar/render/index.tsx | 187 + .../node-status-bar/viewer/index.module.less | 142 + .../testrun/node-status-bar/viewer/index.tsx | 189 + .../testrun/testrun-button/index.module.less | 16 + .../testrun/testrun-button/index.tsx | 78 + .../testrun/testrun-form/index.module.less | 127 + .../components/testrun/testrun-form/index.tsx | 130 + .../components/testrun/testrun-form/type.ts | 21 + .../testrun-json-input/index.module.less | 44 + .../testrun/testrun-json-input/index.tsx | 32 + .../testrun/testrun-panel/index.module.less | 143 + .../testrun/testrun-panel/index.tsx | 4 + .../testrun/testrun-panel/test-run-panel.tsx | 155 + .../src/components/tools/auto-layout.tsx | 44 + .../src/components/tools/comment.tsx | 84 + .../src/components/tools/download.tsx | 102 + .../src/components/tools/fit-view.tsx | 22 + .../src/components/tools/index.tsx | 86 + .../src/components/tools/interactive.tsx | 98 + .../src/components/tools/minimap-switch.tsx | 26 + .../src/components/tools/minimap.tsx | 35 + .../components/tools/mouse-pad-selector.less | 117 + .../components/tools/mouse-pad-selector.tsx | 122 + .../src/components/tools/readonly.tsx | 36 + flowgram-editor/src/components/tools/save.tsx | 71 + .../src/components/tools/styles.tsx | 52 + .../src/components/tools/switch-line.tsx | 24 + .../src/components/tools/zoom-select.tsx | 46 + flowgram-editor/src/context/index.ts | 7 + .../src/context/node-render-context.ts | 13 + .../src/context/sidebar-context.ts | 8 + flowgram-editor/src/editor.tsx | 76 + .../src/form-components/feedback.tsx | 40 + .../form-components/form-content/index.tsx | 29 + .../form-components/form-content/styles.tsx | 26 + .../src/form-components/form-header/index.tsx | 73 + .../form-components/form-header/styles.tsx | 41 + .../form-header/title-input.tsx | 50 + .../src/form-components/form-header/utils.tsx | 15 + .../src/form-components/form-inputs/index.tsx | 68 + .../form-components/form-inputs/styles.tsx | 8 + .../src/form-components/form-item/index.css | 14 + .../src/form-components/form-item/index.tsx | 95 + flowgram-editor/src/form-components/index.ts | 10 + flowgram-editor/src/hooks/index.ts | 9 + .../src/hooks/use-editor-props.tsx | 402 + flowgram-editor/src/hooks/use-is-sidebar.ts | 12 + .../src/hooks/use-node-render-context.ts | 12 + flowgram-editor/src/hooks/use-port-click.ts | 127 + flowgram-editor/src/index.ts | 6 + flowgram-editor/src/initial-data.ts | 611 + .../src/nodes/block-end/form-meta.tsx | 40 + flowgram-editor/src/nodes/block-end/index.ts | 46 + .../src/nodes/block-start/form-meta.tsx | 40 + .../src/nodes/block-start/index.ts | 46 + flowgram-editor/src/nodes/break/form-meta.tsx | 33 + flowgram-editor/src/nodes/break/index.ts | 44 + .../src/nodes/code/components/code.tsx | 34 + .../src/nodes/code/components/inputs.tsx | 38 + .../src/nodes/code/components/outputs.tsx | 44 + flowgram-editor/src/nodes/code/form-meta.tsx | 32 + flowgram-editor/src/nodes/code/index.tsx | 86 + flowgram-editor/src/nodes/code/types.tsx | 20 + flowgram-editor/src/nodes/comment/index.tsx | 26 + .../condition/condition-inputs/index.tsx | 88 + .../condition/condition-inputs/styles.tsx | 12 + .../src/nodes/condition/form-meta.tsx | 35 + flowgram-editor/src/nodes/condition/index.ts | 50 + flowgram-editor/src/nodes/constants.ts | 26 + .../src/nodes/continue/form-meta.tsx | 33 + flowgram-editor/src/nodes/continue/index.ts | 44 + .../src/nodes/default-form-meta.tsx | 77 + flowgram-editor/src/nodes/end/form-meta.tsx | 61 + flowgram-editor/src/nodes/end/index.ts | 38 + flowgram-editor/src/nodes/group/index.tsx | 66 + .../src/nodes/http/components/api.tsx | 60 + .../src/nodes/http/components/body.tsx | 94 + .../src/nodes/http/components/headers.tsx | 39 + .../src/nodes/http/components/params.tsx | 39 + .../src/nodes/http/components/timeout.tsx | 51 + flowgram-editor/src/nodes/http/form-meta.tsx | 45 + flowgram-editor/src/nodes/http/index.tsx | 53 + flowgram-editor/src/nodes/http/types.tsx | 36 + flowgram-editor/src/nodes/index.ts | 45 + flowgram-editor/src/nodes/llm/index.ts | 97 + flowgram-editor/src/nodes/loop/form-meta.tsx | 96 + flowgram-editor/src/nodes/loop/index.ts | 114 + .../condition-inputs/index.tsx | 185 + .../condition-inputs/styles.tsx | 43 + .../src/nodes/multi-condition/form-meta.tsx | 45 + .../src/nodes/multi-condition/index.ts | 57 + flowgram-editor/src/nodes/start/form-meta.tsx | 66 + flowgram-editor/src/nodes/start/index.ts | 39 + .../src/nodes/variable/form-meta.tsx | 36 + flowgram-editor/src/nodes/variable/index.tsx | 48 + flowgram-editor/src/nodes/variable/types.tsx | 15 + .../context-menu-layer.tsx | 84 + .../context-menu-plugin.ts | 28 + .../src/plugins/context-menu-plugin/index.ts | 6 + flowgram-editor/src/plugins/index.ts | 9 + .../plugins/panel-manager-plugin/constants.ts | 10 + .../src/plugins/panel-manager-plugin/hooks.ts | 44 + .../plugins/panel-manager-plugin/index.tsx | 46 + .../runtime-plugin/client/base-client.ts | 22 + .../client/browser-client/index.ts | 46 + .../plugins/runtime-plugin/client/index.ts | 8 + .../client/server-client/constant.ts | 12 + .../client/server-client/index.ts | 151 + .../client/server-client/type.ts | 9 + .../runtime-plugin/create-runtime-plugin.ts | 34 + .../src/plugins/runtime-plugin/index.ts | 7 + .../runtime-plugin/runtime-service/index.ts | 221 + .../src/plugins/runtime-plugin/type.ts | 21 + .../components/full-variable-list.tsx | 13 + .../components/global-variable-editor.tsx | 45 + .../components/index.module.less | 44 + .../components/variable-panel.tsx | 45 + .../plugins/variable-panel-plugin/index.ts | 6 + .../variable-panel-layer.tsx | 27 + .../variable-panel-plugin.ts | 69 + .../src/services/custom-service.ts | 47 + flowgram-editor/src/services/index.ts | 7 + .../src/services/validate-service.ts | 55 + .../src/shortcuts/collapse/index.ts | 35 + flowgram-editor/src/shortcuts/constants.ts | 22 + flowgram-editor/src/shortcuts/copy/index.ts | 274 + flowgram-editor/src/shortcuts/delete/index.ts | 127 + flowgram-editor/src/shortcuts/expand/index.ts | 35 + flowgram-editor/src/shortcuts/index.ts | 7 + flowgram-editor/src/shortcuts/paste/index.ts | 238 + .../src/shortcuts/paste/traverse.ts | 189 + .../src/shortcuts/paste/unique-workflow.ts | 113 + .../src/shortcuts/select-all/index.ts | 34 + flowgram-editor/src/shortcuts/shortcuts.ts | 28 + flowgram-editor/src/shortcuts/type.ts | 27 + .../src/shortcuts/zoom-in/index.ts | 32 + .../src/shortcuts/zoom-out/index.ts | 32 + flowgram-editor/src/styles/index.css | 90 + flowgram-editor/src/type.d.ts | 9 + flowgram-editor/src/typings/index.ts | 7 + flowgram-editor/src/typings/json-schema.ts | 9 + flowgram-editor/src/typings/node.ts | 85 + flowgram-editor/src/utils/can-contain-node.ts | 54 + flowgram-editor/src/utils/index.ts | 8 + flowgram-editor/src/utils/on-drag-line-end.ts | 100 + .../src/utils/toggle-loop-expanded.ts | 75 + flowgram-editor/tsconfig.json | 38 + internal/ai/runtime/workflow/executor.go | 130 +- internal/ai/runtime/workflow/executor_test.go | 55 + internal/ai/workflow/dsl/types.go | 20 +- internal/ai/workflow/registry/registry.go | 42 + internal/ai/workflow/validator/validator.go | 70 + .../ai/workflow/validator/validator_test.go | 40 + internal/services/ai_workflow_service.go | 57 + internal/services/ai_workflow_service_test.go | 21 + .../_components/workflow-run-audit-graph.tsx | 9 +- .../_components/editor/base-node.tsx | 77 - .../_components/editor/comment-node.tsx | 89 - .../editor/editor-canvas-events.tsx | 53 - .../_components/editor/editor-context.tsx | 49 - .../_components/editor/editor-provider.tsx | 151 - .../_components/editor/editor-tools.tsx | 505 - .../_components/editor/line-add-button.tsx | 96 - .../_components/editor/node-form-panel.tsx | 715 -- .../_components/editor/node-icon.tsx | 46 - .../_components/editor/node-panel.tsx | 66 - .../_components/editor/node-registry.tsx | 54 - .../_components/editor/on-drag-line-end.ts | 57 - .../ai-workflows/_components/editor/types.ts | 34 - .../_components/editor/use-port-click.ts | 69 - .../_components/editor/workflow-editor.tsx | 155 - .../_components/editor/workflow-model.ts | 273 - .../_components/official-workflow-editor.tsx | 80 + .../_components/workflow-workbench.tsx | 39 +- web/app/layout.tsx | 1 - web/lib/api/admin.ts | 5 +- web/package.json | 10 - web/pnpm-lock.yaml | 877 -- 281 files changed, 25145 insertions(+), 3405 deletions(-) create mode 100644 flowgram-editor/README.md create mode 100644 flowgram-editor/README.zh_CN.md create mode 100644 flowgram-editor/eslint.config.js create mode 100644 flowgram-editor/index.html create mode 100644 flowgram-editor/package.json create mode 100644 flowgram-editor/pnpm-lock.yaml create mode 100644 flowgram-editor/rsbuild.config.ts create mode 100644 flowgram-editor/src/app.tsx create mode 100644 flowgram-editor/src/assets/icon-auto-layout.tsx create mode 100644 flowgram-editor/src/assets/icon-break.jpg create mode 100644 flowgram-editor/src/assets/icon-cancel.tsx create mode 100644 flowgram-editor/src/assets/icon-comment.tsx create mode 100644 flowgram-editor/src/assets/icon-condition.svg create mode 100644 flowgram-editor/src/assets/icon-continue.jpg create mode 100644 flowgram-editor/src/assets/icon-end.jpg create mode 100644 flowgram-editor/src/assets/icon-http.svg create mode 100644 flowgram-editor/src/assets/icon-llm.jpg create mode 100644 flowgram-editor/src/assets/icon-loop.jpg create mode 100644 flowgram-editor/src/assets/icon-minimap.tsx create mode 100644 flowgram-editor/src/assets/icon-mouse.tsx create mode 100644 flowgram-editor/src/assets/icon-pad.tsx create mode 100644 flowgram-editor/src/assets/icon-script.png create mode 100644 flowgram-editor/src/assets/icon-start.jpg create mode 100644 flowgram-editor/src/assets/icon-success.tsx create mode 100644 flowgram-editor/src/assets/icon-switch-line.tsx create mode 100644 flowgram-editor/src/assets/icon-variable.png create mode 100644 flowgram-editor/src/assets/icon-warning.tsx create mode 100644 flowgram-editor/src/components/add-node/index.tsx create mode 100644 flowgram-editor/src/components/add-node/use-add-node.ts create mode 100644 flowgram-editor/src/components/base-node/index.tsx create mode 100644 flowgram-editor/src/components/base-node/node-wrapper.tsx create mode 100644 flowgram-editor/src/components/base-node/styles.tsx create mode 100644 flowgram-editor/src/components/base-node/utils.ts create mode 100644 flowgram-editor/src/components/comment/components/blank-area.tsx create mode 100644 flowgram-editor/src/components/comment/components/border-area.tsx create mode 100644 flowgram-editor/src/components/comment/components/container.tsx create mode 100644 flowgram-editor/src/components/comment/components/content-drag-area.tsx create mode 100644 flowgram-editor/src/components/comment/components/drag-area.tsx create mode 100644 flowgram-editor/src/components/comment/components/editor.tsx create mode 100644 flowgram-editor/src/components/comment/components/index.css create mode 100644 flowgram-editor/src/components/comment/components/index.ts create mode 100644 flowgram-editor/src/components/comment/components/more-button.tsx create mode 100644 flowgram-editor/src/components/comment/components/render.tsx create mode 100644 flowgram-editor/src/components/comment/components/resize-area.tsx create mode 100644 flowgram-editor/src/components/comment/constant.ts create mode 100644 flowgram-editor/src/components/comment/hooks/index.ts create mode 100644 flowgram-editor/src/components/comment/hooks/use-model.ts create mode 100644 flowgram-editor/src/components/comment/hooks/use-overflow.ts create mode 100644 flowgram-editor/src/components/comment/hooks/use-placeholder.ts create mode 100644 flowgram-editor/src/components/comment/hooks/use-size.ts create mode 100644 flowgram-editor/src/components/comment/index.ts create mode 100644 flowgram-editor/src/components/comment/model.ts create mode 100644 flowgram-editor/src/components/comment/type.ts create mode 100644 flowgram-editor/src/components/group/color.ts create mode 100644 flowgram-editor/src/components/group/components/background.tsx create mode 100644 flowgram-editor/src/components/group/components/color.tsx create mode 100644 flowgram-editor/src/components/group/components/header.tsx create mode 100644 flowgram-editor/src/components/group/components/icon-group.tsx create mode 100644 flowgram-editor/src/components/group/components/index.ts create mode 100644 flowgram-editor/src/components/group/components/node-render.tsx create mode 100644 flowgram-editor/src/components/group/components/tips/global-store.ts create mode 100644 flowgram-editor/src/components/group/components/tips/icon-close.tsx create mode 100644 flowgram-editor/src/components/group/components/tips/index.tsx create mode 100644 flowgram-editor/src/components/group/components/tips/is-mac-os.ts create mode 100644 flowgram-editor/src/components/group/components/tips/style.ts create mode 100644 flowgram-editor/src/components/group/components/tips/use-control.ts create mode 100644 flowgram-editor/src/components/group/components/title.tsx create mode 100644 flowgram-editor/src/components/group/components/tools.tsx create mode 100644 flowgram-editor/src/components/group/components/ungroup.tsx create mode 100644 flowgram-editor/src/components/group/constant.ts create mode 100644 flowgram-editor/src/components/group/index.css create mode 100644 flowgram-editor/src/components/group/index.ts create mode 100644 flowgram-editor/src/components/index.ts create mode 100644 flowgram-editor/src/components/line-add-button/button.tsx create mode 100644 flowgram-editor/src/components/line-add-button/index.less create mode 100644 flowgram-editor/src/components/line-add-button/index.tsx create mode 100644 flowgram-editor/src/components/line-add-button/use-visible.ts create mode 100644 flowgram-editor/src/components/node-menu/index.tsx create mode 100644 flowgram-editor/src/components/node-panel/index.less create mode 100644 flowgram-editor/src/components/node-panel/index.tsx create mode 100644 flowgram-editor/src/components/node-panel/node-list.tsx create mode 100644 flowgram-editor/src/components/node-panel/node-placeholder.tsx create mode 100644 flowgram-editor/src/components/problem-panel/index.ts create mode 100644 flowgram-editor/src/components/problem-panel/problem-panel.tsx create mode 100644 flowgram-editor/src/components/problem-panel/use-watch-validate.ts create mode 100644 flowgram-editor/src/components/selector-box-popover/index.tsx create mode 100644 flowgram-editor/src/components/sidebar/index.tsx create mode 100644 flowgram-editor/src/components/sidebar/node-form-panel.tsx create mode 100644 flowgram-editor/src/components/sidebar/sidebar-node-renderer.tsx create mode 100644 flowgram-editor/src/components/testrun/hooks/index.ts create mode 100644 flowgram-editor/src/components/testrun/hooks/use-fields.ts create mode 100644 flowgram-editor/src/components/testrun/hooks/use-form-meta.ts create mode 100644 flowgram-editor/src/components/testrun/hooks/use-sync-default.ts create mode 100644 flowgram-editor/src/components/testrun/json-value-editor/index.tsx create mode 100644 flowgram-editor/src/components/testrun/node-status-bar/group/index.module.less create mode 100644 flowgram-editor/src/components/testrun/node-status-bar/group/index.tsx create mode 100644 flowgram-editor/src/components/testrun/node-status-bar/header/index.module.less create mode 100644 flowgram-editor/src/components/testrun/node-status-bar/header/index.tsx create mode 100644 flowgram-editor/src/components/testrun/node-status-bar/index.tsx create mode 100644 flowgram-editor/src/components/testrun/node-status-bar/render/index.module.less create mode 100644 flowgram-editor/src/components/testrun/node-status-bar/render/index.tsx create mode 100644 flowgram-editor/src/components/testrun/node-status-bar/viewer/index.module.less create mode 100644 flowgram-editor/src/components/testrun/node-status-bar/viewer/index.tsx create mode 100644 flowgram-editor/src/components/testrun/testrun-button/index.module.less create mode 100644 flowgram-editor/src/components/testrun/testrun-button/index.tsx create mode 100644 flowgram-editor/src/components/testrun/testrun-form/index.module.less create mode 100644 flowgram-editor/src/components/testrun/testrun-form/index.tsx create mode 100644 flowgram-editor/src/components/testrun/testrun-form/type.ts create mode 100644 flowgram-editor/src/components/testrun/testrun-json-input/index.module.less create mode 100644 flowgram-editor/src/components/testrun/testrun-json-input/index.tsx create mode 100644 flowgram-editor/src/components/testrun/testrun-panel/index.module.less create mode 100644 flowgram-editor/src/components/testrun/testrun-panel/index.tsx create mode 100644 flowgram-editor/src/components/testrun/testrun-panel/test-run-panel.tsx create mode 100644 flowgram-editor/src/components/tools/auto-layout.tsx create mode 100644 flowgram-editor/src/components/tools/comment.tsx create mode 100644 flowgram-editor/src/components/tools/download.tsx create mode 100644 flowgram-editor/src/components/tools/fit-view.tsx create mode 100644 flowgram-editor/src/components/tools/index.tsx create mode 100644 flowgram-editor/src/components/tools/interactive.tsx create mode 100644 flowgram-editor/src/components/tools/minimap-switch.tsx create mode 100644 flowgram-editor/src/components/tools/minimap.tsx create mode 100644 flowgram-editor/src/components/tools/mouse-pad-selector.less create mode 100644 flowgram-editor/src/components/tools/mouse-pad-selector.tsx create mode 100644 flowgram-editor/src/components/tools/readonly.tsx create mode 100644 flowgram-editor/src/components/tools/save.tsx create mode 100644 flowgram-editor/src/components/tools/styles.tsx create mode 100644 flowgram-editor/src/components/tools/switch-line.tsx create mode 100644 flowgram-editor/src/components/tools/zoom-select.tsx create mode 100644 flowgram-editor/src/context/index.ts create mode 100644 flowgram-editor/src/context/node-render-context.ts create mode 100644 flowgram-editor/src/context/sidebar-context.ts create mode 100644 flowgram-editor/src/editor.tsx create mode 100644 flowgram-editor/src/form-components/feedback.tsx create mode 100644 flowgram-editor/src/form-components/form-content/index.tsx create mode 100644 flowgram-editor/src/form-components/form-content/styles.tsx create mode 100644 flowgram-editor/src/form-components/form-header/index.tsx create mode 100644 flowgram-editor/src/form-components/form-header/styles.tsx create mode 100644 flowgram-editor/src/form-components/form-header/title-input.tsx create mode 100644 flowgram-editor/src/form-components/form-header/utils.tsx create mode 100644 flowgram-editor/src/form-components/form-inputs/index.tsx create mode 100644 flowgram-editor/src/form-components/form-inputs/styles.tsx create mode 100644 flowgram-editor/src/form-components/form-item/index.css create mode 100644 flowgram-editor/src/form-components/form-item/index.tsx create mode 100644 flowgram-editor/src/form-components/index.ts create mode 100644 flowgram-editor/src/hooks/index.ts create mode 100644 flowgram-editor/src/hooks/use-editor-props.tsx create mode 100644 flowgram-editor/src/hooks/use-is-sidebar.ts create mode 100644 flowgram-editor/src/hooks/use-node-render-context.ts create mode 100644 flowgram-editor/src/hooks/use-port-click.ts create mode 100644 flowgram-editor/src/index.ts create mode 100644 flowgram-editor/src/initial-data.ts create mode 100644 flowgram-editor/src/nodes/block-end/form-meta.tsx create mode 100644 flowgram-editor/src/nodes/block-end/index.ts create mode 100644 flowgram-editor/src/nodes/block-start/form-meta.tsx create mode 100644 flowgram-editor/src/nodes/block-start/index.ts create mode 100644 flowgram-editor/src/nodes/break/form-meta.tsx create mode 100644 flowgram-editor/src/nodes/break/index.ts create mode 100644 flowgram-editor/src/nodes/code/components/code.tsx create mode 100644 flowgram-editor/src/nodes/code/components/inputs.tsx create mode 100644 flowgram-editor/src/nodes/code/components/outputs.tsx create mode 100644 flowgram-editor/src/nodes/code/form-meta.tsx create mode 100644 flowgram-editor/src/nodes/code/index.tsx create mode 100644 flowgram-editor/src/nodes/code/types.tsx create mode 100644 flowgram-editor/src/nodes/comment/index.tsx create mode 100644 flowgram-editor/src/nodes/condition/condition-inputs/index.tsx create mode 100644 flowgram-editor/src/nodes/condition/condition-inputs/styles.tsx create mode 100644 flowgram-editor/src/nodes/condition/form-meta.tsx create mode 100644 flowgram-editor/src/nodes/condition/index.ts create mode 100644 flowgram-editor/src/nodes/constants.ts create mode 100644 flowgram-editor/src/nodes/continue/form-meta.tsx create mode 100644 flowgram-editor/src/nodes/continue/index.ts create mode 100644 flowgram-editor/src/nodes/default-form-meta.tsx create mode 100644 flowgram-editor/src/nodes/end/form-meta.tsx create mode 100644 flowgram-editor/src/nodes/end/index.ts create mode 100644 flowgram-editor/src/nodes/group/index.tsx create mode 100644 flowgram-editor/src/nodes/http/components/api.tsx create mode 100644 flowgram-editor/src/nodes/http/components/body.tsx create mode 100644 flowgram-editor/src/nodes/http/components/headers.tsx create mode 100644 flowgram-editor/src/nodes/http/components/params.tsx create mode 100644 flowgram-editor/src/nodes/http/components/timeout.tsx create mode 100644 flowgram-editor/src/nodes/http/form-meta.tsx create mode 100644 flowgram-editor/src/nodes/http/index.tsx create mode 100644 flowgram-editor/src/nodes/http/types.tsx create mode 100644 flowgram-editor/src/nodes/index.ts create mode 100644 flowgram-editor/src/nodes/llm/index.ts create mode 100644 flowgram-editor/src/nodes/loop/form-meta.tsx create mode 100644 flowgram-editor/src/nodes/loop/index.ts create mode 100644 flowgram-editor/src/nodes/multi-condition/condition-inputs/index.tsx create mode 100644 flowgram-editor/src/nodes/multi-condition/condition-inputs/styles.tsx create mode 100644 flowgram-editor/src/nodes/multi-condition/form-meta.tsx create mode 100644 flowgram-editor/src/nodes/multi-condition/index.ts create mode 100644 flowgram-editor/src/nodes/start/form-meta.tsx create mode 100644 flowgram-editor/src/nodes/start/index.ts create mode 100644 flowgram-editor/src/nodes/variable/form-meta.tsx create mode 100644 flowgram-editor/src/nodes/variable/index.tsx create mode 100644 flowgram-editor/src/nodes/variable/types.tsx create mode 100644 flowgram-editor/src/plugins/context-menu-plugin/context-menu-layer.tsx create mode 100644 flowgram-editor/src/plugins/context-menu-plugin/context-menu-plugin.ts create mode 100644 flowgram-editor/src/plugins/context-menu-plugin/index.ts create mode 100644 flowgram-editor/src/plugins/index.ts create mode 100644 flowgram-editor/src/plugins/panel-manager-plugin/constants.ts create mode 100644 flowgram-editor/src/plugins/panel-manager-plugin/hooks.ts create mode 100644 flowgram-editor/src/plugins/panel-manager-plugin/index.tsx create mode 100644 flowgram-editor/src/plugins/runtime-plugin/client/base-client.ts create mode 100644 flowgram-editor/src/plugins/runtime-plugin/client/browser-client/index.ts create mode 100644 flowgram-editor/src/plugins/runtime-plugin/client/index.ts create mode 100644 flowgram-editor/src/plugins/runtime-plugin/client/server-client/constant.ts create mode 100644 flowgram-editor/src/plugins/runtime-plugin/client/server-client/index.ts create mode 100644 flowgram-editor/src/plugins/runtime-plugin/client/server-client/type.ts create mode 100644 flowgram-editor/src/plugins/runtime-plugin/create-runtime-plugin.ts create mode 100644 flowgram-editor/src/plugins/runtime-plugin/index.ts create mode 100644 flowgram-editor/src/plugins/runtime-plugin/runtime-service/index.ts create mode 100644 flowgram-editor/src/plugins/runtime-plugin/type.ts create mode 100644 flowgram-editor/src/plugins/variable-panel-plugin/components/full-variable-list.tsx create mode 100644 flowgram-editor/src/plugins/variable-panel-plugin/components/global-variable-editor.tsx create mode 100644 flowgram-editor/src/plugins/variable-panel-plugin/components/index.module.less create mode 100644 flowgram-editor/src/plugins/variable-panel-plugin/components/variable-panel.tsx create mode 100644 flowgram-editor/src/plugins/variable-panel-plugin/index.ts create mode 100644 flowgram-editor/src/plugins/variable-panel-plugin/variable-panel-layer.tsx create mode 100644 flowgram-editor/src/plugins/variable-panel-plugin/variable-panel-plugin.ts create mode 100644 flowgram-editor/src/services/custom-service.ts create mode 100644 flowgram-editor/src/services/index.ts create mode 100644 flowgram-editor/src/services/validate-service.ts create mode 100644 flowgram-editor/src/shortcuts/collapse/index.ts create mode 100644 flowgram-editor/src/shortcuts/constants.ts create mode 100644 flowgram-editor/src/shortcuts/copy/index.ts create mode 100644 flowgram-editor/src/shortcuts/delete/index.ts create mode 100644 flowgram-editor/src/shortcuts/expand/index.ts create mode 100644 flowgram-editor/src/shortcuts/index.ts create mode 100644 flowgram-editor/src/shortcuts/paste/index.ts create mode 100644 flowgram-editor/src/shortcuts/paste/traverse.ts create mode 100644 flowgram-editor/src/shortcuts/paste/unique-workflow.ts create mode 100644 flowgram-editor/src/shortcuts/select-all/index.ts create mode 100644 flowgram-editor/src/shortcuts/shortcuts.ts create mode 100644 flowgram-editor/src/shortcuts/type.ts create mode 100644 flowgram-editor/src/shortcuts/zoom-in/index.ts create mode 100644 flowgram-editor/src/shortcuts/zoom-out/index.ts create mode 100644 flowgram-editor/src/styles/index.css create mode 100644 flowgram-editor/src/type.d.ts create mode 100644 flowgram-editor/src/typings/index.ts create mode 100644 flowgram-editor/src/typings/json-schema.ts create mode 100644 flowgram-editor/src/typings/node.ts create mode 100644 flowgram-editor/src/utils/can-contain-node.ts create mode 100644 flowgram-editor/src/utils/index.ts create mode 100644 flowgram-editor/src/utils/on-drag-line-end.ts create mode 100644 flowgram-editor/src/utils/toggle-loop-expanded.ts create mode 100644 flowgram-editor/tsconfig.json delete mode 100644 web/app/dashboard/ai-workflows/_components/editor/base-node.tsx delete mode 100644 web/app/dashboard/ai-workflows/_components/editor/comment-node.tsx delete mode 100644 web/app/dashboard/ai-workflows/_components/editor/editor-canvas-events.tsx delete mode 100644 web/app/dashboard/ai-workflows/_components/editor/editor-context.tsx delete mode 100644 web/app/dashboard/ai-workflows/_components/editor/editor-provider.tsx delete mode 100644 web/app/dashboard/ai-workflows/_components/editor/editor-tools.tsx delete mode 100644 web/app/dashboard/ai-workflows/_components/editor/line-add-button.tsx delete mode 100644 web/app/dashboard/ai-workflows/_components/editor/node-form-panel.tsx delete mode 100644 web/app/dashboard/ai-workflows/_components/editor/node-icon.tsx delete mode 100644 web/app/dashboard/ai-workflows/_components/editor/node-panel.tsx delete mode 100644 web/app/dashboard/ai-workflows/_components/editor/node-registry.tsx delete mode 100644 web/app/dashboard/ai-workflows/_components/editor/on-drag-line-end.ts delete mode 100644 web/app/dashboard/ai-workflows/_components/editor/types.ts delete mode 100644 web/app/dashboard/ai-workflows/_components/editor/use-port-click.ts delete mode 100644 web/app/dashboard/ai-workflows/_components/editor/workflow-editor.tsx delete mode 100644 web/app/dashboard/ai-workflows/_components/editor/workflow-model.ts create mode 100644 web/app/dashboard/ai-workflows/_components/official-workflow-editor.tsx diff --git a/.gitignore b/.gitignore index fd0b283..0bf83cd 100644 --- a/.gitignore +++ b/.gitignore @@ -12,10 +12,12 @@ dist/ __debug_bin* node_modules/ .next/ +.task/ *.tsbuildinfo .superpowers agent-desk -test-reports \ No newline at end of file +test-reports +web/public/flowgram-editor/ diff --git a/Dockerfile b/Dockerfile index 525a430..77572bc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,16 @@ # syntax=docker/dockerfile:1.7 +FROM node:24-alpine AS flowgram-editor-builder +WORKDIR /src/flowgram-editor + +RUN corepack enable && corepack prepare pnpm@10.30.2 --activate +COPY flowgram-editor/package.json flowgram-editor/pnpm-lock.yaml ./ +RUN --mount=type=cache,target=/root/.local/share/pnpm/store \ + pnpm install --frozen-lockfile + +COPY flowgram-editor/ ./ +RUN pnpm build + FROM node:24-alpine AS web-builder WORKDIR /src/web @@ -9,6 +20,7 @@ RUN --mount=type=cache,target=/root/.local/share/pnpm/store \ pnpm install --frozen-lockfile COPY web/ ./ +COPY --from=flowgram-editor-builder /src/web/public/flowgram-editor ./public/flowgram-editor RUN pnpm build:sdk && pnpm build FROM golang:1.26-alpine AS server-builder diff --git a/Taskfile.yml b/Taskfile.yml index 3e7de9f..78c1814 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -185,6 +185,8 @@ tasks: dev:frontend: internal: true + deps: + - task: build:flowgram-editor cmds: - | echo "Starting frontend on http://localhost:3000 ..." @@ -192,9 +194,24 @@ tasks: build:web: internal: true + deps: + - task: build:flowgram-editor cmds: - 'cd {{.WEB_DIR}} && {{.PNPM}} build:sdk && {{.PNPM}} build' + build:flowgram-editor: + internal: true + sources: + - flowgram-editor/src/**/* + - flowgram-editor/package.json + - flowgram-editor/pnpm-lock.yaml + - flowgram-editor/rsbuild.config.ts + generates: + - web/public/flowgram-editor/index.html + cmds: + - 'cd flowgram-editor && {{.PNPM}} install --frozen-lockfile' + - 'cd flowgram-editor && {{.PNPM}} build' + build:dist: internal: true cmds: diff --git a/flowgram-editor/README.md b/flowgram-editor/README.md new file mode 100644 index 0000000..8513e06 --- /dev/null +++ b/flowgram-editor/README.md @@ -0,0 +1,386 @@ +# FlowGram.AI - Demo Free Layout + +Best-practice demo for free layout + +## Installation + +```shell +npx @flowgram.ai/create-app@latest free-layout +``` + +## Project Overview + +### Core Tech Stack +- **Frontend framework**: React 18 + TypeScript +- **Build tool**: Rsbuild (a modern build tool based on Rspack) +- **Styling**: Less + Styled Components + CSS Variables +- **UI library**: Semi Design (@douyinfe/semi-ui) +- **State management**: Flowgram’s in-house editor framework +- **Dependency injection**: Inversify + +### Core Dependencies + +- **@flowgram.ai/free-layout-editor**: Core dependency for the free layout editor +- **@flowgram.ai/free-snap-plugin**: Auto-alignment and guide-lines plugin +- **@flowgram.ai/free-lines-plugin**: Connection line rendering plugin +- **@flowgram.ai/free-node-panel-plugin**: Node add-panel rendering plugin +- **@flowgram.ai/minimap-plugin**: Minimap plugin +- **@flowgram.ai/export-plugin**: Download/export plugin +- **@flowgram.ai/free-container-plugin**: Sub-canvas plugin +- **@flowgram.ai/free-group-plugin**: Grouping plugin +- **@flowgram.ai/form-materials**: Form materials +- **@flowgram.ai/runtime-interface**: Runtime interfaces +- **@flowgram.ai/runtime-js**: JS runtime module +- **@flowgram.ai/panel-manager-plugin**: Sidebar panel management + +## Code Guide + +### Directory Structure +``` +src/ +├── app.tsx # Application entry file +├── editor.tsx # Main editor component +├── initial-data.ts # Initial data configuration +├── assets/ # Static assets +├── components/ # Component library +│ ├── index.ts +│ ├── add-node/ # Add-node component +│ ├── base-node/ # Base node components +│ ├── comment/ # Comment components +│ ├── group/ # Group components +│ ├── line-add-button/ # Connection add button +│ ├── node-menu/ # Node menu +│ ├── node-panel/ # Node add panel +│ ├── selector-box-popover/ # Selection box popover +│ ├── sidebar/ # Sidebar +│ ├── testrun/ # Test-run module +│ │ ├── hooks/ # Test-run hooks +│ │ ├── node-status-bar/ # Node status bar +│ │ ├── testrun-button/ # Test-run button +│ │ ├── testrun-form/ # Test-run form +│ │ ├── testrun-json-input/ # JSON input component +│ │ └── testrun-panel/ # Test-run panel +│ └── tools/ # Utility components +├── context/ # React Context +│ ├── node-render-context.ts # Current rendering node context +│ ├── sidebar-context # Sidebar context +├── form-components/ # Form component library +│ ├── form-content/ # Form content +│ ├── form-header/ # Form header +│ ├── form-inputs/ # Form inputs +│ └── form-item/ # Form item +│ └── feedback.tsx # Validation error rendering +├── hooks/ +│ ├── index.ts +│ ├── use-editor-props.tsx # Editor props hook +│ ├── use-is-sidebar.ts # Sidebar state hook +│ ├── use-node-render-context.ts # Node render context hook +│ └── use-port-click.ts # Port click hook +├── nodes/ # Node definitions +│ ├── index.ts +│ ├── constants.ts # Node constants +│ ├── default-form-meta.ts # Default form metadata +│ ├── block-end/ # Block end node +│ ├── block-start/ # Block start node +│ ├── break/ # Break node +│ ├── code/ # Code node +│ ├── comment/ # Comment node +│ ├── condition/ # Condition node +│ ├── continue/ # Continue node +│ ├── end/ # End node +│ ├── group/ # Group node +│ ├── http/ # HTTP node +│ ├── llm/ # LLM node +│ ├── loop/ # Loop node +│ ├── start/ # Start node +│ └── variable/ # Variable node +├── plugins/ # Plugin system +│ ├── index.ts +│ ├── context-menu-plugin/ # Right-click context menu plugin +│ ├── runtime-plugin/ # Runtime plugin +│ │ ├── client/ # Client +│ │ │ ├── browser-client/ # Browser client +│ │ │ └── server-client/ # Server client +│ │ └── runtime-service/ # Runtime service +│ └── variable-panel-plugin/ # Variable panel plugin +│ └── components/ # Variable panel components +├── services/ # Service layer +│ ├── index.ts +│ └── custom-service.ts # Custom service +├── shortcuts/ # Shortcuts system +│ ├── index.ts +│ ├── constants.ts # Shortcut constants +│ ├── shortcuts.ts # Shortcut definitions +│ ├── type.ts # Type definitions +│ ├── collapse/ # Collapse shortcut +│ ├── copy/ # Copy shortcut +│ ├── delete/ # Delete shortcut +│ ├── expand/ # Expand shortcut +│ ├── paste/ # Paste shortcut +│ ├── select-all/ # Select-all shortcut +│ ├── zoom-in/ # Zoom-in shortcut +│ └── zoom-out/ # Zoom-out shortcut +├── styles/ # Styles +├── typings/ # Type definitions +│ ├── index.ts +│ ├── json-schema.ts # JSON Schema types +│ └── node.ts # Node type definitions +└── utils/ # Utility functions + ├── index.ts + └── on-drag-line-end.ts # Handle end of drag line +``` + +### Key Directory Functions + +#### 1. `/components` - Component Library +- **base-node**: Base rendering components for all nodes +- **testrun**: Complete test-run module, including status bar, form, and panel +- **sidebar**: Sidebar components providing tools and property panels +- **node-panel**: Node add panel with drag-to-add capability + +#### 2. `/nodes` - Node System +Each node type has its own directory, including: +- Node registration (`index.ts`) +- Form metadata (`form-meta.ts`) +- Node-specific components and logic + +#### 3. `/plugins` - Plugin System +- **runtime-plugin**: Supports both browser and server modes +- **context-menu-plugin**: Right-click context menu +- **variable-panel-plugin**: Variable management panel + +#### 4. `/shortcuts` - Shortcuts System +Complete keyboard shortcut support, including: +- Basic actions: copy, paste, delete, select-all +- View actions: zoom-in, zoom-out, collapse, expand +- Each shortcut has its own implementation module + +## Application Architecture + +### Core Design Patterns + +#### 1. Plugin Architecture +Highly modular plugin system; each feature is an independent plugin: + +```typescript +plugins: () => [ + createFreeLinesPlugin({ renderInsideLine: LineAddButton }), + createMinimapPlugin({ /* config */ }), + createFreeSnapPlugin({ /* alignment config */ }), + createFreeNodePanelPlugin({ renderer: NodePanel }), + createContainerNodePlugin({}), + createFreeGroupPlugin({ groupNodeRender: GroupNodeRender }), + createContextMenuPlugin({}), + createRuntimePlugin({ mode: 'browser' }), + createVariablePanelPlugin({}) +] +``` + +#### 2. Node Registry Pattern +Manage different workflow node types via a registry: + +```typescript +export const nodeRegistries: FlowNodeRegistry[] = [ + ConditionNodeRegistry, // Condition node + StartNodeRegistry, // Start node + EndNodeRegistry, // End node + LLMNodeRegistry, // LLM node + LoopNodeRegistry, // Loop node + CommentNodeRegistry, // Comment node + HTTPNodeRegistry, // HTTP node + CodeNodeRegistry, // Code node + // ... more node types +]; +``` + +#### 3. Dependency Injection +Use Inversify for service DI: + +```typescript +onBind: ({ bind }) => { + bind(CustomService).toSelf().inSingletonScope(); +} +``` +## Core Features + +### 1. Editor Configuration System + +`useEditorProps` is the configuration center of the editor: + +```typescript +export function useEditorProps( + initialData: FlowDocumentJSON, + nodeRegistries: FlowNodeRegistry[] +): FreeLayoutProps { + return useMemo(() => ({ + background: true, // Background grid + readonly: false, // Readonly mode + initialData, // Initial data + nodeRegistries, // Node registries + + // Core feature configs + playground: { preventGlobalGesture: true /* Prevent Mac browser swipe gestures */ }, + nodeEngine: { enable: true }, + variableEngine: { enable: true }, + history: { enable: true, enableChangeNode: true }, + + // Business rules + canAddLine: (ctx, fromPort, toPort) => { /* Connection rules */ }, + canDeleteLine: (ctx, line) => { /* Line deletion rules */ }, + canDeleteNode: (ctx, node) => { /* Node deletion rules */ }, + canDropToNode: (ctx, params) => { /* Drag-and-drop rules */ }, + + // Plugins + plugins: () => [/* Plugin list */], + + // Events + onContentChange: debounce((ctx, event) => { /* Auto save */ }, 1000), + onInit: (ctx) => { /* Initialization */ }, + onAllLayersRendered: (ctx) => { /* After render */ } + }), []); +} +``` + +### 2. Node Type System + +The app supports multiple workflow node types: + +```typescript +export enum WorkflowNodeType { + Start = 'start', // Start node + End = 'end', // End node + LLM = 'llm', // Large language model node + HTTP = 'http', // HTTP request node + Code = 'code', // Code execution node + Variable = 'variable', // Variable node + Condition = 'condition', // Conditional node + Loop = 'loop', // Loop node + BlockStart = 'block-start', // Sub-canvas start node + BlockEnd = 'block-end', // Sub-canvas end node + Comment = 'comment', // Comment node + Continue = 'continue', // Continue node + Break = 'break', // Break node +} +``` + +Each node follows a unified registration pattern: + +```typescript +export const StartNodeRegistry: FlowNodeRegistry = { + type: WorkflowNodeType.Start, + meta: { + isStart: true, + deleteDisable: true, // Not deletable + copyDisable: true, // Not copyable + nodePanelVisible: false, // Hidden in node panel + defaultPorts: [{ type: 'output' }], + size: { width: 360, height: 211 } + }, + info: { + icon: iconStart, + description: 'The starting node of the workflow, used to set up information needed to launch the workflow.' + }, + formMeta, // Form configuration + canAdd() { return false; } // Disallow multiple start nodes +}; +``` + +### 3. Plugin Architecture + +App features are modularized via the plugin system: + +#### Core Plugin List +1. **FreeLinesPlugin** - Connection rendering and interaction +2. **MinimapPlugin** - Minimap navigation +3. **FreeSnapPlugin** - Auto-alignment and guide-lines +4. **FreeNodePanelPlugin** - Node add panel +5. **ContainerNodePlugin** - Container nodes (e.g., loop nodes) +6. **FreeGroupPlugin** - Node grouping +7. **ContextMenuPlugin** - Right-click context menu +8. **RuntimePlugin** - Workflow runtime +9. **VariablePanelPlugin** - Variable management panel + +### 4. Runtime System + +Two run modes are supported: + +```typescript +createRuntimePlugin({ + mode: 'browser', // Browser mode + // mode: 'server', // Server mode + // serverConfig: { + // domain: 'localhost', + // port: 4000, + // protocol: 'http', + // }, +}) +``` + +## Design Philosophy and Advantages + +### 1. Highly Modular +- **Plugin architecture**: Each feature is an independent plugin, easy to extend and maintain +- **Node registry system**: Add new node types without changing core code +- **Componentized UI**: Highly reusable components with clear responsibilities + +### 2. Type Safety +- **Full TypeScript support**: End-to-end type safety from configuration to runtime +- **JSON Schema integration**: Node data validated by schemas +- **Strongly typed plugin interfaces**: Clear type constraints for plugin development + +### 3. User Experience +- **Real-time preview**: Run and debug workflows live +- **Rich interactions**: Dragging, zooming, snapping, shortcuts for a complete editing experience +- **Visual feedback**: Minimap, status indicators, line animations + +### 4. Extensibility +- **Open plugin system**: Third parties can easily develop custom plugins +- **Flexible node system**: Custom node types and form configurations supported +- **Multiple runtimes**: Both browser and server modes + +### 5. Performance +- **On-demand loading**: Components and plugins support lazy loading +- **Debounce**: Performance optimizations for high-frequency operations like auto-save + +## Technical Highlights + +### 1. In-house Editor Framework +Based on `@flowgram.ai/free-layout-editor`, providing: +- Free-layout canvas system +- Full undo/redo functionality +- Lifecycle management for nodes and connections +- Variable engine and expression system + +### 2. Advanced Build Configuration +Using Rsbuild as the build tool: + +```typescript +export default defineConfig({ + plugins: [pluginReact(), pluginLess()], + source: { + entry: { index: './src/app.tsx' }, + decorators: { version: 'legacy' } // Enable decorators + }, + tools: { + rspack: { + ignoreWarnings: [/Critical dependency/] // Ignore specific warnings + } + } +}); +``` + +### 3. Internationalization +Built-in multilingual support: + +```typescript +i18n: { + locale: navigator.language, + languages: { + 'zh-CN': { + 'Never Remind': '不再提示', + 'Hold {{key}} to drag node out': '按住 {{key}} 可以将节点拖出', + }, + 'en-US': {}, + } +} +``` diff --git a/flowgram-editor/README.zh_CN.md b/flowgram-editor/README.zh_CN.md new file mode 100644 index 0000000..7e8d456 --- /dev/null +++ b/flowgram-editor/README.zh_CN.md @@ -0,0 +1,386 @@ +# FlowGram.AI - Demo Free Layout + +自由布局最佳实践 demo + +## 安装 + +```shell +npx @flowgram.ai/create-app@latest free-layout +``` + +## 项目概览 + +### 核心技术栈 +- **前端框架**: React 18 + TypeScript +- **构建工具**: Rsbuild (基于 Rspack 的现代构建工具) +- **样式方案**: Less + Styled Components + CSS Variables +- **UI 组件库**: Semi Design (@douyinfe/semi-ui) +- **状态管理**: 基于 Flowgram 自研的编辑器框架 +- **依赖注入**: Inversify + +### 核心依赖包 + +- **@flowgram.ai/free-layout-editor**: 自由布局编辑器核心依赖 +- **@flowgram.ai/free-snap-plugin**: 自动对齐及辅助线插件 +- **@flowgram.ai/free-lines-plugin**: 连线渲染插件 +- **@flowgram.ai/free-node-panel-plugin**: 节点添加面板渲染插件 +- **@flowgram.ai/minimap-plugin**: 缩略图插件 +- **@flowgram.ai/export-plugin**: 下载导出插件 +- **@flowgram.ai/free-container-plugin**: 子画布插件 +- **@flowgram.ai/free-group-plugin**: 分组插件 +- **@flowgram.ai/form-materials**: 表单物料 +- **@flowgram.ai/runtime-interface**: 运行时接口 +- **@flowgram.ai/runtime-js**: js 运行时模块 +- **@flowgram.ai/panel-manager-plugin**: 侧边栏面板管理 + +## 代码说明 + +### 目录结构 +``` +src/ +├── app.tsx # 应用入口文件 +├── editor.tsx # 编辑器主组件 +├── initial-data.ts # 初始化数据配置 +├── assets/ # 静态资源 +├── components/ # 组件库 +│ ├── index.ts +│ ├── add-node/ # 添加节点组件 +│ ├── base-node/ # 基础节点组件 +│ ├── comment/ # 注释组件 +│ ├── group/ # 分组组件 +│ ├── line-add-button/ # 连线添加按钮 +│ ├── node-menu/ # 节点菜单 +│ ├── node-panel/ # 节点添加面板 +│ ├── selector-box-popover/ # 选择框弹窗 +│ ├── sidebar/ # 侧边栏 +│ ├── testrun/ # 测试运行组件 +│ │ ├── hooks/ # 测试运行钩子 +│ │ ├── node-status-bar/ # 节点状态栏 +│ │ ├── testrun-button/ # 测试运行按钮 +│ │ ├── testrun-form/ # 测试运行表单 +│ │ ├── testrun-json-input/ # JSON输入组件 +│ │ └── testrun-panel/ # 测试运行面板 +│ └── tools/ # 工具组件 +├── context/ # React Context +│ ├── node-render-context.ts # 当前渲染节点 Context +│ ├── sidebar-context # 侧边栏 Context +├── form-components/ # 表单组件库 +│ ├── form-content/ # 表单内容 +│ ├── form-header/ # 表单头部 +│ ├── form-inputs/ # 表单输入 +│ └── form-item/ # 表单项 +│ └── feedback.tsx # 表单校验错误渲染 +├── hooks/ +│ ├── index.ts +│ ├── use-editor-props.tsx # 编辑器属性钩子 +│ ├── use-is-sidebar.ts # 侧边栏状态钩子 +│ ├── use-node-render-context.ts # 节点渲染上下文钩子 +│ └── use-port-click.ts # 端口点击钩子 +├── nodes/ # 节点定义 +│ ├── index.ts +│ ├── constants.ts # 节点常量定义 +│ ├── default-form-meta.ts # 默认表单元数据 +│ ├── block-end/ # 块结束节点 +│ ├── block-start/ # 块开始节点 +│ ├── break/ # 中断节点 +│ ├── code/ # 代码节点 +│ ├── comment/ # 注释节点 +│ ├── condition/ # 条件节点 +│ ├── continue/ # 继续节点 +│ ├── end/ # 结束节点 +│ ├── group/ # 分组节点 +│ ├── http/ # HTTP节点 +│ ├── llm/ # LLM节点 +│ ├── loop/ # 循环节点 +│ ├── start/ # 开始节点 +│ └── variable/ # 变量节点 +├── plugins/ # 插件系统 +│ ├── index.ts +│ ├── context-menu-plugin/ # 右键菜单插件 +│ ├── runtime-plugin/ # 运行时插件 +│ │ ├── client/ # 客户端 +│ │ │ ├── browser-client/ # 浏览器客户端 +│ │ │ └── server-client/ # 服务器客户端 +│ │ └── runtime-service/ # 运行时服务 +│ └── variable-panel-plugin/ # 变量面板插件 +│ └── components/ # 变量面板组件 +├── services/ # 服务层 +│ ├── index.ts +│ └── custom-service.ts # 自定义服务 +├── shortcuts/ # 快捷键系统 +│ ├── index.ts +│ ├── constants.ts # 快捷键常量 +│ ├── shortcuts.ts # 快捷键定义 +│ ├── type.ts # 类型定义 +│ ├── collapse/ # 折叠快捷键 +│ ├── copy/ # 复制快捷键 +│ ├── delete/ # 删除快捷键 +│ ├── expand/ # 展开快捷键 +│ ├── paste/ # 粘贴快捷键 +│ ├── select-all/ # 全选快捷键 +│ ├── zoom-in/ # 放大快捷键 +│ └── zoom-out/ # 缩小快捷键 +├── styles/ # 样式文件 +├── typings/ # 类型定义 +│ ├── index.ts +│ ├── json-schema.ts # JSON Schema类型 +│ └── node.ts # 节点类型定义 +└── utils/ # 工具函数 + ├── index.ts + └── on-drag-line-end.ts # 拖拽连线结束处理 +``` + +### 关键目录功能说明 + +#### 1. `/components` - 组件库 +- **base-node**: 所有节点的基础渲染组件 +- **testrun**: 完整的测试运行功能模块,包含状态栏、表单、面板等 +- **sidebar**: 侧边栏组件,提供工具和属性面板 +- **node-panel**: 节点添加面板,支持拖拽添加新节点 + +#### 2. `/nodes` - 节点系统 +每个节点类型都有独立的目录,包含: +- 节点注册信息 (`index.ts`) +- 表单元数据定义 (`form-meta.ts`) +- 节点特定的组件和逻辑 + +#### 3. `/plugins` - 插件系统 +- **runtime-plugin**: 支持浏览器和服务器两种运行模式 +- **context-menu-plugin**: 右键菜单功能 +- **variable-panel-plugin**: 变量管理面板 + +#### 4. `/shortcuts` - 快捷键系统 +完整的快捷键支持,包括: +- 基础操作:复制、粘贴、删除、全选 +- 视图操作:放大、缩小、折叠、展开 +- 每个快捷键都有独立的实现模块 + +## 应用架构设计 + +### 核心设计模式 + +#### 1. 插件化架构 (Plugin Architecture) +应用采用高度模块化的插件系统,每个功能都作为独立插件存在: + +```typescript +plugins: () => [ + createFreeLinesPlugin({ renderInsideLine: LineAddButton }), + createMinimapPlugin({ /* 配置 */ }), + createFreeSnapPlugin({ /* 对齐配置 */ }), + createFreeNodePanelPlugin({ renderer: NodePanel }), + createContainerNodePlugin({}), + createFreeGroupPlugin({ groupNodeRender: GroupNodeRender }), + createContextMenuPlugin({}), + createRuntimePlugin({ mode: 'browser' }), + createVariablePanelPlugin({}) +] +``` + +#### 2. 节点注册系统 (Node Registry Pattern) +通过注册表模式管理不同类型的工作流节点: + +```typescript +export const nodeRegistries: FlowNodeRegistry[] = [ + ConditionNodeRegistry, // 条件节点 + StartNodeRegistry, // 开始节点 + EndNodeRegistry, // 结束节点 + LLMNodeRegistry, // LLM节点 + LoopNodeRegistry, // 循环节点 + CommentNodeRegistry, // 注释节点 + HTTPNodeRegistry, // HTTP节点 + CodeNodeRegistry, // 代码节点 + // ... 更多节点类型 +]; +``` + +#### 3. 依赖注入模式 (Dependency Injection) +使用 Inversify 框架实现服务的依赖注入: + +```typescript +onBind: ({ bind }) => { + bind(CustomService).toSelf().inSingletonScope(); +} +``` +## 核心功能分析 + +### 1. 编辑器配置系统 + +`useEditorProps` 是整个编辑器的配置中心,包含: + +```typescript +export function useEditorProps( + initialData: FlowDocumentJSON, + nodeRegistries: FlowNodeRegistry[] +): FreeLayoutProps { + return useMemo(() => ({ + background: true, // 背景网格 + readonly: false, // 是否只读 + initialData, // 初始数据 + nodeRegistries, // 节点注册表 + + // 核心功能配置 + playground: { preventGlobalGesture: true /* 阻止 mac 浏览器手势翻页 */ }, + nodeEngine: { enable: true }, + variableEngine: { enable: true }, + history: { enable: true, enableChangeNode: true }, + + // 业务逻辑配置 + canAddLine: (ctx, fromPort, toPort) => { /* 连线规则 */ }, + canDeleteLine: (ctx, line) => { /* 删除连线规则 */ }, + canDeleteNode: (ctx, node) => { /* 删除节点规则 */ }, + canDropToNode: (ctx, params) => { /* 拖拽规则 */ }, + + // 插件配置 + plugins: () => [/* 插件列表 */], + + // 事件处理 + onContentChange: debounce((ctx, event) => { /* 自动保存 */ }, 1000), + onInit: (ctx) => { /* 初始化 */ }, + onAllLayersRendered: (ctx) => { /* 渲染完成 */ } + }), []); +} +``` + +### 2. 节点类型系统 + +应用支持多种工作流节点类型: + +```typescript +export enum WorkflowNodeType { + Start = 'start', // 开始节点 + End = 'end', // 结束节点 + LLM = 'llm', // 大语言模型节点 + HTTP = 'http', // HTTP请求节点 + Code = 'code', // 代码执行节点 + Variable = 'variable', // 变量节点 + Condition = 'condition', // 条件判断节点 + Loop = 'loop', // 循环节点 + BlockStart = 'block-start', // 子画布开始节点 + BlockEnd = 'block-end', // 子画布结束节点 + Comment = 'comment', // 注释节点 + Continue = 'continue', // 继续节点 + Break = 'break', // 中断节点 +} +``` + +每个节点都遵循统一的注册模式: + +```typescript +export const StartNodeRegistry: FlowNodeRegistry = { + type: WorkflowNodeType.Start, + meta: { + isStart: true, + deleteDisable: true, // 不可删除 + copyDisable: true, // 不可复制 + nodePanelVisible: false, // 不在节点面板显示 + defaultPorts: [{ type: 'output' }], + size: { width: 360, height: 211 } + }, + info: { + icon: iconStart, + description: '工作流的起始节点,用于设置启动工作流所需的信息。' + }, + formMeta, // 表单配置 + canAdd() { return false; } // 不允许添加多个开始节点 +}; +``` + +### 3. 插件化架构 + +应用的功能通过插件系统实现模块化: + +#### 核心插件列表 +1. **FreeLinesPlugin** - 连线渲染和交互 +2. **MinimapPlugin** - 缩略图导航 +3. **FreeSnapPlugin** - 自动对齐和辅助线 +4. **FreeNodePanelPlugin** - 节点添加面板 +5. **ContainerNodePlugin** - 容器节点(如循环节点) +6. **FreeGroupPlugin** - 节点分组功能 +7. **ContextMenuPlugin** - 右键菜单 +8. **RuntimePlugin** - 工作流运行时 +9. **VariablePanelPlugin** - 变量管理面板 + +### 4. 运行时系统 + +应用支持两种运行模式: + +```typescript +createRuntimePlugin({ + mode: 'browser', // 浏览器模式 + // mode: 'server', // 服务器模式 + // serverConfig: { + // domain: 'localhost', + // port: 4000, + // protocol: 'http', + // }, +}) +``` + +## 设计理念与架构优势 + +### 1. 高度模块化 +- **插件化架构**: 每个功能都是独立插件,易于扩展和维护 +- **节点注册系统**: 新节点类型可以轻松添加,无需修改核心代码 +- **组件化设计**: UI组件高度复用,职责清晰 + +### 2. 类型安全 +- **完整的TypeScript支持**: 从配置到运行时的全链路类型保护 +- **JSON Schema集成**: 节点数据结构通过Schema验证 +- **强类型的插件接口**: 插件开发有明确的类型约束 + +### 3. 用户体验优化 +- **实时预览**: 支持工作流的实时运行和调试 +- **丰富的交互**: 拖拽、缩放、对齐、快捷键等完整的编辑体验 +- **可视化反馈**: 缩略图、状态指示、连线动画等视觉反馈 + +### 4. 扩展性设计 +- **开放的插件系统**: 第三方可以轻松开发自定义插件 +- **灵活的节点系统**: 支持自定义节点类型和表单配置 +- **多运行时支持**: 浏览器和服务器双模式运行 + +### 5. 性能优化 +- **按需加载**: 组件和插件支持按需加载 +- **防抖处理**: 自动保存等高频操作的性能优化 + +## 技术亮点 + +### 1. 自研编辑器框架 +基于 `@flowgram.ai/free-layout-editor` 自研框架,提供: +- 自由布局的画布系统 +- 完整的撤销/重做功能 +- 节点和连线的生命周期管理 +- 变量引擎和表达式系统 + +### 2. 先进的构建配置 +使用 Rsbuild 作为构建工具: + +```typescript +export default defineConfig({ + plugins: [pluginReact(), pluginLess()], + source: { + entry: { index: './src/app.tsx' }, + decorators: { version: 'legacy' } // 支持装饰器 + }, + tools: { + rspack: { + ignoreWarnings: [/Critical dependency/] // 忽略特定警告 + } + } +}); +``` + +### 3. 国际化支持 +内置多语言支持: + +```typescript +i18n: { + locale: navigator.language, + languages: { + 'zh-CN': { + 'Never Remind': '不再提示', + 'Hold {{key}} to drag node out': '按住 {{key}} 可以将节点拖出', + }, + 'en-US': {}, + } +} +``` diff --git a/flowgram-editor/eslint.config.js b/flowgram-editor/eslint.config.js new file mode 100644 index 0000000..461d0f3 --- /dev/null +++ b/flowgram-editor/eslint.config.js @@ -0,0 +1,20 @@ +/** + * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates + * SPDX-License-Identifier: MIT + */ + +const { defineFlatConfig } = require('@flowgram.ai/eslint-config'); + +module.exports = defineFlatConfig({ + preset: 'web', + packageRoot: __dirname, + rules: { + 'no-console': 'off', + 'react/prop-types': 'off', + }, + settings: { + react: { + version: 'detect', + }, + }, +}); diff --git a/flowgram-editor/index.html b/flowgram-editor/index.html new file mode 100644 index 0000000..7327a04 --- /dev/null +++ b/flowgram-editor/index.html @@ -0,0 +1,12 @@ + + + + + + + Flow FreeLayoutEditor Demo + + +
+ + diff --git a/flowgram-editor/package.json b/flowgram-editor/package.json new file mode 100644 index 0000000..e5ced5d --- /dev/null +++ b/flowgram-editor/package.json @@ -0,0 +1,78 @@ +{ + "name": "@agent-desk/flowgram-editor", + "version": "1.0.4", + "description": "", + "keywords": [], + "license": "MIT", + "private": true, + "main": "./src/index.ts", + "files": [ + "src/", + "eslint.config.js", + ".gitignore", + "index.html", + "package.json", + "rsbuild.config.ts", + "tsconfig.json", + "README.md", + "README.zh_CN.md" + ], + "dependencies": { + "@douyinfe/semi-icons": "^2.80.0", + "@douyinfe/semi-ui": "^2.80.0", + "lodash-es": "^4.17.21", + "nanoid": "^5.0.9", + "react": "^18", + "react-dom": "^18", + "styled-components": "^5", + "classnames": "^2.5.1", + "@flowgram.ai/runtime-interface": "1.0.12", + "@flowgram.ai/free-snap-plugin": "1.0.12", + "@flowgram.ai/free-node-panel-plugin": "1.0.12", + "@flowgram.ai/minimap-plugin": "1.0.12", + "@flowgram.ai/free-lines-plugin": "1.0.12", + "@flowgram.ai/free-layout-editor": "1.0.12", + "@flowgram.ai/export-plugin": "1.0.12", + "@flowgram.ai/free-container-plugin": "1.0.12", + "@flowgram.ai/free-group-plugin": "1.0.12", + "@flowgram.ai/panel-manager-plugin": "1.0.12", + "@flowgram.ai/form-materials": "1.0.12", + "@flowgram.ai/free-stack-plugin": "1.0.12", + "@flowgram.ai/runtime-js": "1.0.12" + }, + "devDependencies": { + "@rsbuild/core": "^1.2.16", + "@rsbuild/plugin-react": "^1.1.1", + "@rsbuild/plugin-less": "^1.1.1", + "@types/lodash-es": "^4.17.12", + "@types/node": "^18", + "@types/react": "^18", + "@types/react-dom": "^18", + "@types/styled-components": "^5", + "typescript": "^5.8.3", + "eslint": "^9.0.0", + "cross-env": "~7.0.3", + "@flowgram.ai/eslint-config": "1.0.12", + "@flowgram.ai/ts-config": "1.0.12" + }, + "publishConfig": { + "access": "public", + "registry": "https://registry.npmjs.org/" + }, + "scripts": { + "build": "cross-env MODE=app NODE_ENV=production rsbuild build", + "build:fast": "exit 0", + "build:watch": "exit 0", + "build:prod": "cross-env MODE=app NODE_ENV=production rsbuild build", + "build:analyze": "BUNDLE_ANALYZE=true rsbuild build", + "clean": "rimraf dist", + "dev": "cross-env MODE=app NODE_ENV=development rsbuild dev --open", + "lint": "eslint ./src --cache", + "lint:fix": "eslint ./src --fix", + "ts-check": "tsc --noEmit", + "start": "cross-env NODE_ENV=development rsbuild dev --open", + "test": "exit", + "test:cov": "exit", + "watch": "exit 0" + } +} diff --git a/flowgram-editor/pnpm-lock.yaml b/flowgram-editor/pnpm-lock.yaml new file mode 100644 index 0000000..f647c23 --- /dev/null +++ b/flowgram-editor/pnpm-lock.yaml @@ -0,0 +1,10224 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@douyinfe/semi-icons': + specifier: ^2.80.0 + version: 2.101.1(react@18.3.1) + '@douyinfe/semi-ui': + specifier: ^2.80.0 + version: 2.101.1(@floating-ui/dom@1.8.0)(@tiptap/suggestion@3.29.0(@floating-ui/dom@1.8.0)(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0))(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/export-plugin': + specifier: 1.0.12 + version: 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/form-materials': + specifier: 1.0.12 + version: 1.0.12(@babel/core@8.0.1)(@babel/template@8.0.0)(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/merge@6.12.2)(@coze-editor/code-language-shared@0.1.0-alpha.868621(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2))(@floating-ui/dom@1.8.0)(@lezer/common@1.5.2)(@tiptap/suggestion@3.29.0(@floating-ui/dom@1.8.0)(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0))(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1))(vue@3.5.40(typescript@5.9.3)) + '@flowgram.ai/free-container-plugin': + specifier: 1.0.12 + version: 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1)) + '@flowgram.ai/free-group-plugin': + specifier: 1.0.12 + version: 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1)) + '@flowgram.ai/free-layout-editor': + specifier: 1.0.12 + version: 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1)) + '@flowgram.ai/free-lines-plugin': + specifier: 1.0.12 + version: 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1)) + '@flowgram.ai/free-node-panel-plugin': + specifier: 1.0.12 + version: 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-snap-plugin': + specifier: 1.0.12 + version: 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1)) + '@flowgram.ai/free-stack-plugin': + specifier: 1.0.12 + version: 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1)) + '@flowgram.ai/minimap-plugin': + specifier: 1.0.12 + version: 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/panel-manager-plugin': + specifier: 1.0.12 + version: 1.0.12(@types/react@18.3.31)(immer@10.1.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(reflect-metadata@0.2.2) + '@flowgram.ai/runtime-interface': + specifier: 1.0.12 + version: 1.0.12 + '@flowgram.ai/runtime-js': + specifier: 1.0.12 + version: 1.0.12(openai@5.23.2(zod@3.25.76)) + classnames: + specifier: ^2.5.1 + version: 2.5.1 + lodash-es: + specifier: ^4.17.21 + version: 4.18.1 + nanoid: + specifier: ^5.0.9 + version: 5.1.16 + react: + specifier: ^18 + version: 18.3.1 + react-dom: + specifier: ^18 + version: 18.3.1(react@18.3.1) + styled-components: + specifier: ^5 + version: 5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1) + devDependencies: + '@flowgram.ai/eslint-config': + specifier: 1.0.12 + version: 1.0.12(@types/node@18.19.130)(jiti@2.7.0)(typescript@5.9.3) + '@flowgram.ai/ts-config': + specifier: 1.0.12 + version: 1.0.12 + '@rsbuild/core': + specifier: ^1.2.16 + version: 1.7.6 + '@rsbuild/plugin-less': + specifier: ^1.1.1 + version: 1.6.4(@rsbuild/core@1.7.6)(@rspack/core@1.7.12(@swc/helpers@0.5.23)) + '@rsbuild/plugin-react': + specifier: ^1.1.1 + version: 1.4.6(@rsbuild/core@1.7.6) + '@types/lodash-es': + specifier: ^4.17.12 + version: 4.17.12 + '@types/node': + specifier: ^18 + version: 18.19.130 + '@types/react': + specifier: ^18 + version: 18.3.31 + '@types/react-dom': + specifier: ^18 + version: 18.3.7(@types/react@18.3.31) + '@types/styled-components': + specifier: ^5 + version: 5.1.36 + cross-env: + specifier: ~7.0.3 + version: 7.0.3 + eslint: + specifier: ^9.0.0 + version: 9.39.5(jiti@2.7.0) + typescript: + specifier: ^5.8.3 + version: 5.9.3 + +packages: + + '@babel/code-frame@7.29.7': + resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} + engines: {node: '>=6.9.0'} + + '@babel/code-frame@8.0.0': + resolution: {integrity: sha512-dYYg153EyN2Ekbqw2zAsbd6/JR+9N2SEoC7YV2GyyqMM7x9bLDTjBD6XBhSMLH0wtIVyJj03jWNriQhaN+eoCw==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@babel/compat-data@7.29.7': + resolution: {integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@8.0.0': + resolution: {integrity: sha512-DOjnob/cXOUgDOozCDeq/aK2p5y8dUIVdf6tNhEV1HQRd6I8aQ4f4fbtHRVEvb6lP3BGomrKHiS8ICAASSVQSw==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@babel/core@8.0.1': + resolution: {integrity: sha512-5FgxM4dLQpMJHSiVATk8foW263dVHQHBVpXYiimNECVWG01f4nFyEbQixeT6Mwvg7TayREJ2gpKl3o2RoMdnqw==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@babel/eslint-parser@7.19.1': + resolution: {integrity: sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==} + engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} + peerDependencies: + '@babel/core': '>=7.11.0' + eslint: ^7.5.0 || ^8.0.0 + + '@babel/eslint-plugin@7.29.7': + resolution: {integrity: sha512-9qag/N0IHYLNf0nCNvHctNGBpoY4Idr7JkPeYUf2p5J9UpvHpd+Xx6VGjHDhJKmueVBa4/cq6MPl3uxj6/8knw==} + engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} + peerDependencies: + '@babel/eslint-parser': ^7.11.0 + eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 + + '@babel/generator@7.29.7': + resolution: {integrity: sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==} + engines: {node: '>=6.9.0'} + + '@babel/generator@8.0.0': + resolution: {integrity: sha512-NT9NrVwJsbSV6Y2FSstWa71EETOnzrjkL5/wX3D2mYHtKM+qvqB1DvR4D0Setb/gDBsHzRICifwEWMO8CnTF6g==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@babel/helper-annotate-as-pure@7.29.7': + resolution: {integrity: sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.29.7': + resolution: {integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@8.0.0': + resolution: {integrity: sha512-JwculLABZvyPvyLBpwU/E/IbH2uM3mnxNtIJpxnIfb24y1PrdVxK5Dqjle4DpgqpGRnwgC7G8IkzPdSXZrO1Ew==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@babel/helper-create-class-features-plugin@7.29.7': + resolution: {integrity: sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-create-regexp-features-plugin@7.29.7': + resolution: {integrity: sha512-907Uymvqgg1dwUA+7IGwFAOSYzQOuzPXKNJ1yxzwPffzkYFg2q2eHi1fIOs6sXkG9NbIUMunnUlkYsfRFNvomg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-define-polyfill-provider@0.3.3': + resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==} + peerDependencies: + '@babel/core': ^7.4.0-0 + + '@babel/helper-environment-visitor@7.24.7': + resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-globals@7.29.7': + resolution: {integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-globals@8.0.0': + resolution: {integrity: sha512-lLozHOM6sWWlxNo8CYqHy4MBZeTvHXNgVPBfPOGsjPKUzHC2Az9QwB6gxdQmpwHl6GlQtbGgS+lj5887guDiLw==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@babel/helper-member-expression-to-functions@7.29.7': + resolution: {integrity: sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.29.7': + resolution: {integrity: sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.29.7': + resolution: {integrity: sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-optimise-call-expression@7.29.7': + resolution: {integrity: sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==} + engines: {node: '>=6.9.0'} + + '@babel/helper-plugin-utils@7.29.7': + resolution: {integrity: sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-remap-async-to-generator@7.29.7': + resolution: {integrity: sha512-16AMiW26DbXWBbr3B8wNozKM0ydMLB892vaOaJW/fPJdnT8vJk5sdkQcU/isqUxyCE0cEoa8wZOcbgDuC4b6Og==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-replace-supers@7.29.7': + resolution: {integrity: sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-skip-transparent-expression-wrappers@7.29.7': + resolution: {integrity: sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.29.7': + resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@8.0.0': + resolution: {integrity: sha512-6mJgmFFFIIO82vvoLt9XtRC7/TkzXfts1t/SpRX4IHSzMgqoPYCWesVu1udUPUWioAE/2fcG6WuI8zrkE1gwrg==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@babel/helper-validator-identifier@7.29.7': + resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@8.0.4': + resolution: {integrity: sha512-4wFaiLd0bVo4cIoTXI3zKI038NIWE/cr3jvBjejOVYVxV/m8Ltav1USiGzG1fmS5J2RhgEOgXNNK46cRPnRsrg==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@babel/helper-validator-option@7.29.7': + resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@8.0.0': + resolution: {integrity: sha512-U4Dybxh4WESWHt5XhBeExi4DrY0/DNK1aHpQbsrQXCUbFHuMweT0TpLEWKvaraV2Y6fS+ZXunsZ8zIuZIgvF2Q==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@babel/helper-wrap-function@7.29.7': + resolution: {integrity: sha512-iES0Skag9ERIF68aXadpO6dbXa03mNWK3sEqJaMnLNs/eC3l0lkImdfoy6Y09/SfkpawdAB4RjQ7PVA7TcVGdw==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@8.0.0': + resolution: {integrity: sha512-wfbi91pM3py96oIiJEz7qIpyXDytgr9zQC1HEWwlGNVRAEmItuU/0a41ZUKu1sJGyhhOIpc4t5vk4PYzt8wpsg==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@babel/parser@7.29.7': + resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/parser@8.0.4': + resolution: {integrity: sha512-srpptsAkEbbNIC/q8nT7o+m6CQe8CJUTV/t7MYc9NnWlgYVtHOb7JH6SorxMhN0kuRJjVqXbKClG6xSbPtzz+g==} + engines: {node: ^22.18.0 || >=24.11.0} + hasBin: true + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.29.7': + resolution: {integrity: sha512-GE1TFSiuFeGsCxmYXZl8HwoPrVlwe4rHPFE8weieGKZqnDORK+Ar3vgWMgW+AOxQ6/2TgLSKx9p6W7O4rC6qgQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.29.7': + resolution: {integrity: sha512-QQt9qKHZ2sg/kivaLr7lnQr8HVrQDdBNSfCsTjiDxRuX/K5ORyKq+Bu8Xr0cDE3Dfkv0cw28Ve0EKyKMvulkOw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + + '@babel/plugin-proposal-async-generator-functions@7.20.7': + resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-proposal-class-properties@7.18.6': + resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-proposal-class-static-block@7.21.0': + resolution: {integrity: sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-static-block instead. + peerDependencies: + '@babel/core': ^7.12.0 + + '@babel/plugin-proposal-dynamic-import@7.18.6': + resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-dynamic-import instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-proposal-export-namespace-from@7.18.9': + resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-export-namespace-from instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-proposal-json-strings@7.18.6': + resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-json-strings instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-proposal-logical-assignment-operators@7.20.7': + resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6': + resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-proposal-numeric-separator@7.18.6': + resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-proposal-object-rest-spread@7.20.7': + resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-proposal-optional-catch-binding@7.18.6': + resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-proposal-optional-chaining@7.21.0': + resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-proposal-private-methods@7.18.6': + resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-proposal-private-property-in-object@7.21.11': + resolution: {integrity: sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-proposal-unicode-property-regex@7.18.6': + resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} + engines: {node: '>=4'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-async-generators@7.8.4': + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-properties@7.12.13': + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-static-block@7.14.5': + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-dynamic-import@7.8.3': + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-export-namespace-from@7.8.3': + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-assertions@7.29.7': + resolution: {integrity: sha512-/An1OCBN93thpBAGyfsK2pcf0jvju1SAtKkL2Ny++B5Sy6sqgzXDQH1cZxWbF96Wuk+bn41MDA9bLd4VVAw6rw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-json-strings@7.8.3': + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-jsx@7.29.7': + resolution: {integrity: sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-numeric-separator@7.10.4': + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-object-rest-spread@7.8.3': + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3': + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-chaining@7.8.3': + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@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 + + '@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 + + '@babel/plugin-transform-arrow-functions@7.29.7': + resolution: {integrity: sha512-N7zArUXWzAMzm+/N0uPBeVB3Fam5lMxtUwMmDK5f/IBBS7a7p1qeUoxd/6CckXoxUdgsntq1Dh8xNW06maZbDQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-async-to-generator@7.29.7': + resolution: {integrity: sha512-pcUb2SS+RMo9TWVBwKGI5ShtoG7R+zBsFmCKDa6fe8c+hPr3XJlZgoE5j6i8W7gDjhyvy+85vmYexanvXh3d1w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-block-scoped-functions@7.29.7': + resolution: {integrity: sha512-cUSmjh72N+rN4PrkFlN1dJwNCwjVp5d38/CQrEsFggkD10UiFlBFgdH3tv5dNsLuHY+3S8db2xCHjhZcv5WgvA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-block-scoping@7.29.7': + resolution: {integrity: sha512-ONyr4+AZhKh8yKWInVxU9AXA9EbsyeLcL6V0dJy6M2/62vuvpGm29zzuymbTpdc451GEpDIdAyPLP3r+P61yKQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-classes@7.29.7': + resolution: {integrity: sha512-qV0OGGBVacduzQHE649JyCneOFI/maT+YKsO+K4Yi3xv2wTPNjM/W2o2gdzMwEAZz7fXNTHAe0NcSg30bIN69g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-computed-properties@7.29.7': + resolution: {integrity: sha512-RK7/IyU5phpuCdBAuig5VkzG/EnbDaui5SQGdU9BFrHdV+mV4cUjLMQ9lJDjLNtWHsqtiefpGZUXQP2BiTYMsA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-destructuring@7.29.7': + resolution: {integrity: sha512-iPX8aD6H9zV5s7ZsqTdNocPN/MGQ5sSMnElKrktxjJRMnB2jN/1p2+R7GkfD6CAYoVFqy5A4XnSIUeGgJzIWpg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-dotall-regex@7.29.7': + resolution: {integrity: sha512-3qc18hsD2RdZiyJNDNc7HQpv6xbncwh8FYtxNFFzclSyh/trPD9KkVR9BDECUjDLvb7yJVF15GfYUuC+LMkkiQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-duplicate-keys@7.29.7': + resolution: {integrity: sha512-6IvRRriEMqnBwD6chtxdLpMYCHWEzN+oL5cyQtjykya19UgzbmKhxmhZgKC/LHxS2nYr9Q/qYPZ5Lr6jOL9+yQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-exponentiation-operator@7.29.7': + resolution: {integrity: sha512-zFpMOTLZBdW5LfObqcSbL6kefg4R4eLdmvS0wbN9M6D5Mym/sKm9toOoWyVOa+xDjvCnuWcHls2YonXwHvH3CQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-for-of@7.29.7': + resolution: {integrity: sha512-zeSIHh0+E1Um1WJRXCFlHQYu2ieJNdivLLjlBEp+dIBu3S51n+SZZmIXjxnItw6pz56Cn+KvK68BIBVsxq2JiQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-function-name@7.29.7': + resolution: {integrity: sha512-otRWaHXE6fbAGkePvaj/kvs3HsqXfPhlnzwSOlnFgbqCPMd975dW+4wZ00WFBt+/YlBGcJwNrARQTOJOb4ZrIg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-literals@7.29.7': + resolution: {integrity: sha512-DZ/oLP21ZuWx1vKqnoNv6/tvEK48AQOBRai40CX9dTjGluvT/YZCyY3rryDtyUqCEoyNroy5KKPwX2iQCiRvyw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-member-expression-literals@7.29.7': + resolution: {integrity: sha512-hl1kwFZCCiDyfH25Xmco9jTrkPgnS9pmOzSG7W5I4SaGbLeqKv417hcU2RKmaxoPEgsoJh7ZPOrnPGq99bHoUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-amd@7.29.7': + resolution: {integrity: sha512-fxtQoH3m5ywUSIfaH0FGCzWu4McsYon5bD3K4XnskC7f+OyQMj7rsOMi4NvvmJ83WwBAg4UCe+ov4VZlqEvyew==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-commonjs@7.29.7': + resolution: {integrity: sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-systemjs@7.29.7': + resolution: {integrity: sha512-TM2ZcQLoG2/y4HODiStCo10DibYhWhGWAwVv+EQKmG/7GFl0N+AAmUiXOMKM+aiJ9XBJ9AHVZBvTzMnJ2sM3cQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-umd@7.29.7': + resolution: {integrity: sha512-B4UkaTK3QpgCwJnrxKfMPKdo92CN7OKXAlpAAnM3UPu0Q0lCCk57ylA9AJbRy2v8dDKOPAAWcoR6CMyeoHwRCA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-named-capturing-groups-regex@7.29.7': + resolution: {integrity: sha512-vuFoLwr4qnv2xbZ16SQd6uPcH5FNrLHhk/Jzo++0XJFcaDsr4gjJVg6j398oMHiC+83k/GiBzviwF5KBJkPUtQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-new-target@7.29.7': + resolution: {integrity: sha512-fEo41GmsOUhOBlw8ioo6zvjX5Xc2Lqkzlyfqbpsk3eB6TReV18uhxZ0esfEokVbY2+PVJAQHNKxER6lGrzNd3A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-object-super@7.29.7': + resolution: {integrity: sha512-Ea/diGcw0twB5IlZPO5sgET6fJsLJqPABqTuFWIR+iMPGPZJkATEIWx0wa+aEQ5UY1CBQyP/gkAiLEqn1vBiQA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-optional-chaining@7.29.7': + resolution: {integrity: sha512-6GM1dhvK3gNODkXcEcMCOLEDCLSoZ/sBbro2Ax8HURyasQ4NshagQixkRFdh5niI6E4gmA/jYI/4aT7rRos3ZQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-parameters@7.29.7': + resolution: {integrity: sha512-ZDOBqV/qLYJI0YElr8DcENEyARsFQeESqWXH6gZlghYXuPPjvweuDhP4VyEi4BlUBlLRFZVjxoZDMjxhLW766g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-property-literals@7.29.7': + resolution: {integrity: sha512-bOMRLQuI0A5ZqHq3OWJ89/rXpJ/NJrbVhXiP4zwPGMs6kpcVsuTUNjwoE30K0Qm3mf48a/TnRYYD6vPNqcg6jA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-display-name@7.29.7': + resolution: {integrity: sha512-+1wdDMGNb4UPeY3Q4L5yLiYe6TXPXubs4NjrgRFw13hPRLJfEMw2Q5OXkee6/IfdqePIeW4Jjwe3aBh7SdKz4Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-development@7.29.7': + resolution: {integrity: sha512-Xfy3UVMF04+ypnFbkhvfqtmvwfe92qwQdbGZVonhE+6v35GzlofmOnA1szaZqzb9xYWr0nl1e5EMmzi0DNON1g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx@7.29.7': + resolution: {integrity: sha512-WsZulLVBUHXVj2cUcPVx6UE21TpalB6bHbSFErKT0Ib++ax24jjXe73FqlWvdylFOjiuPHYi6VCcgRad1ItN+A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-pure-annotations@7.29.7': + resolution: {integrity: sha512-H5E+HBgDpr6Q5t+Aj11tL7XkIui1jhbIoArVQnqjgXo5/3YxkN7ZEBcWF4RQlB0T4rrxJQbXS6kiFV6B7XTqUA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-regenerator@7.29.7': + resolution: {integrity: sha512-rNNFV0DBAJp988xW2DOntfDoYn1eR8GGF5AT5vYc+rjyfaQkM242c9tZUHHPe7KYaiJizXPWhQTzzdbXySyhBw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-reserved-words@7.29.7': + resolution: {integrity: sha512-5+YhdpVgmfSmwZyLMftfaiffLRMHjzIRHFHHLdibcSyJm2pasMrKHrO3Ptrt2DRshjvpgjEJJ1zVW14WPq/6QA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-shorthand-properties@7.29.7': + resolution: {integrity: sha512-I+WYbGBAiCn7nA6xBrlgPH+MB7HWb4u8pv5S0Pv7OtwNvIFvCCb24YlttKEeUFVurfBCEaOTnuhlqsb7f0Z5Dg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-spread@7.29.7': + resolution: {integrity: sha512-/u5K1QWada7tbYNqTjMh96718g9NTwh9tfPJMsSmVsQwGT447FskV+KcfeXkXq2GWki4EM/MuTdmBec+hOuVTQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-sticky-regex@7.29.7': + resolution: {integrity: sha512-BCHzNYJGe9l7EpwwDBN/ztlL2NYFFq8hp9ddjtUEM9f2O7S7kKV/lL6Fwo7IF7NSkYhPK2vO+86nIGltA90MsA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-template-literals@7.29.7': + resolution: {integrity: sha512-NCSEJ4sLFU2gqAub45HYh4fus2yQ36rr6ei6vpU7NdoJqCpxvEG8E6eJpscGyXP3VHD2Ny+fSXr04k1hoUrFqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typeof-symbol@7.29.7': + resolution: {integrity: sha512-223mNGoTkBiTEWFoK+Q6Go3tueMRclO8vxxxxquNCYuNI4jWOofFKJRRDu6SDrB8Sgo1UEGW9T4GAQ8ZyRso1A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-escapes@7.29.7': + resolution: {integrity: sha512-jCfXxSjf94lf4E0hKE0AByxF6F3/pVFqRdUUNkDJhsY0m1ZKjnN6ZYyMeHNpzflxb/0q5b7t3p+BE+SLF1WOtA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-regex@7.29.7': + resolution: {integrity: sha512-7D/x/23/d/3VqZ0QA+LGbZMlGwZjztBygSWWWsfTPoQ1oQ6Q1P6Mr3d0kk42XabyUVw+fha3LqdRsFqeKqvCyA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/preset-env@7.20.2': + resolution: {integrity: sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/preset-modules@0.1.6': + resolution: {integrity: sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg==} + peerDependencies: + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + + '@babel/preset-react@7.13.13': + resolution: {integrity: sha512-gx+tDLIE06sRjKJkVtpZ/t3mzCDOnPG+ggHZG9lffUbX8+wC739x20YQc9V35Do6ZAxaUc/HhVHIiOzz5MvDmA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/runtime@7.29.7': + resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==} + engines: {node: '>=6.9.0'} + + '@babel/template@7.29.7': + resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==} + engines: {node: '>=6.9.0'} + + '@babel/template@8.0.0': + resolution: {integrity: sha512-eAD0QW/AlbamBbw0FeGiwasbCVPq5ncW0HNVyLP3B9czqLyh4gvw+5JTSNt6le9+ziAU7mqDZsKTHf3jTb4chQ==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@babel/traverse@7.29.7': + resolution: {integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@8.0.4': + resolution: {integrity: sha512-bZnmqzGG8UZneG1lLxBoWIH0G6Gr1D846Yu4/3XnY6FhCndMR49u26nTY08u/dAxWmLWF9vGQOuC+84FfIUoeg==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@babel/types@7.29.7': + resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} + engines: {node: '>=6.9.0'} + + '@babel/types@8.0.4': + resolution: {integrity: sha512-eY+Yn3dCqTGmyiq2QRU66lA5FL8lqqqvecHt0fF3uHONIa7ToYsaCiWV8lOKqAs0Rb2SjixiKFROngnulPtt2g==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@cfworker/json-schema@4.1.1': + resolution: {integrity: sha512-gAmrUZSGtKc3AiBL71iNWxDsyUC5uMaKKGdvzYsBoTW/xi42JQHl7eKV2OYzCUqvc+D2RCcf7EXY2iCyFIk6og==} + + '@codemirror/autocomplete@6.20.3': + resolution: {integrity: sha512-tlosUqb+3BbxCxZdu4tKeRghPFC+QM7q4X5YhKV2eCmPG+1r2F3f4AaSz5sCrFqUtX4Jh20VFTKecl16MgiV9g==} + + '@codemirror/commands@6.10.4': + resolution: {integrity: sha512-Ryk9y9T0FFVF0cUGhAknveAyUOl/A1qReTFi+qPKtOh2Z9F4AUBz3XOrYD4ZEgZirdugVzHvd/2/Wcwy5OliTg==} + + '@codemirror/lang-javascript@6.2.5': + resolution: {integrity: sha512-zD4e5mS+50htS7F+TYjBPsiIFGanfVqg4HyUz6WNFikgOPf2BgKlx+TQedI1w6n/IqRBVBbBWmGFdLB/7uxO4A==} + + '@codemirror/lang-python@6.2.1': + resolution: {integrity: sha512-IRjC8RUBhn9mGR9ywecNhB51yePWCGgvHfY1lWN/Mrp3cKuHr0isDKia+9HnvhiWNnMpbGhWrkhuWOc09exRyw==} + + '@codemirror/lang-sql@6.10.0': + resolution: {integrity: sha512-6ayPkEd/yRw0XKBx5uAiToSgGECo/GY2NoJIHXIIQh1EVwLuKoU8BP/qK0qH5NLXAbtJRLuT73hx7P9X34iO4w==} + + '@codemirror/language@6.12.4': + resolution: {integrity: sha512-1q4PaT+o6PbgpkJt4Q8Fv5XJxTy4FUZ4MWETtyiDw3J0Pyr9E2vqcKL+k9wcvjNTIsauxvE7OfmWj3FRPHQ76A==} + + '@codemirror/lint@6.9.7': + resolution: {integrity: sha512-28/+iWLYxKxsvGYhSYL7zaCZqLz5+FFFDq9tVsvGv9kv8RY4fFAchJ5WX9M3YrrRlTIsECjsXPqeNgnSmNP2dg==} + + '@codemirror/merge@6.12.2': + resolution: {integrity: sha512-V8JvyAPjHbPupqP7BeMcsdsYCbyPij74jxIbaIJDORI+VZzW44zFmon8bF+oxGWvOKhcRmkiUMXd8MxHr3YA2w==} + + '@codemirror/search@6.7.1': + resolution: {integrity: sha512-uMe5UO6PamJtSHrXhhHOzSX3ReWtiJrva6GnPMwSOrZtiExb5X5eExhr2OUZQVvdxPsKpY3Ro2mFbQadpPWmHA==} + + '@codemirror/state@6.7.1': + resolution: {integrity: sha512-9QzNDgE4EYDnAHfrTlR2lwiPciiOymLtwKK+8yHQzCc7GXhAP9xdEbEJFy2IWB1j9UGUl9BsgMmTo/ImA02T7A==} + + '@codemirror/view@6.43.6': + resolution: {integrity: sha512-EVunGSYN1wz1p75WY1s3Xg7t3i8Yol0kGZGizNdX9BUFgMFILYVe8/u6EVpo7Ff5PwbZuILb4QAq7IZoKzIEQA==} + + '@coze-editor/code-language-json@0.1.0-alpha.868621': + resolution: {integrity: sha512-DiS8+k2fvuKqnbCAfIxJm3UNSVrve9GsAsSVmOMDBYPi+hjtIo2/cyfJIKocJTuUpzKNP+r3iIYr89TynSFHHw==} + peerDependencies: + '@codemirror/language': ^6.0.0 + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + '@coze-editor/code-language-shared': 0.1.0-alpha.868621 + + '@coze-editor/code-language-python@0.1.0-alpha.868621': + resolution: {integrity: sha512-DYw0M/34x11zEWQGhiGImexeyEACSzd/Dq0SUWpL56fe+md3jEKH/i2qTpd+lGmriRjFxqJO1J7ZpS7gaqvlPQ==} + peerDependencies: + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + '@coze-editor/code-language-shared': 0.1.0-alpha.868621 + + '@coze-editor/code-language-shared@0.1.0-alpha.868621': + resolution: {integrity: sha512-/E7OWlfOn8WeZfAdWGpVtITuahKVq8Kh1yPZAR+v4z77EkFv3dkU7LLs2oZO55k5t6IHBILa6VH/gNpBrTnQCQ==} + peerDependencies: + '@codemirror/autocomplete': ^6.18.0 + '@codemirror/language': ^6.0.0 + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + + '@coze-editor/code-language-shell@0.1.0-alpha.868621': + resolution: {integrity: sha512-EJf42+XWvf8ai+h/0/ieIj6SglWyx+LtcAHjG7GZzAiGusWLQun4MtKLw4uh/uwn5mRrlX4A9P1xZPw8sDeOYQ==} + peerDependencies: + '@codemirror/language': ^6.0.0 + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + '@coze-editor/code-language-shared': 0.1.0-alpha.868621 + + '@coze-editor/code-language-sql@0.1.0-alpha.868621': + resolution: {integrity: sha512-h+i1Ma3R6idDE/8OKjur2+RLdbDrifc+Wsf1IXlyeq4fHfIzot7qlAWg+KvME+HyejnosS6lJAb8YFqRDddzOQ==} + peerDependencies: + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + '@coze-editor/code-language-shared': 0.1.0-alpha.868621 + + '@coze-editor/code-language-typescript@0.1.0-alpha.868621': + resolution: {integrity: sha512-FgmtJP/TfArYOPu16X79TsdmWhq+ijB604lzon6kJE5uEkC5pdV9GX2V155r2yq7AYLbMwFfRaDHGpb+6VauVw==} + peerDependencies: + '@codemirror/language': ^6.0.0 + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + '@coze-editor/code-language-shared': 0.1.0-alpha.868621 + typescript: '*' + + '@coze-editor/core-plugins@0.1.0-alpha.868621': + resolution: {integrity: sha512-uU/uL+odFUoQTaiHHsnSREgHA0YRkhSxhU3gYcLkbaBnDqtSKXI2wfXfLmStWYgOgokvF5je1SRAcpmUB3NEng==} + peerDependencies: + '@codemirror/commands': ^6.3.3 + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + + '@coze-editor/core@0.1.0-alpha.868621': + resolution: {integrity: sha512-LIJkSNY5+2ZtvmKIoHRa+pBuymlg7nBdTL0hfZ0PF97cTyLdP5S25w/sTW4hMP2difvdUdDj41ipd6u4QtW9Zg==} + peerDependencies: + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + + '@coze-editor/editor@0.1.0-alpha.868621': + resolution: {integrity: sha512-GyjGyOpyAYXaDBjQmJlONQA9MtjV/7Vl6QgpSgb8NJVyLV/VUJaSiY24fkAr+TQTHE1U4zFPArwmmiB3SjCWQw==} + peerDependencies: + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + react: '>=16.8' + react-dom: '>=16.8' + + '@coze-editor/extension-completion-icons@0.1.0-alpha.868621': + resolution: {integrity: sha512-bBEqHc0U8afTFUNn6+ah6/DcG+xDJma79gi+3RTEgGsUn8hGPCEdx1gUYFM4a7AT+MsSi4YMOL+9CLG5Id9xtw==} + peerDependencies: + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + + '@coze-editor/extension-json-ast@0.1.0-alpha.868621': + resolution: {integrity: sha512-oFWfRqXo2xtrbP180MhFAoj6MbGke30aNEJzITdDE+ULPOnkgcg3yc0V5ZYW7NDlQKEWvQfLNEhJezpbMLXoTA==} + peerDependencies: + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + + '@coze-editor/extension-json-empty-string-value-completion@0.1.0-alpha.868621': + resolution: {integrity: sha512-pLMNaUYOF5Xky1xHrGxMpTttwDdgE1XFYYCdbvY/SW0cHlGcFLt7tG1QDnkVQ4NRNWD72bRoJYEG70C3UtIxhg==} + peerDependencies: + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + + '@coze-editor/extension-json-hover@0.1.0-alpha.868621': + resolution: {integrity: sha512-rupoEE5P6MkrwHgT8logYoJlRwTA/aY+yHbyr3vorc5RcVigooxphMNrtITiVJphpRftKj+HaRBoRNpnZ66tNw==} + peerDependencies: + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + + '@coze-editor/extension-json-unnecessary-properties@0.1.0-alpha.868621': + resolution: {integrity: sha512-QQBiNJTWYHQ2pWKwqT1+Z1zvDSd6QpPpPLs/UFrPzQVUgh8o+CrXUe/C9GZK3o5aTjeZmDmgZWd67XR7zdLckA==} + peerDependencies: + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + + '@coze-editor/extension-links@0.1.0-alpha.868621': + resolution: {integrity: sha512-v9+WheHGJB6fjvyhgTOEAC6IfLnqlxhJFHlOe4cjIRa/A+WmyVFy628g2KlbCHJ9n3JSRhMN8AR2WFU+omGvWw==} + peerDependencies: + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + + '@coze-editor/extension-lint@0.1.0-alpha.868621': + resolution: {integrity: sha512-YgO5bDSNQMM3ZKbr0fF1A7PZ91q/wceZtLGOTxUgxV/iMxs1WhSAgiUm8qL4QoonNZ4fqe6iGedjAFKl499VjA==} + peerDependencies: + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + + '@coze-editor/extension-placeholder@0.1.0-alpha.868621': + resolution: {integrity: sha512-FdnIjDRBzVErJ5zdefiKUqynbbtNXYDaRd9dP4htX4Mk2dHZOTcO7abAg74Aqrv1iIO1C/hsHZwAPtj2igfhpA==} + peerDependencies: + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + + '@coze-editor/extension-regexp-decorator@0.1.0-alpha.868621': + resolution: {integrity: sha512-q3keVCFvXxhnKCjWbj7wccMMFi7RtPwFTCNTqm078upBA5FqBOabjjfm9XYeMeqFPfj13Dj+QYl1glQ1POrXkw==} + peerDependencies: + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + + '@coze-editor/extension-scrollbar@0.1.0-alpha.868621': + resolution: {integrity: sha512-3iNR3bwJlge2XmkwqiT9GRRa+6HaxaG8A9pThu/atXGrSqob0/xOUIJHz/2Zl/9hvEv28pwdE5BGgci1CQ8I3A==} + peerDependencies: + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + + '@coze-editor/extensions@0.1.0-alpha.868621': + resolution: {integrity: sha512-wSHUr9FoTtYihX97ExDto4wR9m/zqzX4ehEFgM3BM++/m7bLduP4BLJFEpz5UTYWNe7Poy2bhgTps0+vrnOxbA==} + peerDependencies: + '@codemirror/language': ^6.0.0 + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + + '@coze-editor/lezer-parser-jinja2@0.1.0-alpha.868621': + resolution: {integrity: sha512-/0UHn/jYOCr4O4MPmh40kQLm+0oatPpkA3Db/eOfvxixXuGdf9opaKLreCJMKAGW9zk2IFUn0ApzzbR+ylm+HQ==} + + '@coze-editor/lezer-parser-json@0.1.0-alpha.868621': + resolution: {integrity: sha512-obdwpIIWmCbmk85YsYe4S1UR6XQl3LjiRvsHOTHkVx3d55C5YZtIGi35t+GRV4eWKxWKLXCe7b0ymnzt0K1GxA==} + + '@coze-editor/lezer-parser-template@0.1.0-alpha.868621': + resolution: {integrity: sha512-IM7tIYy+ffaEfbbdZ017jLvmU/4Syh7yC08RivTYWQE2SRumOwQc/mA1Bwvd+eQP6aoXnjT1bwbNXNh32Rh35g==} + + '@coze-editor/parser-json@0.1.0-alpha.868621': + resolution: {integrity: sha512-EUQBEXQSstMoeEfzuM5F/Hp244y6CfnPBM+tfvXv6KK6QgiTHML8E85ZkpnMU83EctoqvKyPo+XADEAfA06jIQ==} + + '@coze-editor/preset-code@0.1.0-alpha.868621': + resolution: {integrity: sha512-Z+8YQ6H27QhwBbveigi+PYHJl+4BZH9+StwBs2OQR/bmt3r4fPcxjXjTJcoDeEOxUt342rtahIp2TgKFONruQA==} + peerDependencies: + '@codemirror/commands': ^6.3.3 + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + '@coze-editor/code-language-shared': 0.1.0-alpha.868621 + + '@coze-editor/preset-expression@0.1.0-alpha.868621': + resolution: {integrity: sha512-Nm/ZK4CLkvRgHsOrMeXKbP5nciWUhTt6/lsdNke9JDSRWJ0E3/jwctsvQDKrobS/Y3HHXSeklApCUdKAa4tmLw==} + peerDependencies: + '@codemirror/commands': ^6.3.3 + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + + '@coze-editor/preset-none@0.1.0-alpha.868621': + resolution: {integrity: sha512-Lxj9uEeJxbUGn471TdbKvjePdUsagcgss+2kPyZNhuM9yUEBvbMwg6y08Q9juvSsRwEjEddyOgQUM1r+xtaU1g==} + peerDependencies: + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + + '@coze-editor/preset-prompt@0.1.0-alpha.868621': + resolution: {integrity: sha512-xvtBWVKGSyR+j48r0ekEeBDdYsjC4EuGVBPRRYRWyUhupmljLjjVE8vL+kmJdcMIs5PRHPodg1rNYAkXErNzjQ==} + peerDependencies: + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + + '@coze-editor/preset-universal@0.1.0-alpha.868621': + resolution: {integrity: sha512-urmFGBAbpGovGF7d1aXvNJaoY9c6JsxgA9ttTdyOIGaHlH40RiUOQOdVKLHuJRdZqDS5sUVVwuU2D72WqwPudg==} + peerDependencies: + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + + '@coze-editor/preset-variable@0.1.0-alpha.868621': + resolution: {integrity: sha512-QjLMf4zPLGBMPbpMjjOyWHaSWkdUB58TNC4xlVhAL9tf1w0j1Iigz21O53EjNCdxIJqB6xMcbFmC8ckos+drrg==} + peerDependencies: + '@codemirror/commands': ^6.3.3 + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + + '@coze-editor/react-components@0.1.0-alpha.868621': + resolution: {integrity: sha512-kyshX8vcqp5qFfHNJt4TI8sXD8IIXGoApGUz3GhJYjfWf34HTI75r8Us11sMJKvhx5tVs6+Ulk0tMH8nD2e3Cg==} + peerDependencies: + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + '@coze-editor/react': 0.1.0-alpha.868621 + react: '>=16.8' + react-dom: '>=16.8' + + '@coze-editor/react-hooks@0.1.0-alpha.868621': + resolution: {integrity: sha512-VjQtL8pQW5BF1e+sIZlj8GNR4E/KacuPxNGn9D4VOI13bLD+8DDqvxEiURQpcCsX5/A7+AJFKTpwTi97pbVkJQ==} + peerDependencies: + '@codemirror/commands': ^6.3.3 + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + '@coze-editor/react': 0.1.0-alpha.868621 + react: '>=16.8' + react-dom: '>=16.8' + + '@coze-editor/react-merge@0.1.0-alpha.868621': + resolution: {integrity: sha512-VTYUJ5DqCuJaPThuCD4OcGs7IK5HkBx5Fdq0hMBX/BEau7q4rQkKpihj2lyqKJ2O4jiJW8FkFPma0hmRFSLMnQ==} + peerDependencies: + '@codemirror/merge': ^6.10.0 + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + '@coze-editor/react': 0.1.0-alpha.868621 + react: '>=16.8' + react-dom: '>=16.8' + + '@coze-editor/react@0.1.0-alpha.868621': + resolution: {integrity: sha512-hMkqiPwEWZHf2sbiOd1us2llG9fKm3BC7S1JiSXWu/0nqZbCPKlScxwawwWiL5W5ZVCH/f/CB/zzeGWHfyuanw==} + peerDependencies: + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + react: '>=16.8' + react-dom: '>=16.8' + + '@coze-editor/utils@0.1.0-alpha.868621': + resolution: {integrity: sha512-0JTtT71PSDNBrIl5f0SIio0QeXPU7WkqUxMbJSLraTVqAPXTwBt2yfQoXqcb4st4Dx/J3PehZR0hMnLLz9jPVA==} + peerDependencies: + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + '@lezer/common': ^1.2.2 + + '@coze-editor/vscode@0.1.0-alpha.868621': + resolution: {integrity: sha512-JokGr03hkb6bWv5QFxr/itJ95sBpcj1ZR2wcETOyoVFY1XivP46BGQjJPiwFvsw1+wNcVXUdzvPmyp7uaOukNQ==} + peerDependencies: + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + + '@coze-editor/vue-components@0.1.0-alpha.868621': + resolution: {integrity: sha512-tm0woNS95HDFZG1ovnDpBkQCNeZTGsGFD7qVQBROmIcbGonHkR+a522gA6RCtzAKE35LigdWzH49usDPDTXe9g==} + peerDependencies: + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + '@coze-editor/vue': 0.1.0-alpha.868621 + vue: ^3.5.0 + + '@coze-editor/vue@0.1.0-alpha.868621': + resolution: {integrity: sha512-ODYDWtccDDRICvhtEXRXXadlMo5ZEx4p0X7RCyTN3EKKky8zrYFBo/Ke1kHpZjtalFnLf4Mx8SmInZx/mFJy7Q==} + peerDependencies: + '@codemirror/state': ^6.4.1 + '@codemirror/view': ^6.26.1 + vue: ^3.5.0 + + '@cspotcode/source-map-support@0.8.1': + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + + '@dagrejs/graphlib@2.2.2': + resolution: {integrity: sha512-CbyGpCDKsiTg/wuk79S7Muoj8mghDGAESWGxcSyhHX5jD35vYMBZochYVFzlHxynpE9unpu6O+4ZuhrLxASsOg==} + engines: {node: '>17.0.0'} + + '@dnd-kit/accessibility@3.1.1': + resolution: {integrity: sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==} + peerDependencies: + react: '>=16.8.0' + + '@dnd-kit/core@6.3.1': + resolution: {integrity: sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@dnd-kit/sortable@7.0.2': + resolution: {integrity: sha512-wDkBHHf9iCi1veM834Gbk1429bd4lHX4RpAwT0y2cHLf246GAvU2sVw/oxWNpPKQNQRQaeGXhAVgrOl1IT+iyA==} + peerDependencies: + '@dnd-kit/core': ^6.0.7 + react: '>=16.8.0' + + '@dnd-kit/utilities@3.2.2': + resolution: {integrity: sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==} + peerDependencies: + react: '>=16.8.0' + + '@douyinfe/semi-animation-react@2.101.1': + resolution: {integrity: sha512-f4BFCjxaV+cVkppfFfrYkIczM+wFmms8qxWXwneFlLEz21tn6MK4OqO44zhiWhCQYgF0IVnaGNpAydlJUiJBrw==} + + '@douyinfe/semi-animation-styled@2.101.1': + resolution: {integrity: sha512-RzBZVW0PewmmaoLBatlUeWSBtQzbdU2KNW1urNBuHS3BQbYUnrhQ2JTVzsjw+j8aLW25nag9lzYNhwv/gOLOow==} + + '@douyinfe/semi-animation@2.101.1': + resolution: {integrity: sha512-y+0hrmy5emlyLIQ4YYakk6iQ4rxsU/YO/bocFMjPuIyqKGY33/4Gx7TU7eAEYF0BzVysXKkP7x/qN3bj5MdMJQ==} + + '@douyinfe/semi-foundation@2.101.1': + resolution: {integrity: sha512-RZTktugBGKZ1Bn78qcc783SL0RN02F4Q88fwYf5+QvUqJOoJYb9Hd7Jfxt0qZ/dD5EFRjdkgibGNXP+SKIf+oQ==} + + '@douyinfe/semi-icons@2.101.1': + resolution: {integrity: sha512-OS7JA3UOHi0v9I8EWaUM1XqNBaabs9A6++liW5ozfVmKrFFmJerq+sUj4yU7goe+QQN38snBx/39AyzlKjPSpA==} + peerDependencies: + react: '>=16.0.0' + + '@douyinfe/semi-illustrations@2.101.1': + resolution: {integrity: sha512-5BwBlTjfrNPfiY1R1fBWu+fOf5Mjg7zNZBbhh1TfGGIOQxjToVT4atBnJgZTUO2GnmxnRqpGPMmtJXQZwpSFZg==} + peerDependencies: + react: '>=16.0.0' + + '@douyinfe/semi-json-viewer-core@2.101.1': + resolution: {integrity: sha512-ulf5uGbpHzDXSbqx39Ddy2xCEcILjq22z0VLI8aLU0hrJfunZuulT3CssXwdJVsD4XpXkVP9/Us5IwlrWT0zaA==} + + '@douyinfe/semi-theme-default@2.101.1': + resolution: {integrity: sha512-Kc5VKPLWq2JCOnmtlFpdPyz+6CTZRjXTZhYMtHfB/szdYy8Gp8/ErygmFpXsZLITif7eoCTn+psEP6xZLKIt3w==} + + '@douyinfe/semi-ui@2.101.1': + resolution: {integrity: sha512-gyqdTws8rxtlwI6kpHV9HSHrSGGFTspdEC4cP333y7OzXPTIaXmF8R/OLGtULI/bl5DEq6AibgWVyEiEPIK+XQ==} + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + + '@emnapi/core@1.10.0': + resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} + + '@emnapi/core@1.11.3': + resolution: {integrity: sha512-zLpS5asjEb7lq8jYLq37N6XKaE41DIexlY1rF/z4/tIl3wo13Sqm28fRyfIsKZD+NZ8mM5RoKkpW/rBcuoSZSg==} + + '@emnapi/runtime@1.10.0': + resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} + + '@emnapi/runtime@1.11.3': + resolution: {integrity: sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==} + + '@emnapi/wasi-threads@1.2.1': + resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} + + '@emnapi/wasi-threads@1.2.3': + resolution: {integrity: sha512-ELEBe8PsLvvJ6QMr0zLt8ffvOHW/dc1m3CEzNMg7aJUv3bMaoDtw2TXyDAwkYBuroxxuHEwhRTLJSe5sya547g==} + + '@emotion/is-prop-valid@1.4.0': + resolution: {integrity: sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw==} + + '@emotion/memoize@0.9.0': + resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} + + '@emotion/stylis@0.8.5': + resolution: {integrity: sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==} + + '@emotion/unitless@0.7.5': + resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==} + + '@eslint-community/eslint-utils@4.10.1': + resolution: {integrity: sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/config-array@0.21.2': + resolution: {integrity: sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/config-helpers@0.4.2': + resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.17.0': + resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.3.3': + resolution: {integrity: sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.3.6': + resolution: {integrity: sha512-l2Ul9PrHsPCKcEY/ac7VgFj9D80C7S68sOKc618SyHDPK36s1XcFebXY0iTzUVn4Yq+YbwvSnDmCz9yxjX+QrA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.39.5': + resolution: {integrity: sha512-QywQuszQh77pIXCsq998c8hbhSTI/azTty1Z6N53dmAudKHhy573j3yvRLsX2BSp8YpLtoCEG8E9DJe+8zUh4A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.7': + resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.4.1': + resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@floating-ui/core@1.8.0': + resolution: {integrity: sha512-0CIZ5itps/8x7BG8dEIhs53BvCUH2PCoogtakwRTut+Arm58sJooJ0AuZhLw2HJYIR5cMLNPBSS728sPho2khQ==} + + '@floating-ui/dom@1.8.0': + resolution: {integrity: sha512-yXSrzeHZBTZadLOlfyhCkJHNeLJnHRnRInwdZ40L7ZiaAtrBwoYlsDrX3v5zB1Utk7CLfzcOVnVVWoXEky7Ceg==} + + '@floating-ui/utils@0.2.12': + resolution: {integrity: sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==} + + '@flowgram.ai/background-plugin@1.0.12': + resolution: {integrity: sha512-KTod9Mj9BJQic230ACfgITCDK3auKfhF/PoNTXuXCSAqqLk53O/X3CavFMP1KAvDz9yf/vTKhXkaTaMO5qfpmw==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/command@1.0.12': + resolution: {integrity: sha512-ROWomDSxaeSwk8fh7b5DhMbe0SN+iInxJykHGIKy+nmn0cpRl25iRfmLU8J7HP5QQSu2mv7PzsJAZv23MGJiiA==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/core@1.0.12': + resolution: {integrity: sha512-fy29+NK9Jm2IryufWVu6tLRCmb2nuRYjl8aFaYeQG6X0Iuq5izrc37mjDJEsLu5yB5H+HvM4AXkjLkdO36cIoQ==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/coze-editor@1.0.12': + resolution: {integrity: sha512-ZuMEVmHNmLwltNqFWjGkihgwvN87svOqKYPHqq3YKJkTWJr/rE9VGTxVLHvl/CCpB7apC1Zj+2s2gz8Zr+TfTw==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + styled-components: '>=5' + + '@flowgram.ai/document@1.0.12': + resolution: {integrity: sha512-d+mUhud20coxnzeNsRN2v9pFDctjZr5cxgme5yu5tb5JSwZySPYHDOyv3xWdsgkmrms/Fr7MSym2UXBSA4TNSw==} + + '@flowgram.ai/editor@1.0.12': + resolution: {integrity: sha512-AZ5QAPT1cVcNyCBB4IwTaQf16HkLo21+gZ6Z9YGZ+gTk5y/IGHApDcLr3zPPMQfNPZoWi8uBiy2JZqp7klMyJg==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/eslint-config@1.0.12': + resolution: {integrity: sha512-rBU9Fw5Tac57h0rH9BEMHCO22enCkim4BSl27hI5MtDy54p7n/nTTvXLgLR9/QbUsE+94N+YtXqPmmBuAU5S6Q==} + + '@flowgram.ai/export-plugin@1.0.12': + resolution: {integrity: sha512-cbNVavQT8MKNsgIciNOdSRCsdYOlfvMhZQu0F8sroGQhOsLyKK+aDbtmAvapF0GRxFY1Xu1kpaMp9o2nH7S0RQ==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/form-core@1.0.12': + resolution: {integrity: sha512-82gOu/55YigTsRW9X3H6EiTr3Lj30JoyNvhbGacevRvrTcLq9hOWCGRYmcOwfS5kxPZ0Lu3SmiVnXl0ZHJrllQ==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/form-materials@1.0.12': + resolution: {integrity: sha512-EX9r0sFax+ECA9EM2hUGyrqw1euyi4qmg7asYZZnN4KFS9pukDb9zISo9yGUD5gn1ZDPlX1HSTNIUYS5ZupmuA==} + hasBin: true + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/form@1.0.12': + resolution: {integrity: sha512-frdzRrjQpaX4DRRyT3kc/+v58h5K2glBWp7Vc9STgxZahkfbaBnTsKlc7diRiCwf7wGzqucJZOk2NlpxZMzRBQ==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/free-auto-layout-plugin@1.0.12': + resolution: {integrity: sha512-H474wsLqD7sLIFqbkKPa8+V8P+xbgm0yx6J3CHbJb0iRJeGrnevixMDH3WQKSwn2QZWSDIviLrQtgeuBj+rj4g==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + styled-components: '>=5' + + '@flowgram.ai/free-container-plugin@1.0.12': + resolution: {integrity: sha512-G0i8YSRfN/vMuNB1h71Dv36vhQv95jXj8o1TDHpIvRn54he3e/BCFgXXy2Mxdnh2gmEVWkij0UENZ5H0BcpepA==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + styled-components: '>=5' + + '@flowgram.ai/free-group-plugin@1.0.12': + resolution: {integrity: sha512-rzOGmKrdNAtUOF4pyqAdQj4ugpP9Nvvx1U597XC2hYRCNLDzpuBS+9vGvtNYcGM+JSEHuj/RQjbBRQUIgLevkw==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/free-history-plugin@1.0.12': + resolution: {integrity: sha512-EOn9Q6wFMTUoY5zD2dIDGvlSqleiO3JilbcagrKvDx5m+C3M58S9rN9dfm9zIMiwbiRA4u6R11a+mHd0e+kehw==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/free-hover-plugin@1.0.12': + resolution: {integrity: sha512-Nh0jQx3Fz89YsPPe2H+TVuKFfLz6zxgDWej8nx3DFFfTEPfU77gvF1GkMQI2MY74N5JpJvRyhu+T6nPavg0lMw==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/free-layout-core@1.0.12': + resolution: {integrity: sha512-aXzgOtayN8ShnhLyO4ntqr1w3u5rtCEo6EHUD8qY/xwOfdHDKHesfs7KilBFlsViDncT9jICuABu5Vwj9ka8wQ==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/free-layout-editor@1.0.12': + resolution: {integrity: sha512-pykp/78gXWOSGM6Ccol8c7i5i2TCGBC6FqrUMq8ilqo2FNfPpmjpS+2ELlSY72ym+DF8I54sq4Vy86XOcZd+sg==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/free-lines-plugin@1.0.12': + resolution: {integrity: sha512-zACr8PxSHLIDFP4yTZ4oiIGmMbdIWU/3aM0l2GzuQHsOLAWwIEOxIrUMlhq1+CQ+EISR39LYES9UwBxT7Y5ACg==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + styled-components: '>=5' + + '@flowgram.ai/free-node-panel-plugin@1.0.12': + resolution: {integrity: sha512-E6RI6Dtq/yef1oSn01TlwZ79YdtQJ0ZQN3FUFZnB1E/3Jmi6S74TlDLvELrwDVP8LFbPMGhoQwZWvZkpKyYIlg==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/free-snap-plugin@1.0.12': + resolution: {integrity: sha512-DwKC/bivW9pjAalnDRNAN61j5cp/k75ym5YwwxYS0ONj85dPdD23F/auD0Kr31u3WfRAhqOotMRFzDOiexdg7A==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + styled-components: '>=5' + + '@flowgram.ai/free-stack-plugin@1.0.12': + resolution: {integrity: sha512-ecoVJL0NahKUdZwucELbhpaRnfwMTuoeoDNwXVTOX5ZdL0pwS5KxX/fTa2dMLQNiY3Tmrcf+wnKmmmj4/n7zDw==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + styled-components: '>=5' + + '@flowgram.ai/history-node-plugin@1.0.12': + resolution: {integrity: sha512-eJ+CaeuZVMGo7XFMB5OaN7ukKFB4aJB15Mg+NZ5YVgKDOF8bPW5PTuQlVtJfEt/Vi/xnzxx+zPPe8nUsbu+qXw==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/history@1.0.12': + resolution: {integrity: sha512-q+Zb7dwHIOGE9jJ6whZ2cf4EJ2e9LweAYYX0YR0o4p85XUcGHNM6AG3lrZZJ77+351FkEHILWRTIQe4+l/Y9iA==} + + '@flowgram.ai/i18n-plugin@1.0.12': + resolution: {integrity: sha512-3t8Ohy68SOWVCoaLxMI7BUltc5yIMMYIGwioeNN9D/C4QCnATQ1s0gtA4RhUQ+ATRXTd0ZTqCDKmHpjJI9MDsg==} + + '@flowgram.ai/i18n@1.0.12': + resolution: {integrity: sha512-jUJeP1SA0pDCoDKXO2qwnIftjypyH4F9QiCmSi7uAJoxB+4/d7cU/OwdWVMAsfbqk8cmvXa1OMa4h4UK7/ApXg==} + + '@flowgram.ai/json-schema@1.0.12': + resolution: {integrity: sha512-aNf3fpEayHiHsCbhBw0LgE3mzT2wys04RcGCdPV8kFbD7JHCUJMC3CkKpATldoSQ3uQdBHoWX43T/Zc4y2eVdw==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/materials-plugin@1.0.12': + resolution: {integrity: sha512-1UhatD5KhdrxQjfVGunVsDDXJiB7/LlfYy/fqTEn8Na846fvVyjlYZkGKHlhZD4QW7Ob6ZKVNpp4PZvvfn7f7g==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/minimap-plugin@1.0.12': + resolution: {integrity: sha512-vUDLE4yb2cBc8bUPqRWGhDkl4xlzXFJEozHwLLNa/Qg3RRqLEziRh8PN2Btll+/VH89tW/EYuV8aygS3XS7AZA==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/node-core-plugin@1.0.12': + resolution: {integrity: sha512-FwqTVq8bFht1KumZukV4Cfv/PijTAi+Go/263zVcMcAaXykyAqmuDEIJbXYE8JdzyXahPXVtnZvLKGD+Y+0HfA==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/node-variable-plugin@1.0.12': + resolution: {integrity: sha512-trUlKR1X9zGHKa42sUampVyVkDlqk+9u0+D5N9ZDBs39D1NbG6cFZPg9j5LquDy1P7HX184AA8d5RJoCkGGYcQ==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/node@1.0.12': + resolution: {integrity: sha512-Idi8zw9pEUnboQLYzui2MBRjovYR+gMuTmYK4iNQj/4TDMIbEnbTj32JMK2Ynirs4uPDeLlXYlmbVIva7M9dEw==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/panel-manager-plugin@1.0.12': + resolution: {integrity: sha512-d8cfEjFXCZv1q1g5DYZhJt1NOk5NMnYeW3R5RSXsIUoxIzm2n3moo5R6oXw3Yq+TkQznW+pWVewMbibzkW7jzQ==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + peerDependenciesMeta: + react: + optional: true + + '@flowgram.ai/playground-react@1.0.12': + resolution: {integrity: sha512-d+pvHVOSscJyWnNmxFQ6JxXAjtwcAFekiwtWlpXhqe3B+ZZKEKloNkoBsrfvIT4I0aq19LUCZHo8H9PbuH47Fw==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/reactive@1.0.12': + resolution: {integrity: sha512-Ogjk6Tx/CIMTal+9y6x487RrC2+s6Li7EDyjQa+sh1PhossyxtneTDlDtuZGv6mjsswpYxtYc6zp4xBrJVFkLQ==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/redux-devtool-plugin@1.0.12': + resolution: {integrity: sha512-53nawjFncdgalFtbKtr3/9jq+BcSMgbBvCkJQQxWofaihhn+jE9NEhiDherOdouKSb/rU9uS+VuHrXLJP+uQ5w==} + + '@flowgram.ai/renderer@1.0.12': + resolution: {integrity: sha512-6LMlYbMXQOWYm+0pAkNRqZSAt5LJD2QvBTuRPsGvuwOOcsBjj2Yo7eLBKrFGcM4uDU7T55hd+JAfXZvd6NfVhQ==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/runtime-interface@1.0.12': + resolution: {integrity: sha512-+yg1Ue4uRZSkAmUSn05TVjdiIVCVENcTLrQ8i95QuxmlJ9+aDAhL765XNP53PlYXRkbkD2MR+OePRWmrvHpudA==} + + '@flowgram.ai/runtime-js@1.0.12': + resolution: {integrity: sha512-X4cpSUS639VkMS9SYrCa0bXznym7sgZj/rKbD+LBTvQz0Er9g9yiBv3/v2wEaDuOm1BBfWHbZGMJRWEFzhG0aw==} + + '@flowgram.ai/select-box-plugin@1.0.12': + resolution: {integrity: sha512-smfWeYxiKeyQNoEZL3/8P21eabJHnX7iQgaciVJCeQCwoLWRp3TbBHTXComjHEJylX37MKoqy/VLebIZwVWfkw==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/shortcuts-plugin@1.0.12': + resolution: {integrity: sha512-JDLX5t0ZU1djQj3OKVaH8WWEdYEy4w7hJic3E7jFm/Pul3oSexKOGQPHDeWjGXnJwDl/MfnCbjjGNbMKadVgOg==} + + '@flowgram.ai/ts-config@1.0.12': + resolution: {integrity: sha512-vByk99qkt1CRFSYbA68kZbd4Q/99f1poxFNV/U8kcrCra5/tCnXBTRMDulnCo2JlSlC4Hn0A6LBTE7tc5Kv4MA==} + + '@flowgram.ai/utils@1.0.12': + resolution: {integrity: sha512-TFATCldddWGaWmgPKocfjuqhC1C80VYCUI5IReqWci9x9yvG+MU8DXNoeWJLwK8D4KG9F6njxWsMeWy7x/kvPQ==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/variable-core@1.0.12': + resolution: {integrity: sha512-UhOeq1jcil/B+8J6qzWwBvlBOHbYLnqJ2x7oxzikNC+LsJimSuTF7p149/vmMedmmq8TyidvRTbwHKLdlLDidA==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/variable-layout@1.0.12': + resolution: {integrity: sha512-nWb/sc5mnKL7z8iJJNFhQ7EaI0yGu94kuQfDS5RBwuqXwPpI0k3jNAA9EbI5LSaiTBIUkDBzwRT+wNCHGS6KTg==} + + '@flowgram.ai/variable-plugin@1.0.12': + resolution: {integrity: sha512-yfUgzJFxy16WA8QvW/Eb/7vRz664xZ8Ib62f3IsNR3CH3e5v/1mw23H/uj4U7nHXk30hHpfGidy9PLXDywYFVg==} + + '@humanfs/core@0.19.2': + resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.8': + resolution: {integrity: sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==} + engines: {node: '>=18.18.0'} + + '@humanfs/types@0.15.0': + resolution: {integrity: sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + engines: {node: '>=18.18'} + + '@inversifyjs/common@1.4.0': + resolution: {integrity: sha512-qfRJ/3iOlCL/VfJq8+4o5X4oA14cZSBbpAmHsYj8EsIit1xDndoOl0xKOyglKtQD4u4gdNVxMHx4RWARk/I4QA==} + + '@inversifyjs/core@1.3.5': + resolution: {integrity: sha512-B4MFXabhNTAmrfgB+yeD6wd/GIvmvWC6IQ8Rh/j2C3Ix69kmqwz9pr8Jt3E+Nho9aEHOQCZaGmrALgtqRd+oEQ==} + + '@inversifyjs/reflect-metadata-utils@0.2.4': + resolution: {integrity: sha512-u95rV3lKfG+NT2Uy/5vNzoDujos8vN8O18SSA5UyhxsGYd4GLQn/eUsGXfOsfa7m34eKrDelTKRUX1m/BcNX5w==} + peerDependencies: + reflect-metadata: 0.2.2 + + '@jitl/quickjs-ffi-types@0.32.0': + resolution: {integrity: sha512-v9T+GQpmk43VDJ7d72sf0Nexhk+ArvtUihW27dy7lqAl0zBObFKtSBBIm5RBjwIhE8VwsPPm9PNuvPvNqLWUEg==} + + '@jitl/quickjs-wasmfile-debug-asyncify@0.32.0': + resolution: {integrity: sha512-EX8zbXwGqCgAE764M+qvkHtyXDi/FUoMBea0JnES7vCM3P7a2+EOZOjGv85wtZ2sJhI1oJ+nekmqpOODFDY+hw==} + + '@jitl/quickjs-wasmfile-debug-sync@0.32.0': + resolution: {integrity: sha512-LeYWrPGC1uNCTBWvibo3ZLJj0CSVNYUXvJpXMCmuQ5Sap2cCACc3uvGvYV4homHHBAzfw5akoTqMMS4YFRtw+Q==} + + '@jitl/quickjs-wasmfile-release-asyncify@0.32.0': + resolution: {integrity: sha512-3oSwPfja12ICz4aIblB58cuY8JlEq5Txt8Cut4VLo+LH47QN+mzCnSgnbB03hWzg1LBcc+VyyI9UOag7a1NF+Q==} + + '@jitl/quickjs-wasmfile-release-sync@0.32.0': + resolution: {integrity: sha512-BKNDI/TPBfGlLNGYpLrhcDGXmIk4xHm4MRAisOBnOzpXVn9HZWsfmMAc9WMBrAHjvvds6HOikKeaOBKdPdpVrg==} + + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@jridgewell/trace-mapping@0.3.9': + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + + '@langchain/core@0.3.80': + resolution: {integrity: sha512-vcJDV2vk1AlCwSh3aBm/urQ1ZrlXFFBocv11bz/NBUfLWD5/UDNMzwPdaAd2dKvNmTWa9FM2lirLU3+JCf4cRA==} + engines: {node: '>=18'} + + '@langchain/openai@0.5.18': + resolution: {integrity: sha512-CX1kOTbT5xVFNdtLjnM0GIYNf+P7oMSu+dGCFxxWRa3dZwWiuyuBXCm+dToUGxDLnsHuV1bKBtIzrY1mLq/A1Q==} + engines: {node: '>=18'} + peerDependencies: + '@langchain/core': '>=0.3.58 <0.4.0' + + '@lezer/common@1.5.2': + resolution: {integrity: sha512-sxQE460fPZyU3sdc8lafxiPwJHBzZRy/udNFynGQky1SePYBdhkBl1kOagA9uT3pxR8K09bOrmTUqA9wb/PjSQ==} + + '@lezer/highlight@1.2.3': + resolution: {integrity: sha512-qXdH7UqTvGfdVBINrgKhDsVTJTxactNNxLk7+UMwZhU13lMHaOBlJe9Vqp907ya56Y3+ed2tlqzys7jDkTmW0g==} + + '@lezer/html@1.3.13': + resolution: {integrity: sha512-oI7n6NJml729m7pjm9lvLvmXbdoMoi2f+1pwSDJkl9d68zGr7a9Btz8NdHTGQZtW2DA25ybeuv/SyDb9D5tseg==} + + '@lezer/javascript@1.5.4': + resolution: {integrity: sha512-vvYx3MhWqeZtGPwDStM2dwgljd5smolYD2lR2UyFcHfxbBQebqx8yjmFmxtJ/E6nN6u1D9srOiVWm3Rb4tmcUA==} + + '@lezer/json@1.0.3': + resolution: {integrity: sha512-BP9KzdF9Y35PDpv04r0VeSTKDeox5vVr3efE7eBbx3r4s3oNLfunchejZhjArmeieBH+nVOpgIiBJpEAv8ilqQ==} + + '@lezer/lr@1.4.10': + resolution: {integrity: sha512-rnCpTIBafOx4mRp43xOxDJbFipJm/c0cia/V5TiGlhmMa+wsSdoGmUN3w5Bqrks/09Q/D4tNAmWaT8p6NRi77A==} + + '@lezer/markdown@1.7.2': + resolution: {integrity: sha512-iTkYvoVcKt3WkeL7qUDyXHONZEwLio4wj8KTNi2dnjQEXBZKMV63BpQrPqfsM+OkvuRbiSTAcycYAsQzLhRNoQ==} + + '@lezer/python@1.1.19': + resolution: {integrity: sha512-MhQIURHRytsNzP/YXnqpYKW6la6voAH3kyplTOOiCdjyFY6cWWGFVmYVdHIPrElqSDf4iCDktQCockB9FxuhzQ==} + + '@lukeed/csprng@1.1.0': + resolution: {integrity: sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==} + engines: {node: '>=8'} + + '@lukeed/uuid@2.0.1': + resolution: {integrity: sha512-qC72D4+CDdjGqJvkFMMEAtancHUQ7/d/tAiHf64z8MopFDmcrtbcJuerDtFceuAfQJ2pDSfCKCtbqoGBNnwg0w==} + engines: {node: '>=8'} + + '@marijn/find-cluster-break@1.0.3': + resolution: {integrity: sha512-FY+MKLBoTsLNJF/eLWaOsXGdz6uh3Iu1axjPf6TUq92IYumcTcXWHoS747JARLkcdlJ/Waiaxc5wQfFO8jC6NA==} + + '@mdx-js/mdx@3.1.1': + resolution: {integrity: sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==} + + '@microsoft/tsdoc-config@0.16.2': + resolution: {integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==} + + '@microsoft/tsdoc@0.14.2': + resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} + + '@module-federation/error-codes@0.22.0': + resolution: {integrity: sha512-xF9SjnEy7vTdx+xekjPCV5cIHOGCkdn3pIxo9vU7gEZMIw0SvAEdsy6Uh17xaCpm8V0FWvR0SZoK9Ik6jGOaug==} + + '@module-federation/runtime-core@0.22.0': + resolution: {integrity: sha512-GR1TcD6/s7zqItfhC87zAp30PqzvceoeDGYTgF3Vx2TXvsfDrhP6Qw9T4vudDQL3uJRne6t7CzdT29YyVxlgIA==} + + '@module-federation/runtime-tools@0.22.0': + resolution: {integrity: sha512-4ScUJ/aUfEernb+4PbLdhM/c60VHl698Gn1gY21m9vyC1Ucn69fPCA1y2EwcCB7IItseRMoNhdcWQnzt/OPCNA==} + + '@module-federation/runtime@0.22.0': + resolution: {integrity: sha512-38g5iPju2tPC3KHMPxRKmy4k4onNp6ypFPS1eKGsNLUkXgHsPMBFqAjDw96iEcjri91BrahG4XcdyKi97xZzlA==} + + '@module-federation/sdk@0.22.0': + resolution: {integrity: sha512-x4aFNBKn2KVQRuNVC5A7SnrSCSqyfIWmm1DvubjbO9iKFe7ith5niw8dqSFBekYBg2Fwy+eMg4sEFNVvCAdo6g==} + + '@module-federation/webpack-bundler-runtime@0.22.0': + resolution: {integrity: sha512-aM8gCqXu+/4wBmJtVeMeeMN5guw3chf+2i6HajKtQv7SJfxV/f4IyNQJUeUQu9HfiAZHjqtMV5Lvq/Lvh8LdyA==} + + '@napi-rs/wasm-runtime@1.0.7': + resolution: {integrity: sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw==} + + '@napi-rs/wasm-runtime@1.1.6': + resolution: {integrity: sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==} + peerDependencies: + '@emnapi/core': ^1.7.1 + '@emnapi/runtime': ^1.7.1 + + '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': + resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} + + '@nolyfill/is-core-module@1.0.39': + resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} + engines: {node: '>=12.4.0'} + + '@nozbe/microfuzz@1.0.0': + resolution: {integrity: sha512-XKIg/guk+s1tkPTkHch9hfGOWgsKojT7BqSQddXTppOfVr3SWQhhTCqbgQaPTbppf9gc2kFeG0gpBZZ612UXHA==} + + '@phosphor/algorithm@1.2.0': + resolution: {integrity: sha512-C9+dnjXyU2QAkWCW6QVDGExk4hhwxzAKf5/FIuYlHAI9X5vFv99PYm0EREDxX1PbMuvfFBZhPNu0PvuSDQ7sFA==} + + '@phosphor/collections@1.2.0': + resolution: {integrity: sha512-T9/0EjSuY6+ga2LIFRZ0xupciOR3Qnyy8Q95lhGTC0FXZUFwC8fl9e8On6IcwasCszS+1n8dtZUWSIynfgdpzw==} + + '@phosphor/messaging@1.3.0': + resolution: {integrity: sha512-k0JE+BTMKlkM335S2AmmJxoYYNRwOdW5jKBqLgjJdGRvUQkM0+2i60ahM45+J23atGJDv9esKUUBINiKHFhLew==} + + '@rsbuild/core@1.7.6': + resolution: {integrity: sha512-T1mLz745L59SM4F5HQFkeGAAsDBeHh2e5sT0cSC5c7xkBpstVWXJrQe5HALS+GvIxiV8cUOy2yD8QBT/Ah11lg==} + engines: {node: '>=18.12.0'} + hasBin: true + + '@rsbuild/plugin-less@1.6.4': + resolution: {integrity: sha512-cDlxi6Ne0K8ZK4PrTy/wSli5RyGkT8I55j/e0R7ZBvriHM7JL0MaA28ceiKAqy70Hy/eZ/btHTB35Sl1FAor1g==} + peerDependencies: + '@rsbuild/core': ^1.3.0 || ^2.0.0-0 + peerDependenciesMeta: + '@rsbuild/core': + optional: true + + '@rsbuild/plugin-react@1.4.6': + resolution: {integrity: sha512-LAT6xHlEyZKA0VjF/ph5d50iyG+WSmBx+7g98HNZUwb94VeeTMZFB8qVptTkbIRMss3BNKOXmHOu71Lhsh9oEw==} + peerDependencies: + '@rsbuild/core': ^1.0.0 || ^2.0.0-0 + peerDependenciesMeta: + '@rsbuild/core': + optional: true + + '@rspack/binding-darwin-arm64@1.7.12': + resolution: {integrity: sha512-rbFprJaJiqrmfy8SHth8EsoRS0wg4bXcucwj9NiMzpGFq14Opw8c04iQ6H9BECYzgmN0PKZ9rh41LdVvhdZe4A==} + cpu: [arm64] + os: [darwin] + + '@rspack/binding-darwin-x64@1.7.12': + resolution: {integrity: sha512-jnOp+/UXOJa9xqUb8KXH03sysoO2e4Ij6tw6MqDdmdj8n/A8PQENRPUbW9AwXpPtVDJPus9r4fi7b3+6e4B8Hg==} + cpu: [x64] + os: [darwin] + + '@rspack/binding-linux-arm64-gnu@1.7.12': + resolution: {integrity: sha512-C8owWG+yvo7X0oVLIXetkoJhIFBP1LYNcAQqtgLmJnQLQDklGuP83dKC+zISGQWpjawHfZ1ER96vLgoTrxKZdw==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rspack/binding-linux-arm64-musl@1.7.12': + resolution: {integrity: sha512-i51WWI64aRpsfSki6rN0aepPqXkVfS+vZM7+4bWDcmnhUmdMvhIPcYg0QRk3DtyJnu33jqNLM0WHY78k00NyfA==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rspack/binding-linux-x64-gnu@1.7.12': + resolution: {integrity: sha512-MSos0FuPEefqo9V92ULd5hggKG29EkSNg1zDcypy0OkpsKh5pfjVxTLYFXgTcVyFoUQQbdG8zFBzYbwmJ8V4ew==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rspack/binding-linux-x64-musl@1.7.12': + resolution: {integrity: sha512-JcAMVKXOnjfpC3coWjCFPWD3Yl8RBw6a+IXQQ8mfRlHaHMIiOv8IfZqx15XRxMUn49CtP7Z0Na8iiAg2aKrcfw==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rspack/binding-wasm32-wasi@1.7.12': + resolution: {integrity: sha512-n+ZqP6ZMc0nhOgvadg5VhEs9ojtbES80AcWeFnmGkbzIszvGSO63GKNiRkXtjJ9KFuRzytbbmsCqkUVH+Tywxg==} + cpu: [wasm32] + + '@rspack/binding-win32-arm64-msvc@1.7.12': + resolution: {integrity: sha512-8+h5fYDXYdmugbdfZ+D1y8IQ3rv2EhSfyGP7vBe+bjNyaMa4jWrpucmZbtxojUL1AzaeuHbvMdj9UO/gelk/+g==} + cpu: [arm64] + os: [win32] + + '@rspack/binding-win32-ia32-msvc@1.7.12': + resolution: {integrity: sha512-cDMGwTRSa2p9fNBVe1wTRkF2AEXZ9ARWW36QeC5CkLaI0Ezz8lvhF2+CSOPnhaQ1O1qtn0L0SF+lFnrY+I7xGQ==} + cpu: [ia32] + os: [win32] + + '@rspack/binding-win32-x64-msvc@1.7.12': + resolution: {integrity: sha512-wIqFvlgFqrgUyj/6S/FJcvShnkZOmIeXTfqvheLY67MGq8qd8jb1YimQVKAIrmWB3yuJKUFACI3Ag1UBtEedEA==} + cpu: [x64] + os: [win32] + + '@rspack/binding@1.7.12': + resolution: {integrity: sha512-f4HHuLbvuld8Ba4iB/4ibse5XrKxFrgmM3S4P2AOKnPlekAFlBjmltCuaTL/W2ggYvILaVY+YcFXrEH1rrKeQA==} + + '@rspack/core@1.7.12': + resolution: {integrity: sha512-6CwFIHlhRmXfZoMj3v9MZ1SMTPBn+cHVXeMIeaGp5sufqinKsISbsqHu6ZMJu2wDSmZLdmQJX6zLxkhcAUlhkQ==} + engines: {node: '>=18.12.0'} + peerDependencies: + '@swc/helpers': '>=0.5.1' + peerDependenciesMeta: + '@swc/helpers': + optional: true + + '@rspack/lite-tapable@1.1.0': + resolution: {integrity: sha512-E2B0JhYFmVAwdDiG14+DW0Di4Ze4Jg10Pc4/lILUrd5DRCaklduz2OvJ5HYQ6G+hd+WTzqQb3QnDNfK4yvAFYw==} + + '@rspack/lite-tapable@1.1.2': + resolution: {integrity: sha512-1OnyWChLGE46YzWyjlmYJssOu/Y0STAnnr2ueKPqDCYTf63GJMs0mxNnCul4dNiVqHYPKv3/fxrTY3IpqoVwZQ==} + + '@rspack/plugin-react-refresh@1.6.2': + resolution: {integrity: sha512-k+/VrfTNgo+KirjI6V+8CWRj6y+DH9jOUWv8JorYY4vKf/9xfnZ8xHzuB4iqCwTtoZl9YnxOaOuoyjJipc2tiQ==} + peerDependencies: + react-refresh: '>=0.10.0 <1.0.0' + webpack-hot-middleware: 2.x + peerDependenciesMeta: + webpack-hot-middleware: + optional: true + + '@rtsao/scc@1.1.0': + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + + '@shikijs/core@3.23.0': + resolution: {integrity: sha512-NSWQz0riNb67xthdm5br6lAkvpDJRTgB36fxlo37ZzM2yq0PQFFzbd8psqC2XMPgCzo1fW6cVi18+ArJ44wqgA==} + + '@shikijs/engine-javascript@3.23.0': + resolution: {integrity: sha512-aHt9eiGFobmWR5uqJUViySI1bHMqrAgamWE1TYSUoftkAeCCAiGawPMwM+VCadylQtF4V3VNOZ5LmfItH5f3yA==} + + '@shikijs/engine-oniguruma@3.23.0': + resolution: {integrity: sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==} + + '@shikijs/langs@3.12.3': + resolution: {integrity: sha512-9lKnWuO9P06Ro9T8wN0V3rQg3UlKfjCtfDRTnRnFr7szuaGQiQpaAdwFvqkWvHrMNIpfqUEIzAC08b90JONfuQ==} + + '@shikijs/langs@3.23.0': + resolution: {integrity: sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==} + + '@shikijs/themes@3.12.3': + resolution: {integrity: sha512-rpqLpI2oMrf2BiJdql8U7ZW1UhfJy9lEj4MRyIeXLlkEe5BwaYseFvSbXhJ/4eS8d3F/zlVUOADFX8WihWlccQ==} + + '@shikijs/themes@3.23.0': + resolution: {integrity: sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==} + + '@shikijs/types@3.12.3': + resolution: {integrity: sha512-spl99dj9qzPcTvYJLhfp6Zw0umQMNN8q3hXo0tbTTylxXtu5Uiy9WLRhuv2P/g+njFd/lSZU7HnctXuxiwEAwg==} + + '@shikijs/types@3.23.0': + resolution: {integrity: sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==} + + '@shikijs/vscode-textmate@10.0.2': + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} + + '@swc/helpers@0.5.23': + resolution: {integrity: sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw==} + + '@tiptap/core@3.29.0': + resolution: {integrity: sha512-A/lrhKpOYtl0V5pmPS00Zps8pgBe1qDOoD9fzsumDSZ3HP8W398C959Jgru75PNFokAya9COPD3iaKP3NWF25g==} + peerDependencies: + '@tiptap/pm': 3.29.0 + + '@tiptap/extension-blockquote@3.29.0': + resolution: {integrity: sha512-k8NKHLEYOqre7guObZBeFM04CaTwmEceCmdIrIjd7H9KoHSbRODaBNved6j5G33x/FWMwIF/RQbE2BjWaFSgzA==} + peerDependencies: + '@tiptap/core': 3.29.0 + '@tiptap/pm': 3.29.0 + + '@tiptap/extension-bold@3.29.0': + resolution: {integrity: sha512-BPUJvJ9sCsU3fxao5UJfDJrDuHhMn2hczZwZ9Qs4w1vkAeLGyOYbSejUTJdBYHLoexGiEwgnEeVeZN3C8GaI5g==} + peerDependencies: + '@tiptap/core': 3.29.0 + + '@tiptap/extension-bubble-menu@3.29.0': + resolution: {integrity: sha512-aBNI8ebX76ObderRmu/PJ9Q2AGVEuhpg0TBvv2SNbHtmU5kNUMHQI8HxrxKFblJwETAmG6EJ3Ed/5jRxpJmrsg==} + peerDependencies: + '@tiptap/core': 3.29.0 + '@tiptap/pm': 3.29.0 + + '@tiptap/extension-bullet-list@3.29.0': + resolution: {integrity: sha512-1045sC5CRn7KD0wluxZeksBwpm2k3LKBUOM3kNwExHAPSV4in4gdarYJ2/WCmIKsmyj2FzUcF4rbpLLSB/dBSg==} + peerDependencies: + '@tiptap/extension-list': 3.29.0 + + '@tiptap/extension-code-block@3.29.0': + resolution: {integrity: sha512-nKm1YSEiPVosjm4qeg6m+6SAKq82rKukAzE/g3M5eVs2OgEb4QIKQvQOmJ+zgGAnpb9Q/JIvcKsGGU1rn9Vnyw==} + peerDependencies: + '@tiptap/core': 3.29.0 + '@tiptap/pm': 3.29.0 + + '@tiptap/extension-code@3.29.0': + resolution: {integrity: sha512-Um0BlyunRJ8Fal288Jn7I2n15FRwQcTy3NnKBBrPz3ikwx+yZZ0n9xTozpLMSxXrTq6cRlxLkASp/9FFx9sX9A==} + peerDependencies: + '@tiptap/core': 3.29.0 + + '@tiptap/extension-document@3.29.0': + resolution: {integrity: sha512-folTlrwmUL+WSnojvfjZ951Gb25Pw8BxjXwhvXFuZXJ92qMfOcezA480kwFuu5nG8pPc/76ezQlz9a86Y5uQJw==} + peerDependencies: + '@tiptap/core': 3.29.0 + + '@tiptap/extension-dropcursor@3.29.0': + resolution: {integrity: sha512-IAY21q7KSXyCXN3u13kfpq0E8D2i3r9nSbsNYlLzkEv0Bpn+pWShZi05A0ubuothDNjdaMa96xaRY0f1y9gDZw==} + peerDependencies: + '@tiptap/extensions': 3.29.0 + + '@tiptap/extension-floating-menu@3.29.0': + resolution: {integrity: sha512-/rFlN6T70HuT34kFvftKm56UX0IPff7vlII7Sqgs7DprKVYkItiU3lM7+AoeDRzCsWMg4z1yNHj70BPx7+EJ6Q==} + peerDependencies: + '@floating-ui/dom': ^1.0.0 + '@tiptap/core': 3.29.0 + '@tiptap/pm': 3.29.0 + + '@tiptap/extension-gapcursor@3.29.0': + resolution: {integrity: sha512-Jz0zwriGxPMuRjKo6x7WhPa/7pZn0dovyJu/GLarN4T+mMseGNXWwEBsLEKkuumsJVPDEPPFjX+rzEeaFKInPQ==} + peerDependencies: + '@tiptap/extensions': 3.29.0 + + '@tiptap/extension-hard-break@3.29.0': + resolution: {integrity: sha512-8qKj0oeuU7IYoG73Lj3W4EC/JS/dFjN5iHmc4yodqppP6qs0o2zsF/2ipceGN/REZq5megPtxRgXu/nxQZ1NYg==} + peerDependencies: + '@tiptap/core': 3.29.0 + + '@tiptap/extension-heading@3.29.0': + resolution: {integrity: sha512-xWb3QEKo7cp9u6Vzi6oYKODra6jPwziHBv3fJAnxWpRldxtJqfyOVMikWJJFuDjmr+K0qyegzf206pMk+y0bDg==} + peerDependencies: + '@tiptap/core': 3.29.0 + + '@tiptap/extension-horizontal-rule@3.29.0': + resolution: {integrity: sha512-u1OgncXkokIuUJQIh4jVQfYHL/6I8VnrokUcCud4eErWvgeLnCbNmVdih4kxIdfmvEyAxXjDwcqf4AB79TxuNg==} + peerDependencies: + '@tiptap/core': 3.29.0 + '@tiptap/pm': 3.29.0 + + '@tiptap/extension-image@3.29.0': + resolution: {integrity: sha512-A+9Oxsobh4IRWpYj8+y4c0ujhZPY0z9PqvzyuV5GCqiUTRcTRnFI4a4PZDXO/GcCCQXfznfu8gbMtaEyEQW5+w==} + peerDependencies: + '@tiptap/core': 3.29.0 + + '@tiptap/extension-italic@3.29.0': + resolution: {integrity: sha512-c8gF+zM7yXB9iGxtVCioYecjQ+A2fLlNa1XYBYbTobNhbUo8a11akbTkGNcCIgttwnzwEoI4mB6/PK4yjaQvVg==} + peerDependencies: + '@tiptap/core': 3.29.0 + + '@tiptap/extension-link@3.29.0': + resolution: {integrity: sha512-FuLDgE0k1dB4WCBTelw3re9BLmiurgXVSj3d3J4l3sunljyOs941RUU62b7pWP+ePNdGF7RgUMmMAB+58VZCIA==} + peerDependencies: + '@tiptap/core': 3.29.0 + '@tiptap/pm': 3.29.0 + + '@tiptap/extension-list-item@3.29.0': + resolution: {integrity: sha512-JSz27OIDHWDL7uw28E4W3eaN3H1u+NzJQKZkNXo5Qsvvsx8m/YIQWO9XlhiL3V4TZMjfvlc94lUp5tKW5KwETw==} + peerDependencies: + '@tiptap/extension-list': 3.29.0 + + '@tiptap/extension-list-keymap@3.29.0': + resolution: {integrity: sha512-g14QLZR9fmfJIL+X2R/cVTvQS0Mp7CoenA9PO+8adTjK7hCeB8hA3UAakMB4ekkElOXNOtb16e0wqulDcoqANg==} + peerDependencies: + '@tiptap/extension-list': 3.29.0 + + '@tiptap/extension-list@3.29.0': + resolution: {integrity: sha512-k0B/+nIkn4VvHSQ0kP+AzzAmgeOVxKMAdqG4a6qwxp/lR12aJGHlOP92KCjXV2RNPtuwDksJ1RIXrgxdf9WmJg==} + peerDependencies: + '@tiptap/core': 3.29.0 + '@tiptap/pm': 3.29.0 + + '@tiptap/extension-mention@3.29.0': + resolution: {integrity: sha512-mlWKKOOD70gbvQaS3B4V7AhBnBjJ8gzJDOU8yVo9+DH6xgGkXbGomqercoDC0IfTkCqA5tQT5GiIHXiV5EoDMw==} + peerDependencies: + '@tiptap/core': 3.29.0 + '@tiptap/pm': 3.29.0 + '@tiptap/suggestion': 3.29.0 + + '@tiptap/extension-ordered-list@3.29.0': + resolution: {integrity: sha512-9TXUDFagkGeu6Bo8L0b2SAVAYrY2Xzd28MXwiDxYvDKMjEGWkkCUpMiEI5Qav3GnfFWLmS3jI8PgUjxIw9wLLQ==} + peerDependencies: + '@tiptap/extension-list': 3.29.0 + + '@tiptap/extension-paragraph@3.29.0': + resolution: {integrity: sha512-OtGrkwzqlW+ehW+d2qrQ7VVcP9PbDeQmuT4Ec4yFjf3vR4QO8OVdVfeOcUq52PtkT3kYRxz9fzEiEvjqRm72yA==} + peerDependencies: + '@tiptap/core': 3.29.0 + + '@tiptap/extension-strike@3.29.0': + resolution: {integrity: sha512-VzasZkckrEXzmFQT9z3O95rUWy1b0RLFHAC6GUSQHxKk4TpP+Ujfn5+rqmPukMn0eScJyw1Y36jwfJc0VuNR+Q==} + peerDependencies: + '@tiptap/core': 3.29.0 + + '@tiptap/extension-text-align@3.29.0': + resolution: {integrity: sha512-/1htV3teqRJ7i7trAuORDg62LV0CQ1qskbMcP3SB7grsw6H1G54zwdaJVXeiIXmQKDF7FoZgY7u/v/TJckthEw==} + peerDependencies: + '@tiptap/core': 3.29.0 + + '@tiptap/extension-text-style@3.29.0': + resolution: {integrity: sha512-J3bbPL3JoAxFwxnH2CS6z69+0dvKRiOaxgG95vAhl+Jb/87YSkTAEZG3V4ubRR9r8WPWfHrTjgtSXPjH14FlMw==} + peerDependencies: + '@tiptap/core': 3.29.0 + + '@tiptap/extension-text@3.29.0': + resolution: {integrity: sha512-AMsf2V7IiGvzbl+LqLLfyWzufazZxHuid1gOnEt3KwolQ9AO7p8WJgHld0PZLxNyEh4SaSqK7b3d3SM9sqrlTw==} + peerDependencies: + '@tiptap/core': 3.29.0 + + '@tiptap/extension-underline@3.29.0': + resolution: {integrity: sha512-DSPTogdvxmoX/L0U5KgBC9jWffRvYkGiyh1tp28gn+QaARh4iJn79pAZpi1m1bEhal/0Mq5m4ukbiO7FWInwaA==} + peerDependencies: + '@tiptap/core': 3.29.0 + + '@tiptap/extensions@3.29.0': + resolution: {integrity: sha512-ltlrm8dDHIgeNj3cOLEdLFMPPVy3TYvWA8ftrrJ44C/L01MBmgFB1f/vkPFYYnAasb2BYyVG6HxAGcTQHo5jHw==} + peerDependencies: + '@tiptap/core': 3.29.0 + '@tiptap/pm': 3.29.0 + + '@tiptap/pm@3.29.0': + resolution: {integrity: sha512-4rr3HiZ8kbSNINuWXqKQJLv9fFMypCBN5gOwxoU+D4lEYVblkoM60fA1SlrI2BZVlZQmw2U38XKl5XMtUr55XQ==} + + '@tiptap/react@3.29.0': + resolution: {integrity: sha512-HmZf9q5/HXg5M2t09WGEbk16vEBDUGPlkF3eXcQh6yG6PkzMZHq1SP+uA8lWku5H/Ggfmv4XKjI6dEQa5V8bwA==} + peerDependencies: + '@tiptap/core': 3.29.0 + '@tiptap/pm': 3.29.0 + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + '@types/react-dom': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 + + '@tiptap/starter-kit@3.29.0': + resolution: {integrity: sha512-J3jTp3/WXnnL58TCtdMsfeQ2BeycFYrAib6Nbpjd9G0OLUBE7AILiH2HrobRQpvRbAUgD5SW+sBZYOonbWWqNg==} + + '@tiptap/suggestion@3.29.0': + resolution: {integrity: sha512-M/84rGfmyNc9meGqbbWnfpZpRttW34Hltk3XxeXKUGNx+87CQazR49sXxDtvcP5JHeAgCZ2gtYkhstpOKPQ6qQ==} + peerDependencies: + '@floating-ui/dom': ^1.0.0 + '@tiptap/core': 3.29.0 + '@tiptap/pm': 3.29.0 + + '@tsconfig/node10@1.0.12': + resolution: {integrity: sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==} + + '@tsconfig/node12@1.0.11': + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + + '@tsconfig/node14@1.0.3': + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + + '@tsconfig/node16@1.0.4': + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + + '@tweenjs/tween.js@18.6.4': + resolution: {integrity: sha512-lB9lMjuqjtuJrx7/kOkqQBtllspPIN+96OvTCeJ2j5FEzinoAXTdAMFnDAQT1KVPRlnYfBrqxtqP66vDM40xxQ==} + + '@tybys/wasm-util@0.10.3': + resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==} + + '@types/debug@4.1.13': + resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==} + + '@types/estree-jsx@1.0.5': + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + + '@types/estree@1.0.9': + resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} + + '@types/gensync@1.0.5': + resolution: {integrity: sha512-MbsRCT7mTikHwKZ0X+LVUTLRrZZRLipTuXEO9qOYO+zmjMVk81axyClMROf6uoPD9MRVu46bx8zoR0Ad9q3NAg==} + + '@types/hash-sum@1.0.2': + resolution: {integrity: sha512-UP28RddqY8xcU0SCEp9YKutQICXpaAq9N8U2klqF5hegGha7KzTOL8EdhIIV3bOSGBzjEpN9bU/d+nNZBdJYVw==} + + '@types/hast@3.0.5': + resolution: {integrity: sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g==} + + '@types/hoist-non-react-statics@3.3.7': + resolution: {integrity: sha512-PQTyIulDkIDro8P+IHbKCsw7U2xxBYflVzW/FgWdCAePD9xGSidgA76/GeJ6lBKoblyhf9pBY763gbrN+1dI8g==} + peerDependencies: + '@types/react': '*' + + '@types/jsesc@2.5.1': + resolution: {integrity: sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw==} + + '@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.17.24': + resolution: {integrity: sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ==} + + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + + '@types/mdx@2.0.14': + resolution: {integrity: sha512-T48PeuJtvLosNTPVhfnIp3i/n3a4g4Bad7YCq5k64D4u7NwDrAotikQ+5+sjtUvBmxCMlbo3dVL+C2dP0rWHzg==} + + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + + '@types/node@18.19.130': + resolution: {integrity: sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==} + + '@types/prop-types@15.7.15': + resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} + + '@types/react-dom@18.3.7': + resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==} + peerDependencies: + '@types/react': ^18.0.0 + + '@types/react@18.3.31': + resolution: {integrity: sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==} + + '@types/retry@0.12.0': + resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + + '@types/styled-components@5.1.36': + resolution: {integrity: sha512-pGMRNY5G2rNDKEv2DOiFYa7Ft1r0jrhmgBwHhOMzPTgCjO76bCot0/4uEfqj7K0Jf1KdQmDtAuaDk9EAs9foSw==} + + '@types/unist@2.0.11': + resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + + '@types/use-sync-external-store@0.0.6': + resolution: {integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==} + + '@types/uuid@10.0.0': + resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==} + + '@typescript-eslint/eslint-plugin@8.65.0': + resolution: {integrity: sha512-IEgob78X12rHpUmtcwFsXhZdVGJtwTVP8FiCLZkR6GlYVrl2PcuB+KhCE5BlVC/eQpQnu8WXRtkHZuPar+gCRA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.65.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/parser@8.65.0': + resolution: {integrity: sha512-CZ4nMxWwgu1HEEFNkeaCptra9QCtkmKdgf3sWh1rl1trIhmxLilgTV4cwcbQ4wemnT4sWQN8CaKOmdYx+g2gMA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/project-service@8.65.0': + resolution: {integrity: sha512-SxnPhbTsGahizDgbu7oqFH/xVtzIqMd/s+WtnSxNxJZJpLbdT5IPdzg8EZxO3+PoKahXmwJLeNQOpKJb3/bi7Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/scope-manager@8.65.0': + resolution: {integrity: sha512-Esbl8OSYiVxBokYgWPf7VVWg/BE798wXhimnn9ML9Pt5qoDf8bfQlgjlKXR/k98+AcNzlLKYrpCcrcuZ9DZLgg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.65.0': + resolution: {integrity: sha512-j6GzGqCiRdA7Qhur2VVmKZAkBLfnHFQfx4TaJGL9RMveZqCo48jSHHO0DTgizEnGhtWnqmbtCUSrqSkdiY/0Hg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/type-utils@8.65.0': + resolution: {integrity: sha512-YjaZ7PRI5qY7ax2L3PbvX0rRyGtipAReCWs0mhhDBHjH/vl0g0BonaGXrKdKpMbIIsMIwDgbk/xzkBTyAltS5g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/types@8.65.0': + resolution: {integrity: sha512-JSSwWNy+H0E/01jJEM+hrX6N0OFDzFzeIhHFSAS01tlVaevpG8cFyYRPhS5yjGOvBUx3sqQHVMjCL1CAZZMxBg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.65.0': + resolution: {integrity: sha512-JboAE2swaYt4tb1fHhHTABE2K+OLy09XfcTbhnk4Pw96f9dd2e9iYsJ28gBggHlo5z5x1rkyWvcPoTuNTd4oGg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/utils@8.65.0': + resolution: {integrity: sha512-gXiwIHsYreboxeJucHKPvgwl7dXt50mF8s1/c00cP/WoVTyWKFdtfhRWwZiXYFU5H2O8vVoSLNrexFZjYS/SGA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/visitor-keys@8.65.0': + resolution: {integrity: sha512-8C71BQkGjiMmXtop7pHVJu1l2NNShFdkCyD6a2ezzs5vU/L3LRtb69EtcteFwz0mYMPzIgOw0n6OV4VBUWZd7A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript/vfs@1.6.4': + resolution: {integrity: sha512-PJFXFS4ZJKiJ9Qiuix6Dz/OwEIqHD7Dme1UwZhTK11vR+5dqW2ACbdndWQexBzCx+CPuMe5WBYQWCsFyGlQLlQ==} + peerDependencies: + typescript: '*' + + '@ungap/structured-clone@1.3.3': + resolution: {integrity: sha512-60YRaenCQcVjYEKOcG824+DRGGIQ3VKErcBoAEDJZz5bKIs2ZG+X/H9Nk+Q6EVkwJk5QNApxbrc5QtBSwtrXAg==} + + '@unrs/resolver-binding-android-arm-eabi@1.12.2': + resolution: {integrity: sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w==} + cpu: [arm] + os: [android] + + '@unrs/resolver-binding-android-arm64@1.12.2': + resolution: {integrity: sha512-YGCRZv/9GLhwmz6mYDeTsm/92BAyR28l6c2ReweVW5pWgfsitWLY8upvfRlGdoyD8HjeTHSYJWyZGD4KJA/nFQ==} + cpu: [arm64] + os: [android] + + '@unrs/resolver-binding-darwin-arm64@1.12.2': + resolution: {integrity: sha512-u9DiNT1auQMO20A9SyTuG3wUgQWB9Z7KjAg0uFuCDR1FsAY8A0CG2S6JpHS1xwm/w1G08bjXZDcyOCjv1WAm2w==} + cpu: [arm64] + os: [darwin] + + '@unrs/resolver-binding-darwin-x64@1.12.2': + resolution: {integrity: sha512-f7rPLi/T1HVKZu/u6t87lroib16n8vrSzcyxI7lg4BGO9UF26KhQL44sd9eOUgrTYhvRXtWOIZT5PejdPyJfUA==} + cpu: [x64] + os: [darwin] + + '@unrs/resolver-binding-freebsd-x64@1.12.2': + resolution: {integrity: sha512-BpcOjWCJub6nRZUS2zA20pmLvjtqAtGejETaIyRLiZiQf++cbrjltLA5NN/xaXfqeOBOSlMFbemIl5/S5tljmg==} + cpu: [x64] + os: [freebsd] + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2': + resolution: {integrity: sha512-vZTDvdSISZjJx66OzJqtsOhzifbqRjbmI1Mnu49fQDwog5GtDI4QidRiEAYbZCRj9C8YZEW+3ZjqsyS9GR4k2A==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm-musleabihf@1.12.2': + resolution: {integrity: sha512-BiPI+IrIlwcW4nLLMM21+B1dFPzd55yAVgVGrdgDjNef+ch03GdxrcyaIz8X9SsQirh/kCQ7mviyWlMxdh2D7g==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-gnu@1.12.2': + resolution: {integrity: sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-arm64-musl@1.12.2': + resolution: {integrity: sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@unrs/resolver-binding-linux-loong64-gnu@1.12.2': + resolution: {integrity: sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q==} + cpu: [loong64] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-loong64-musl@1.12.2': + resolution: {integrity: sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew==} + cpu: [loong64] + os: [linux] + libc: [musl] + + '@unrs/resolver-binding-linux-ppc64-gnu@1.12.2': + resolution: {integrity: sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-riscv64-gnu@1.12.2': + resolution: {integrity: sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-riscv64-musl@1.12.2': + resolution: {integrity: sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w==} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@unrs/resolver-binding-linux-s390x-gnu@1.12.2': + resolution: {integrity: sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-x64-gnu@1.12.2': + resolution: {integrity: sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-x64-musl@1.12.2': + resolution: {integrity: sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@unrs/resolver-binding-openharmony-arm64@1.12.2': + resolution: {integrity: sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ==} + cpu: [arm64] + os: [openharmony] + + '@unrs/resolver-binding-wasm32-wasi@1.12.2': + resolution: {integrity: sha512-tYFDIkMxSflfEc/h92ZWNsZlHSwgimbNHSO3PL2JWQHfCuC2q316jMyYU9TIWZsFK2bQwyK5VAdYgn8ygPj69A==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@unrs/resolver-binding-win32-arm64-msvc@1.12.2': + resolution: {integrity: sha512-qzNyg3xL0VPQmCaUh+N5jSitce6k+uCBfMDesWRnlULOZaqUkaJ0ybdT+UqlAWJoQjuqfIU/0Ptx9bteN4D82g==} + cpu: [arm64] + os: [win32] + + '@unrs/resolver-binding-win32-ia32-msvc@1.12.2': + resolution: {integrity: sha512-WD9sY00OfpHVGfsnHZoA8jVT+esS/Bg8z8jzxp5BnDCjjwsuKsPQrzswwpFy4J1AUJbXPRfkpcX0mXrzeXW79g==} + cpu: [ia32] + os: [win32] + + '@unrs/resolver-binding-win32-x64-msvc@1.12.2': + resolution: {integrity: sha512-nAB74NfSNKknqQ1RrYj6uz8FcXEomu/MATJZxh/x+BArzN2U3JbOYC0APYzUIGhVY3m5hRxA8VPNdPBoG8txlA==} + cpu: [x64] + os: [win32] + + '@vscode/l10n@0.0.18': + resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} + + '@vue/compiler-core@3.5.40': + resolution: {integrity: sha512-39E8IgOhTbVDnoJFMKc2DvYnypcZwUqgUhQkccva/0m6FUwtIKSGV7n1hpVmYcFaoRAwf9pBcwnKlCEsN63ZEQ==} + + '@vue/compiler-dom@3.5.40': + resolution: {integrity: sha512-pwkx4vqlqOspFstrcmzwkKLePVMD3PT65imRzLhanU2V1Fj4K13g6OXjanOyzw3aTAuRk84BOmY8f3rEHqPaVA==} + + '@vue/compiler-sfc@3.5.40': + resolution: {integrity: sha512-gIf497P4kpuALcvs5n3AEg1Vdn0pSY4XbjASIfHNYF1/MP3T2Mf2STERTubysBxCRxzJGJYtF/O7vwJrxFB3Vw==} + + '@vue/compiler-ssr@3.5.40': + resolution: {integrity: sha512-rrE5xiXG663+vHCHa3J9p2z5OcBRjXmoqenprJxAFQxg5pSshzeBiCE6pu46axapRJ2Adk0YDA2BRZVjiHXnhg==} + + '@vue/reactivity@3.5.40': + resolution: {integrity: sha512-B7ot9UlUZOi1zbq61/LvE88ZLTV8IlajTdiZTAEiDQgrnIMIZoPr9kGw0Zw46ObW62O9+H/Be3kMbfb7kYPQZA==} + + '@vue/runtime-core@3.5.40': + resolution: {integrity: sha512-KAZLweuZ6uUJPK1PMSQPgBU5gCjgrrfjUhSglmU9NhH+Zjepa8cnwSydPWDWHDwOgY4g3VcZ+PljbiHlURNCbw==} + + '@vue/runtime-dom@3.5.40': + resolution: {integrity: sha512-ZfrX8ssZQds900L9pr8AuK05ddnMsR4MPMZr8cPN9GoqoPWcXLhjvvbIA2SMv+7a97sJ1vv9pj/zxK0Cq/eEFQ==} + + '@vue/server-renderer@3.5.40': + resolution: {integrity: sha512-XNJym9WpevhTVt1HuwOrCRJ5Q+9z4BjTMrDtjTrvx74SmUll8spNTw6whWJa9mEkO4PKn5TihI/bm/8ds2QVJw==} + + '@vue/shared@3.5.40': + resolution: {integrity: sha512-WxnBtruIqOoV3rA4jeKDWzrYI5h7Cp4+pjwDi8kWGHz+IslhiN+wguLVVhtv2l8VoU02rzDCVfDjgCl1lNpZVg==} + + 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.5: + resolution: {integrity: sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==} + engines: {node: '>=0.4.0'} + + acorn@8.17.0: + resolution: {integrity: sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==} + engines: {node: '>=0.4.0'} + hasBin: true + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ajv@6.15.0: + resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} + + 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'} + + arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} + + array-buffer-byte-length@1.0.2: + resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} + engines: {node: '>= 0.4'} + + array-includes@3.1.9: + resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==} + engines: {node: '>= 0.4'} + + array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} + + array.prototype.findlastindex@1.2.6: + resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==} + engines: {node: '>= 0.4'} + + array.prototype.flat@1.3.3: + resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} + engines: {node: '>= 0.4'} + + array.prototype.flatmap@1.3.3: + resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} + engines: {node: '>= 0.4'} + + array.prototype.tosorted@1.1.4: + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} + engines: {node: '>= 0.4'} + + arraybuffer.prototype.slice@1.0.4: + resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} + engines: {node: '>= 0.4'} + + ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + + astring@1.9.0: + resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} + hasBin: true + + async-function@1.0.0: + resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} + engines: {node: '>= 0.4'} + + async-validator@3.5.2: + resolution: {integrity: sha512-8eLCg00W9pIRZSB781UUX/H6Oskmm8xloZfr09lz5bikRpBVDlJ3hRVuxxP1SxcwsEYfJ4IU8Q19Y8/893r3rQ==} + + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + axe-core@4.12.1: + resolution: {integrity: sha512-s7iGf5GaVMxEG0ENN9x+xTr7GFZCb1ZP/1uATUpCEK2X78nDB3RwbtFCo9pGAf9ru+VwoQ464DkaLEeRM08wJA==} + engines: {node: '>=4'} + + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + + babel-plugin-polyfill-corejs2@0.3.3: + resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + babel-plugin-polyfill-corejs3@0.6.0: + resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + babel-plugin-polyfill-regenerator@0.4.1: + resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + babel-plugin-styled-components@2.3.0: + resolution: {integrity: sha512-nP/y6PbBqS/qtKROnJCgpGo8hYUzlBAVXN1QAjSBANL6vZiQXPQN7FYW/nUwoxY7nZhBEGm9T5tjL9gbzwulDw==} + peerDependencies: + '@babel/core': ^7.0.0 + styled-components: '>= 2' + + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + baseline-browser-mapping@2.11.4: + resolution: {integrity: sha512-s4+sLr9mZ/CyqeRritFeYV/Zx73OAtmaHn6kkBS1XRoJn1hrg3xIDUcpicAEX68tkcIN0iBCgti31C8zxtkhsQ==} + engines: {node: '>=6.0.0'} + hasBin: true + + bezier-easing@2.1.0: + resolution: {integrity: sha512-gbIqZ/eslnUFC1tjEvtz0sgx+xTK20wDnYMIA27VA04R7w6xxXQPZDbibjA9DTWZRA2CXtwHykkVzlCaAJAZig==} + + bezier-js@6.1.4: + resolution: {integrity: sha512-PA0FW9ZpcHbojUCMu28z9Vg/fNkwTj5YhusSAjHHDfHDGLxJ6YUKrAN2vk1fP2MMOxVw4Oko16FMlRGVBGqLKg==} + + bignumber.js@11.1.5: + resolution: {integrity: sha512-6WmzCNtUnfKpbozq+hOgWaZMMzORmYBwF1xZScyoIX3QRYWeKTtxxwDOW5tIz7C9BdjkIYHGTcelCLkXg0mndw==} + + brace-expansion@1.1.16: + resolution: {integrity: sha512-IDw48K2/2kRkg9LdJxurvq3lV3aBgq0REY89duEqFRthjlPdXHKMj7EnQOXVckxzgisinf3nHfrcE2FufFLXMw==} + + brace-expansion@5.0.8: + resolution: {integrity: sha512-JZyDyq3D4AUifKTPOB7DELf6XsB3WdPuNxCtob1vFXPsSXhdAiHBWJ/tJ8HAc9aH84BK+5JFZLNkJKx3G9kzQg==} + engines: {node: 20 || >=22} + + browserslist@4.28.7: + resolution: {integrity: sha512-JxV13hNrFxqjOc8alRbq9dK1MM79NEXYpma2B2J4wAtpWS5zIEIKqWPGCl7N4o7Uc7B7itylh7SuDujATRyyTw==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + call-bind@1.0.9: + resolution: {integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==} + engines: {node: '>= 0.4'} + + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + camelize@1.0.1: + resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} + + caniuse-lite@1.0.30001806: + resolution: {integrity: sha512-72Cuvd95zbSYPKq6Fhg8eDJRlzgWDf7/mtoZv6Qe/DYNCEBdNxoA3+rZAU2ZhGCpZlns3EssFavaZomckT5Uuw==} + + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + + character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + + classnames@2.5.1: + resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} + + clsx@1.2.1: + resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} + engines: {node: '>=6'} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + codemirror-shiki@0.2.5: + resolution: {integrity: sha512-EFtjSYtT0osdjM4HLek5juVu8QVmG7E58Dib91yOO/vhGj+i3b63PyD8UF+PWXRTRaZa6q5Z6J02Iq0M/u0fHQ==} + peerDependencies: + '@codemirror/state': ^6 + '@codemirror/view': ^6 + shiki: '>=2.0.0' + + collapse-white-space@2.1.0: + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + comlink@4.4.2: + resolution: {integrity: sha512-OxGdvBmJuNKSCMO4NTl1L47VRp6xn2wG4F/2hYzB6tiCb709otOxtEYCSvK80PtjODfXXZu8ds+Nw5kVCjqd2g==} + + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + + compute-scroll-into-view@1.0.20: + resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + console-table-printer@2.16.1: + resolution: {integrity: sha512-Sc9FRJ4O9xKGNrvulNdPfK5SyBcZ6lcaRnDE4AQ/uw6IDtjHhsqyzzqcnMikjyGaiOOF2tNOKoBhbVjRvFy9Lw==} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + copy-anything@3.0.5: + resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} + engines: {node: '>=12.13'} + + copy-text-to-clipboard@2.2.0: + resolution: {integrity: sha512-WRvoIdnTs1rgPMkgA2pUOa/M4Enh2uzCwdKsOMYNAJiz/4ZvEJgmbF4OmninPmlFdAWisfeh0tH+Cpf7ni3RqQ==} + engines: {node: '>=6'} + + core-js-compat@3.49.0: + resolution: {integrity: sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==} + + core-js@3.47.0: + resolution: {integrity: sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==} + + create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + + crelt@1.0.7: + resolution: {integrity: sha512-aK6BbWfhf4U/wCcLHKPJl/xa6VkVstRaPywWtMKGwuOLc/wZTyQYuoxgvZnNsBvv7Kg3YTBQYYBCggcviQczuA==} + + cross-env@7.0.3: + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + css-color-keywords@1.0.0: + resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==} + engines: {node: '>=4'} + + css-to-react-native@3.2.0: + resolution: {integrity: sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==} + + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + + damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + + data-view-buffer@1.0.2: + resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.2: + resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.1: + resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} + engines: {node: '>= 0.4'} + + date-fns-tz@1.3.8: + resolution: {integrity: sha512-qwNXUFtMHTTU6CFSFjoJ80W8Fzzp24LntbjFFBgL/faqds4e5mo9mftoRLgr3Vi1trISsg4awSpYVsOQCRnapQ==} + peerDependencies: + date-fns: '>=2.0.0' + + date-fns@2.30.0: + resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} + engines: {node: '>=0.11'} + + 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.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + + decode-named-character-reference@1.3.0: + resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==} + + 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'} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + detect-indent@7.0.2: + resolution: {integrity: sha512-y+8xyqdGLL+6sh0tVeHcfP/QDd8gUgbasolJJpY7NgeQGSZ739bDtSiaiDgtoicy+mtYB81dKLxO9xRhCyIB3A==} + engines: {node: '>=12.20'} + + detect-newline@4.0.1: + resolution: {integrity: sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + + diff@4.0.4: + resolution: {integrity: sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==} + engines: {node: '>=0.3.1'} + + doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + electron-to-chromium@1.5.396: + resolution: {integrity: sha512-yHiw2Y3C3H9U6TMbOfoWK/BPreiOPXRfTWPBwQBoZG6/8TB6eOPnsy5oaRYuatR7Fw2SJ4kKforgufeo7fq0EQ==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + empathic@2.0.1: + resolution: {integrity: sha512-YGRs8knHhKHVShLkFET/rWAU8kmHbOV5LwN938RHI0pljAJ1Gf6SzXsSmRaEzcXTtOOmVqJ5+WtQPL5uigY50Q==} + engines: {node: '>=14'} + + entities@7.0.1: + resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} + engines: {node: '>=0.12'} + + errno@0.1.8: + resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} + hasBin: true + + error-stack-parser@2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + + es-abstract-get@1.0.0: + resolution: {integrity: sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg==} + engines: {node: '>= 0.4'} + + es-abstract@1.24.2: + resolution: {integrity: sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==} + engines: {node: '>= 0.4'} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-iterator-helpers@1.4.0: + resolution: {integrity: sha512-c/A0P0oxkACDc+cKWw8evLXK83oBKgn0qPOqCYT4x9uolpCIJAcYvJC9QYKNDRPsTeGyCrQ326jrvgZWdCdK5Q==} + engines: {node: '>= 0.4'} + + es-object-atoms@1.1.2: + resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + es-shim-unscopables@1.1.0: + resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} + engines: {node: '>= 0.4'} + + es-to-primitive@1.3.4: + resolution: {integrity: sha512-yPDz7wqpg1/mmHLmS3tcfTfbw5f1eryXvyghYBffGdERwe+mV7ZcWzTR8LR17Kvqt3qfPurjlonmnq3MKXIOXw==} + engines: {node: '>= 0.4'} + + es-toolkit@1.50.0: + resolution: {integrity: sha512-OyZKhUVvEep9ITEiwHn8GKnMRQIVqoSIX7WnRbkWgJkllCujilqP2rD0u979tkl8wqyc8ICwlc1UBVv/Sl1G6w==} + + esast-util-from-estree@2.0.0: + resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} + + esast-util-from-js@2.0.1: + resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + eslint-config-prettier@8.10.2: + resolution: {integrity: sha512-/IGJ6+Dka158JnP5n5YFMOszjDWrXggGz1LaK/guZq9vZTmniaKlHcsscvkAhn9y4U+BU3JuUdYvtAMcv30y4A==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-define-config@1.12.0: + resolution: {integrity: sha512-Kt9TcMbgsY9VRt7jIuw76KE/2RuD31eWB4Ubv6btXgU8NTSsbT6gZ8qzeiU+rAih/8sOl8Kt89spAZBMElu6qQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0, npm: '>=6.14.13', pnpm: '>= 7.0.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + + eslint-import-resolver-node@0.3.10: + resolution: {integrity: sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ==} + + eslint-import-resolver-typescript@3.10.1: + resolution: {integrity: sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + eslint-plugin-import-x: '*' + peerDependenciesMeta: + eslint-plugin-import: + optional: true + eslint-plugin-import-x: + optional: true + + eslint-module-utils@2.14.0: + resolution: {integrity: sha512-W2WCRZ9Dqntd+2u8jJcVMV2PKulc6RdLgUUoh/yQr3uB6lo/ZOeGx11sv60/8S4QFFKNslAlWhr9u0Ef7ZW6Ig==} + 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-babel@5.3.1: + resolution: {integrity: sha512-VsQEr6NH3dj664+EyxJwO4FCYm/00JhYb3Sk3ft8o+fpKuIfQ9TaW6uVUfvwMXHcf/lsnRIoyFPsLMyiWCSL/g==} + engines: {node: '>=4'} + peerDependencies: + eslint: '>=4.0.0' + + eslint-plugin-import@2.32.0: + resolution: {integrity: sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + + eslint-plugin-jsx-a11y@6.10.2: + resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 + + eslint-plugin-prettier@4.2.5: + resolution: {integrity: sha512-9Ni+xgemM2IWLq6aXEpP2+V/V30GeA/46Ar629vcMqVPodFFWC9skHu/D1phvuqtS8bJCFnNf01/qcmqYEwNfg==} + engines: {node: '>=12.0.0'} + peerDependencies: + eslint: '>=7.28.0' + eslint-config-prettier: '*' + prettier: '>=2.0.0' + peerDependenciesMeta: + eslint-config-prettier: + optional: true + + eslint-plugin-react@7.37.5: + resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + + eslint-plugin-tsdoc@0.2.17: + resolution: {integrity: sha512-xRmVi7Zx44lOBuYqG8vzTXuL6IdGOeF9nHX17bjJ8+VE6fsxpdGem0/SBTmAwgYMKYB1WBkqRJVQ+n8GK041pA==} + + eslint-rule-composer@0.3.0: + resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} + engines: {node: '>=4.0.0'} + + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@5.0.1: + resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + eslint@9.39.5: + resolution: {integrity: sha512-DgZS62aPLXKlnxILS/AYCoRvHaZeXceIzlXPkkGGzJWSow1aEk0lbTlxUSlyjC8jcaKxAdOnTDz+o1JFSBsyjw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + esquery@1.7.0: + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} + 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-util-attach-comments@3.0.0: + resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} + + estree-util-build-jsx@3.0.1: + resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} + + estree-util-is-identifier-name@3.0.0: + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + + estree-util-scope@1.0.0: + resolution: {integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==} + + estree-util-to-js@2.0.0: + resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} + + estree-util-visit@2.0.0: + resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} + + 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'} + + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + fast-copy@3.0.2: + resolution: {integrity: sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==} + + 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-equals@2.0.4: + resolution: {integrity: sha512-caj/ZmjHljPrZtbzJ3kfH5ia/k4mTJe/qSiXAGzxZWRZgsgDV0cvNaQULqUX8t0/JVlzzEdYOwCN5DmzTxoD4w==} + + fast-equals@5.4.1: + resolution: {integrity: sha512-DjlFSM5Pk9cGcL0q5QXl66eGzx0N6szNgaswwc5ZphlBohjTVJSnGgI+rJVOgOi65qUoQnDZN4nDqi33udtydQ==} + engines: {node: '>=6.0.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==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + + flatted@3.4.3: + resolution: {integrity: sha512-/zipXxyO6rGvuNGDiULY9MvEGSkb2gaG4GGH4ygMi0ZZzyMHdUZBmntJmx5x1G2VuPytCwGN4xsJP6cw+sK+vQ==} + + for-each@0.3.5: + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} + engines: {node: '>= 0.4'} + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + function.prototype.name@1.2.0: + resolution: {integrity: sha512-jObKIik1P2QjPHP5nz5BaOtUlfgS0fWo8IUByNXkM+o+02sJOi94em77GwJKQSJ3gfPHdgzLNrHc1uokV4P/ew==} + engines: {node: '>= 0.4'} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + generator-function@2.0.1: + resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} + engines: {node: '>= 0.4'} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + get-symbol-description@1.1.0: + resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} + engines: {node: '>= 0.4'} + + get-tsconfig@4.14.0: + resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==} + + git-hooks-list@4.2.1: + resolution: {integrity: sha512-WNvqJjOxxs/8ZP9+DWdwWJ7cDsd60NHf39XnD82pDVrKO5q7xfPqpkK6hwEAmBa/ZSEE4IOoR75EzbbIuwGlMw==} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + has-bigints@1.1.0: + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} + engines: {node: '>= 0.4'} + + 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.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.2.0: + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} + engines: {node: '>= 0.4'} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hash-sum@2.0.0: + resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==} + + hasown@2.0.4: + resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} + engines: {node: '>= 0.4'} + + hast-util-to-estree@3.1.3: + resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==} + + hast-util-to-html@9.0.5: + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} + + hast-util-to-jsx-runtime@2.3.6: + resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + + hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + + i18n-js@4.5.3: + resolution: {integrity: sha512-5/tT6R9t9qlYqGhxGq9I9Ap3WKUaAMq5aRuO1gqAcUqm6xGbL0jwTAjSFjgbx935BAV8QbEzvQOzE796dUlEfA==} + + 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'} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + ignore@7.0.6: + resolution: {integrity: sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==} + engines: {node: '>= 4'} + + immer@10.1.3: + resolution: {integrity: sha512-tmjF/k8QDKydUlm3mZU+tjM6zeq9/fFpPqH9SzWmBnVVKsPBg/V66qsMwb3/Bo90cgUN+ghdVBess+hPsxUyRw==} + + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + + import-meta-resolve@4.2.0: + resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + inline-style-parser@0.2.7: + resolution: {integrity: sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==} + + internal-slot@1.1.0: + resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} + engines: {node: '>= 0.4'} + + inversify@6.2.2: + resolution: {integrity: sha512-KB836KHbZ9WrUnB8ax5MtadOwnqQYa+ZJO3KWbPFgcr4RIEnHM621VaqFZzOZd9+U7ln6upt9n0wJei7x2BNqw==} + peerDependencies: + reflect-metadata: ~0.2.2 + + is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + + is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + + is-array-buffer@3.0.5: + resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} + engines: {node: '>= 0.4'} + + is-async-function@2.1.1: + resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} + engines: {node: '>= 0.4'} + + is-bigint@1.1.0: + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} + engines: {node: '>= 0.4'} + + is-boolean-object@1.2.2: + resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} + engines: {node: '>= 0.4'} + + is-bun-module@2.0.0: + resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-core-module@2.16.2: + resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==} + engines: {node: '>= 0.4'} + + is-data-view@1.0.2: + resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} + engines: {node: '>= 0.4'} + + is-date-object@1.1.0: + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} + engines: {node: '>= 0.4'} + + is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + + is-document.all@1.0.0: + resolution: {integrity: sha512-+XSoyS05OdBbhFuELhgTCpFNHkpBOJqtsZfUFFpe5QTw+9Sjbh8zitxhQkYAo6wV7e1Vb8cAPvpCk9jGam/82g==} + engines: {node: '>= 0.4'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-finalizationregistry@1.1.1: + resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} + engines: {node: '>= 0.4'} + + is-generator-function@1.1.2: + resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} + engines: {node: '>= 0.4'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + + is-number-object@1.1.1: + resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} + engines: {node: '>= 0.4'} + + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + engines: {node: '>= 0.4'} + + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + + is-shared-array-buffer@1.0.4: + resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} + engines: {node: '>= 0.4'} + + is-string@1.1.1: + resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} + engines: {node: '>= 0.4'} + + is-symbol@1.1.1: + resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} + engines: {node: '>= 0.4'} + + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} + engines: {node: '>= 0.4'} + + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + + is-weakref@1.1.1: + resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} + engines: {node: '>= 0.4'} + + is-weakset@2.0.4: + resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} + engines: {node: '>= 0.4'} + + is-what@4.1.16: + resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} + engines: {node: '>=12.13'} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + iterator.prototype@1.1.5: + resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} + engines: {node: '>= 0.4'} + + jiti@2.7.0: + resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} + hasBin: true + + jju@1.4.0: + resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} + + jotai@2.20.2: + resolution: {integrity: sha512-aHB4CNb9qRcyf0mwSB6EO5bCGAjx8cTwFgOFCE2leOnTzqACbnSWG8XoWB3LxCT1Qoj03I1OWAHszDmN4uHb/w==} + engines: {node: '>=12.20.0'} + peerDependencies: + '@babel/core': '>=7.0.0' + '@babel/template': '>=7.0.0' + '@types/react': '>=17.0.0' + react: '>=17.0.0' + peerDependenciesMeta: + '@babel/core': + optional: true + '@babel/template': + optional: true + '@types/react': + optional: true + react: + optional: true + + js-tiktoken@1.0.21: + resolution: {integrity: sha512-biOj/6M5qdgx5TKjDnFT1ymSpM5tbd3ylwDtrQvFQSu0Z7bBYko2dF+W/aUkXUPuk6IVpRxk/3Q2sHOzGlS36g==} + + js-tokens@10.0.0: + resolution: {integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@4.3.0: + resolution: {integrity: sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==} + hasBin: true + + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + 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.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + + jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + langsmith@0.3.87: + resolution: {integrity: sha512-XXR1+9INH8YX96FKWc5tie0QixWz6tOqAsAKfcJyPkE0xPep+NDz0IQLR32q4bn10QK3LqD2HN6T3n6z1YLW7Q==} + peerDependencies: + '@opentelemetry/api': '*' + '@opentelemetry/exporter-trace-otlp-proto': '*' + '@opentelemetry/sdk-trace-base': '*' + openai: '*' + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@opentelemetry/exporter-trace-otlp-proto': + optional: true + '@opentelemetry/sdk-trace-base': + optional: true + openai: + optional: true + + language-subtag-registry@0.3.23: + resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} + + language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} + + less-loader@12.3.3: + resolution: {integrity: sha512-F0+ErFFDj3Pt+nVrCN6VlEGEzocv9s7x/aR9v2riI+WM83UAfTYBDBjGPJnT55lBLR6JSI4fmWblt+aA2JN6/w==} + engines: {node: '>= 18.12.0'} + peerDependencies: + '@rspack/core': 0.x || ^1.0.0 || ^2.0.0-0 + less: ^3.5.0 || ^4.0.0 + webpack: ^5.0.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true + + less@4.8.0: + resolution: {integrity: sha512-7Y7DJBMbsW29UGjOG6NGvxQEx71AaDcrryBwYCMaFwn0kj8FkSueKN9r9WexVOetKEhXh38kL++WJncfkEpS+g==} + engines: {node: '>=18'} + hasBin: true + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + linkifyjs@4.3.3: + resolution: {integrity: sha512-P8aEP5U/D1/IlTY2OeYsErdwh9bGuLE30NcXtKEjgdHcahveQoQwM2yZNsioQHsWFz0P7KKudisbrzCgR0sDHg==} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash-es@4.18.1: + resolution: {integrity: sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==} + + lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash@4.18.1: + resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} + + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + lottie-web@5.13.0: + resolution: {integrity: sha512-+gfBXl6sxXMPe8tKQm7qzLnUy5DUPJPKIyRHwtpCpyUEYjHYRJC/5gjUvdkuO2c3JllrPtHXH5UJJK8LRYl5yQ==} + + lru-cache@11.5.2: + resolution: {integrity: sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==} + engines: {node: 20 || >=22} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} + hasBin: true + + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + + make-dir@5.1.0: + resolution: {integrity: sha512-IfpFq6UM39dUNiphpA6uDezNx/AvWyhwfICWPR3t1VspkgkMZrL+Rk1RbN1bx+aeNYwOrqGJgEgV3yotk+ZUVw==} + engines: {node: '>=18'} + + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + make-plural@7.5.0: + resolution: {integrity: sha512-0booA+aVYyVFoR67JBHdfVk0U08HmrBH2FrtmBqBa+NldlqXv/G2Z9VQuQq6Wgp2jDWdybEWGfBkk1cq5264WA==} + + markdown-extensions@2.0.0: + resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} + engines: {node: '>=16'} + + markdown-table@3.0.4: + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + + marked-shiki@1.2.1: + resolution: {integrity: sha512-yHxYQhPY5oYaIRnROn98foKhuClark7M373/VpLxiy5TrDu9Jd/LsMwo8w+U91Up4oDb9IXFrP0N1MFRz8W/DQ==} + peerDependencies: + marked: '>=7.0.0' + shiki: '>=1.0.0' + + marked@15.0.12: + resolution: {integrity: sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==} + engines: {node: '>= 18'} + hasBin: true + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + mdast-util-find-and-replace@3.0.2: + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} + + mdast-util-from-markdown@2.0.3: + resolution: {integrity: sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==} + + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + + mdast-util-gfm-footnote@2.1.0: + resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} + + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + + mdast-util-gfm@3.1.0: + resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} + + mdast-util-mdx-expression@2.0.1: + resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} + + mdast-util-mdx-jsx@3.2.0: + resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==} + + mdast-util-mdx@3.0.0: + resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} + + mdast-util-mdxjs-esm@2.0.1: + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-hast@13.2.1: + resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} + + mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + + memoize-one@5.2.1: + resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} + + micromark-core-commonmark@2.0.3: + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + + micromark-extension-gfm-table@2.1.1: + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + + micromark-extension-mdx-expression@3.0.1: + resolution: {integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==} + + micromark-extension-mdx-jsx@3.0.2: + resolution: {integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==} + + micromark-extension-mdx-md@2.0.0: + resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + + micromark-extension-mdxjs-esm@3.0.0: + resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} + + micromark-extension-mdxjs@3.0.0: + resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} + + micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + + micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + + micromark-factory-mdx-expression@2.0.3: + resolution: {integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==} + + micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + + micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + + micromark-util-classify-character@2.0.1: + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + + micromark-util-events-to-acorn@2.0.3: + resolution: {integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==} + + micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + + micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + + micromark-util-subtokenize@2.1.0: + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} + + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + + micromark-util-types@2.0.2: + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} + + micromark@4.0.2: + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + minimatch@10.2.5: + resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} + engines: {node: 18 || 20 || >=22} + + minimatch@3.1.5: + resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + + modern-screenshot@4.6.7: + resolution: {integrity: sha512-0GhgI6i6le4AhKzCvLYjwEmsP47kTsX45iT5yuAzsLTi/7i3Rjxe8fbH2VjGJLuyOThwsa0CdQAPd4auoEtsZg==} + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + mustache@4.2.0: + resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} + hasBin: true + + nanoid@3.3.16: + resolution: {integrity: sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanoid@5.1.16: + resolution: {integrity: sha512-kVrnsrJqMR8+oLJnGEmSWw9BivK5mt7H3FZatVRjrc5wGqFYuBxX1yG7+A7Gi5AefkX6t/oCkizcQgpu0cY1dQ==} + engines: {node: ^18 || >=20} + hasBin: true + + napi-postinstall@0.3.4: + resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + needle@2.9.1: + resolution: {integrity: sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==} + engines: {node: '>= 4.4.x'} + hasBin: true + + needle@3.5.0: + resolution: {integrity: sha512-jaQyPKKk2YokHrEg+vFDYxXIHTCBgiZwSHOoVx/8V3GIBS8/VN6NdVRmg8q1ERtPkMvmOvebsgga4sAj5hls/w==} + engines: {node: '>= 4.4.x'} + hasBin: true + + node-exports-info@1.6.2: + resolution: {integrity: sha512-kXs9Go0cah0qHVV2v389IXQLdLCeE1xfFtjOAF+iobu0OIoG1pje8At2vMHyaPMiPMnG/LWP50twML21eMcAag==} + engines: {node: '>= 0.4'} + + node-releases@2.0.51: + resolution: {integrity: sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ==} + engines: {node: '>=18'} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object.assign@4.1.7: + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} + engines: {node: '>= 0.4'} + + object.entries@1.1.9: + resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} + engines: {node: '>= 0.4'} + + object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} + + object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} + + object.values@1.2.1: + resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} + engines: {node: '>= 0.4'} + + obug@2.1.4: + resolution: {integrity: sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==} + engines: {node: '>=12.20.0'} + + oniguruma-parser@0.12.2: + resolution: {integrity: sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==} + + oniguruma-to-es@4.3.6: + resolution: {integrity: sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==} + + openai@5.23.2: + resolution: {integrity: sha512-MQBzmTulj+MM5O8SKEk/gL8a7s5mktS9zUtAkU257WjvobGc9nKcBuVwjyEEcb9SI8a8Y2G/mzn3vm9n1Jlleg==} + hasBin: true + peerDependencies: + ws: ^8.18.0 + zod: ^3.23.8 + peerDependenciesMeta: + ws: + optional: true + zod: + optional: true + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + orderedmap@2.1.1: + resolution: {integrity: sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==} + + overlayscrollbars@2.16.0: + resolution: {integrity: sha512-N03oje/q7j93D0aLZtoCdsDSYLmhheSsv8H7oSLE7HhdV9P/bmCURtLV/KbPye7P/bpfyt/obSfDpGUYoJ0OWg==} + + own-keys@1.0.2: + resolution: {integrity: sha512-19YVAg7T+WTrxggPukVq7DjTv6+PJ867TmhCvBsYwmbFCsZd344rq2Ld1p0wo8f8Qrrhgp82c6FJRqdXWtSEhg==} + engines: {node: '>= 0.4'} + + p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-queue@6.6.2: + resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} + engines: {node: '>=8'} + + p-retry@4.6.2: + resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + engines: {node: '>=8'} + + p-timeout@3.2.0: + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} + engines: {node: '>=8'} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-entities@4.0.2: + resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} + + parse-node-version@1.0.1: + resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} + engines: {node: '>= 0.10'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@4.0.5: + resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} + engines: {node: '>=12'} + + possible-typed-array-names@1.1.0: + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} + engines: {node: '>= 0.4'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.5.23: + resolution: {integrity: sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==} + 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.1: + resolution: {integrity: sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==} + engines: {node: '>=6.0.0'} + + prettier-plugin-packagejson@2.5.22: + resolution: {integrity: sha512-G6WalmoUssKF8ZXkni0+n4324K+gG143KPysSQNW+FrR0XyNb3BdRxchGC/Q1FE/F702p7/6KU7r4mv0WSWbzA==} + peerDependencies: + prettier: '>= 1.16.0' + peerDependenciesMeta: + prettier: + optional: true + + prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + + prismjs@1.30.0: + resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} + engines: {node: '>=6'} + + probe-image-size@7.3.0: + resolution: {integrity: sha512-7CaDeBwiAbh6ohXsvLbAZhO7wzsZAmaevfxe39qvCwRh8LyaZfDlBGGLU1CCTgrTLtCOdwBBhjOrIHaIIimHfQ==} + + prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + + property-information@7.2.0: + resolution: {integrity: sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==} + + prosemirror-changeset@2.4.1: + resolution: {integrity: sha512-96WBLhOaYhJ+kPhLg3uW359Tz6I/MfcrQfL4EGv4SrcqKEMC1gmoGrXHecPE8eOwTVCJ4IwgfzM8fFad25wNfw==} + + prosemirror-commands@1.7.1: + resolution: {integrity: sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==} + + prosemirror-dropcursor@1.8.3: + resolution: {integrity: sha512-FoYbsJR8gK+DGlqhNoE29Loa38eIZPzQRIb1VMaDNBoo4OLP6vVof/jR8qFY/6XvUd6Dhug8MDCHl2a/h8RTfQ==} + + prosemirror-gapcursor@1.4.1: + resolution: {integrity: sha512-pMdYaEnjNMSwl11yjEGtgTmLkR08m/Vl+Jj443167p9eB3HVQKhYCc4gmHVDsLPODfZfjr/MmirsdyZziXbQKw==} + + prosemirror-history@1.5.0: + resolution: {integrity: sha512-zlzTiH01eKA55UAf1MEjtssJeHnGxO0j4K4Dpx+gnmX9n+SHNlDqI2oO1Kv1iPN5B1dm5fsljCfqKF9nFL6HRg==} + + prosemirror-inputrules@1.5.1: + resolution: {integrity: sha512-7wj4uMjKaXWAQ1CDgxNzNtR9AlsuwzHfdFH1ygEHA2KHF2DOEaXl1CJfNPAKCg9qNEh4rum975QLaCiQPyY6Fw==} + + prosemirror-keymap@1.2.3: + resolution: {integrity: sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==} + + prosemirror-model@1.25.11: + resolution: {integrity: sha512-QWg9RhnpLlogAmp3p96uEFrE5txQpFynd4vhBAELkwgOCWQs/X0yCzB3/hrHqiPwf91RG5KyWq6553zs9JqIOQ==} + + prosemirror-schema-list@1.5.1: + resolution: {integrity: sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==} + + prosemirror-state@1.4.4: + resolution: {integrity: sha512-6jiYHH2CIGbCfnxdHbXZ12gySFY/fz/ulZE333G6bPqIZ4F+TXo9ifiR86nAHpWnfoNjOb3o5ESi7J8Uz1jXHw==} + + prosemirror-tables@1.8.5: + resolution: {integrity: sha512-V/0cDCsHKHe/tfWkeCmthNUcEp1IVO3p6vwN8XtwE9PZQLAZJigbw3QoraAdfJPir4NKJtNvOB8oYGKRl+t0Dw==} + + prosemirror-transform@1.12.0: + resolution: {integrity: sha512-GxboyN4AMIsoHNtz5uf2r2Ru551i5hWeCMD6E2Ib4Eogqoub0NflniaBPVQ4MrGE5yZ8JV9tUHg9qcZTTrcN4w==} + + prosemirror-view@1.42.2: + resolution: {integrity: sha512-Pdg0l5kXm8aLDquFAnQFTCITg0q44sLqBlHlpsVLD9segdOao8TOfQdAhCrCXyVgPSRr6UDDROOIWA3bIrN9YQ==} + + prr@1.0.1: + resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + quickjs-emscripten-core@0.32.0: + resolution: {integrity: sha512-QFnPfjFey8EqknSrSxe1hZrf1/8z7/6s1QzGOmKo6++02r7QRRX7ZoyNaZh7JuVjWsVW87KnQrbZqnHkOAzUyg==} + + quickjs-emscripten@0.32.0: + resolution: {integrity: sha512-So0Sqw869y/S2oE3Nuc0uT3Dhqgvsj8FSrwBdsuTosVsG8ME5/OcudU1GxsrIFdFABgy17GHnTVO9TYV/bLQcA==} + engines: {node: '>=16.0.0'} + + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.3.1 + + react-draggable@4.7.0: + resolution: {integrity: sha512-kTpANmKWVnFXiZ76Ag2ZowiFStuBYnJ606PI1TbUsOg29/400/JNIxI9+CuenhiAqFuXWJffz6F4UI3R51kUug==} + peerDependencies: + react: '>= 16.3.0' + react-dom: '>= 16.3.0' + + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + react-refresh@0.18.0: + resolution: {integrity: sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==} + engines: {node: '>=0.10.0'} + + react-resizable@3.2.0: + resolution: {integrity: sha512-3NKQ0SLZV7rs3LQHeXlOzDSRQfFrkX6TVet77/Qk03zqiZyee37b7N8/gwDJAA8UUjRz7PdWCCy49hcso45SMQ==} + peerDependencies: + react: '>= 16.3' + react-dom: '>= 16.3' + + react-window@1.8.11: + resolution: {integrity: sha512-+SRbUVT2scadgFSWx+R1P754xHPEqvcfSfVX10QYg6POOz+WNgkN48pS+BtZNIMGiL1HYrSEiCkwsMS15QogEQ==} + engines: {node: '>8.0.0'} + peerDependencies: + react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + + recma-build-jsx@1.0.0: + resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} + + recma-jsx@1.0.1: + resolution: {integrity: sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + recma-parse@1.0.0: + resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==} + + recma-stringify@1.0.0: + resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} + + reduce-configs@1.1.2: + resolution: {integrity: sha512-AgBP55V8FC7NaqoOP2RCbTpu6LE+YuX3LUZkNAoitcfyS3/PIC8Obg/TJrBzTkJ+lDvZv0TTAeDpLkzjTtYlbw==} + + reflect-metadata@0.2.2: + resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} + + reflect.getprototypeof@1.0.10: + resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} + engines: {node: '>= 0.4'} + + regenerate-unicode-properties@10.2.2: + resolution: {integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==} + engines: {node: '>=4'} + + regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + + regex-recursion@6.0.2: + resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} + + regex-utilities@2.3.0: + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} + + regex@6.1.0: + resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==} + + regexp.prototype.flags@1.5.4: + resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} + engines: {node: '>= 0.4'} + + regexpu-core@6.4.0: + resolution: {integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==} + engines: {node: '>=4'} + + regjsgen@0.8.0: + resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} + + regjsparser@0.13.2: + resolution: {integrity: sha512-NgRBy2Nx/bE+9F27nVHnqcN5HjyLmecqsqx2PJHu3/IEtADD4WuxuXIVExD5PoSDFVrl78dOonfcOe5O+5nbzQ==} + hasBin: true + + rehype-recma@1.0.0: + resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} + + remark-gfm@4.0.1: + resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} + + remark-mdx@3.1.1: + resolution: {integrity: sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==} + + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + + remark-rehype@11.1.2: + resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} + + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve@1.19.0: + resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==} + + resolve@1.22.12: + resolution: {integrity: sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==} + engines: {node: '>= 0.4'} + hasBin: true + + resolve@2.0.0-next.7: + resolution: {integrity: sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==} + engines: {node: '>= 0.4'} + hasBin: true + + retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + + rope-sequence@1.3.4: + resolution: {integrity: sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==} + + rxjs@7.8.2: + resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} + + safe-array-concat@1.1.4: + resolution: {integrity: sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==} + engines: {node: '>=0.4'} + + safe-push-apply@1.0.0: + resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} + engines: {node: '>= 0.4'} + + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + engines: {node: '>= 0.4'} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sax@1.6.1: + resolution: {integrity: sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==} + engines: {node: '>=11.0.0'} + + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + + scroll-into-view-if-needed@2.2.31: + resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.8.5: + resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} + engines: {node: '>=10'} + hasBin: true + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + + set-proto@1.0.0: + resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} + engines: {node: '>= 0.4'} + + shallowequal@1.1.0: + resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} + + 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'} + + shiki@3.23.0: + resolution: {integrity: sha512-55Dj73uq9ZXL5zyeRPzHQsK7Nbyt6Y10k5s7OjuFZGMhpp4r/rsLBH0o/0fstIzX1Lep9VxefWljK/SKCzygIA==} + + side-channel-list@1.0.1: + resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.1: + resolution: {integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==} + engines: {node: '>= 0.4'} + + simple-wcswidth@1.1.2: + resolution: {integrity: sha512-j7piyCjAeTDSjzTSQ7DokZtMNwNlEAyxqSZeCS+CXH7fJ4jx3FuJ/mTW3mE+6JLs4VJBbcll0Kjn+KXI5t21Iw==} + + sort-object-keys@2.1.0: + resolution: {integrity: sha512-SOiEnthkJKPv2L6ec6HMwhUcN0/lppkeYuN1x63PbyPRrgSPIuBJCiYxYyvWRTtjMlOi14vQUCGUJqS6PLVm8g==} + + sort-package-json@3.6.0: + resolution: {integrity: sha512-fyJsPLhWvY7u2KsKPZn1PixbXp+1m7V8NWqU8CvgFRbMEX41Ffw1kD8n0CfJiGoaSfoAvbrqRRl/DcHO8omQOQ==} + engines: {node: '>=20'} + hasBin: true + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.6: + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} + + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + + stable-hash@0.0.5: + resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} + + stackframe@1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + + stop-iteration-iterator@1.1.0: + resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} + engines: {node: '>= 0.4'} + + stream-parser@0.3.1: + resolution: {integrity: sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==} + + string.prototype.includes@2.0.1: + resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} + engines: {node: '>= 0.4'} + + string.prototype.matchall@4.0.12: + resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} + engines: {node: '>= 0.4'} + + string.prototype.repeat@1.0.0: + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} + + string.prototype.trim@1.2.11: + resolution: {integrity: sha512-PwvK7BU+CMTJGYQCTZb5RWXIML92lftJLhQz1tBzgKiqGxJaMlBAa48POXaNAC2s4y8jr3EFqrkF9+44neS46w==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.10: + resolution: {integrity: sha512-2+3aDAOmPTmuFwjDnmJG2ctEkQKVki7vOSqaxkv42Mowj1V6PnvuwFCRrR5lChUux1TBskPjfkeTOhqczDMxTw==} + engines: {node: '>= 0.4'} + + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + style-mod@4.1.3: + resolution: {integrity: sha512-i/n8VsZydrugj3Iuzll8+x/00GH2vnYsk1eomD8QiRrSAeW6ItbCQDtfXCeJHd0iwiNagqjQkvpvREEPtW3IoQ==} + + style-to-js@1.1.21: + resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==} + + style-to-object@1.0.14: + resolution: {integrity: sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==} + + styled-components@5.3.11: + resolution: {integrity: sha512-uuzIIfnVkagcVHv9nE0VPlHPSCmXIUGKfJ42LNjxCCTDTL5sgnJ8Z7GZBq0EnLYGln77tPpEpExt2+qa+cZqSw==} + engines: {node: '>=10'} + peerDependencies: + react: '>= 16.8.0' + react-dom: '>= 16.8.0' + react-is: '>= 16.8.0' + + 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-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + text-mapping@1.0.1: + resolution: {integrity: sha512-lONDMFNJ6QPjxYPcxkAy420qB+jMRxXERkNJAVDapQeZs0POW4pWryG9R+kAer6H+VDh/Z07x9GMNhhQrnSVIw==} + + tinyglobby@0.2.17: + resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} + engines: {node: '>=12.0.0'} + + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + + trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + + ts-api-utils@2.5.0: + resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + + ts-node@10.9.2: + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + + tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + typed-array-buffer@1.0.3: + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.3: + resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.4: + resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.8: + resolution: {integrity: sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==} + engines: {node: '>= 0.4'} + + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + unbox-primitive@1.1.0: + resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} + engines: {node: '>= 0.4'} + + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + unicode-canonical-property-names-ecmascript@2.0.1: + resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} + engines: {node: '>=4'} + + unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + + unicode-match-property-value-ecmascript@2.2.1: + resolution: {integrity: sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==} + engines: {node: '>=4'} + + unicode-property-aliases-ecmascript@2.2.0: + resolution: {integrity: sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==} + engines: {node: '>=4'} + + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + + unist-util-is@6.0.1: + resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} + + unist-util-position-from-estree@2.0.0: + resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} + + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-parents@6.0.2: + resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} + + unist-util-visit@5.1.0: + resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} + + unrs-resolver@1.12.2: + resolution: {integrity: sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ==} + + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + use-sync-external-store@1.6.0: + resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + utility-types@3.11.0: + resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==} + engines: {node: '>= 4'} + + uuid@10.0.0: + resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} + hasBin: true + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + + v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + + vfile-message@4.0.3: + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} + + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + + vscode-json-languageservice@5.7.2: + resolution: {integrity: sha512-WtKRDtJfFEmLrgtu+ODexOHm/6/krRF0k6t+uvkKIKW1Jh9ZIyxZQwJJwB3qhrEgvAxa37zbUg+vn+UyUK/U2w==} + + vscode-languageserver-textdocument@1.0.12: + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + + vscode-languageserver-types@3.18.0: + resolution: {integrity: sha512-8TsGPNMIMiiBdkORgRSvLjuiEIiAFtO+KssmYWxQ+uSVvlf7RjK8YKCOjPzZ+YA04jXEV7+7LvkSmHkhpNS99g==} + + vscode-uri@3.1.0: + resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} + + vue@3.5.40: + resolution: {integrity: sha512-+8PJ4SJXdn/cHGImF4CKdxlWHIN5Dkt7DoufRREM6h6uVCx2m7QxgcEQmmzyOK8A9mcafg7sFbJFYsdFVubTig==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + w3c-keyname@2.2.8: + resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} + + which-boxed-primitive@1.1.1: + resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} + engines: {node: '>= 0.4'} + + which-builtin-type@1.2.1: + resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} + engines: {node: '>= 0.4'} + + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + + which-typed-array@1.1.22: + resolution: {integrity: sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw==} + engines: {node: '>= 0.4'} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + zod-to-json-schema@3.25.2: + resolution: {integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==} + peerDependencies: + zod: ^3.25.28 || ^4 + + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + + zustand@4.5.7: + resolution: {integrity: sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw==} + engines: {node: '>=12.7.0'} + peerDependencies: + '@types/react': '>=16.8' + immer: '>=9.0.6' + react: '>=16.8' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true + + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + +snapshots: + + '@babel/code-frame@7.29.7': + dependencies: + '@babel/helper-validator-identifier': 7.29.7 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/code-frame@8.0.0': + dependencies: + '@babel/helper-validator-identifier': 8.0.4 + js-tokens: 10.0.0 + + '@babel/compat-data@7.29.7': {} + + '@babel/compat-data@8.0.0': {} + + '@babel/core@8.0.1': + dependencies: + '@babel/code-frame': 8.0.0 + '@babel/generator': 8.0.0 + '@babel/helper-compilation-targets': 8.0.0 + '@babel/helpers': 8.0.0 + '@babel/parser': 8.0.4 + '@babel/template': 8.0.0 + '@babel/traverse': 8.0.4 + '@babel/types': 8.0.4 + '@types/gensync': 1.0.5 + convert-source-map: 2.0.0 + empathic: 2.0.1 + gensync: 1.0.0-beta.2 + import-meta-resolve: 4.2.0 + json5: 2.2.3 + obug: 2.1.4 + semver: 7.8.5 + + '@babel/eslint-parser@7.19.1(@babel/core@8.0.1)(eslint@9.39.5(jiti@2.7.0))': + dependencies: + '@babel/core': 8.0.1 + '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 + eslint: 9.39.5(jiti@2.7.0) + eslint-visitor-keys: 2.1.0 + semver: 6.3.1 + + '@babel/eslint-plugin@7.29.7(@babel/eslint-parser@7.19.1(@babel/core@8.0.1)(eslint@9.39.5(jiti@2.7.0)))(eslint@9.39.5(jiti@2.7.0))': + dependencies: + '@babel/eslint-parser': 7.19.1(@babel/core@8.0.1)(eslint@9.39.5(jiti@2.7.0)) + eslint: 9.39.5(jiti@2.7.0) + eslint-rule-composer: 0.3.0 + + '@babel/generator@7.29.7': + dependencies: + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + + '@babel/generator@8.0.0': + dependencies: + '@babel/parser': 8.0.4 + '@babel/types': 8.0.4 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + '@types/jsesc': 2.5.1 + jsesc: 3.1.0 + + '@babel/helper-annotate-as-pure@7.29.7': + dependencies: + '@babel/types': 7.29.7 + + '@babel/helper-compilation-targets@7.29.7': + dependencies: + '@babel/compat-data': 7.29.7 + '@babel/helper-validator-option': 7.29.7 + browserslist: 4.28.7 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-compilation-targets@8.0.0': + dependencies: + '@babel/compat-data': 8.0.0 + '@babel/helper-validator-option': 8.0.0 + browserslist: 4.28.7 + lru-cache: 11.5.2 + semver: 7.8.5 + + '@babel/helper-create-class-features-plugin@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-member-expression-to-functions': 7.29.7 + '@babel/helper-optimise-call-expression': 7.29.7 + '@babel/helper-replace-supers': 7.29.7(@babel/core@8.0.1) + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + '@babel/traverse': 7.29.7(supports-color@5.5.0) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-create-regexp-features-plugin@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-annotate-as-pure': 7.29.7 + regexpu-core: 6.4.0 + semver: 6.3.1 + + '@babel/helper-define-polyfill-provider@0.3.3(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + debug: 4.4.3(supports-color@5.5.0) + lodash.debounce: 4.0.8 + resolve: 1.22.12 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-environment-visitor@7.24.7': + dependencies: + '@babel/types': 7.29.7 + + '@babel/helper-globals@7.29.7': {} + + '@babel/helper-globals@8.0.0': {} + + '@babel/helper-member-expression-to-functions@7.29.7': + dependencies: + '@babel/traverse': 7.29.7(supports-color@5.5.0) + '@babel/types': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-imports@7.29.7(supports-color@5.5.0)': + dependencies: + '@babel/traverse': 7.29.7(supports-color@5.5.0) + '@babel/types': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-module-imports': 7.29.7(supports-color@5.5.0) + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.7(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + + '@babel/helper-optimise-call-expression@7.29.7': + dependencies: + '@babel/types': 7.29.7 + + '@babel/helper-plugin-utils@7.29.7': {} + + '@babel/helper-remap-async-to-generator@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-wrap-function': 7.29.7 + '@babel/traverse': 7.29.7(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + + '@babel/helper-replace-supers@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-member-expression-to-functions': 7.29.7 + '@babel/helper-optimise-call-expression': 7.29.7 + '@babel/traverse': 7.29.7(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + + '@babel/helper-skip-transparent-expression-wrappers@7.29.7': + dependencies: + '@babel/traverse': 7.29.7(supports-color@5.5.0) + '@babel/types': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.29.7': {} + + '@babel/helper-string-parser@8.0.0': {} + + '@babel/helper-validator-identifier@7.29.7': {} + + '@babel/helper-validator-identifier@8.0.4': {} + + '@babel/helper-validator-option@7.29.7': {} + + '@babel/helper-validator-option@8.0.0': {} + + '@babel/helper-wrap-function@7.29.7': + dependencies: + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.7(supports-color@5.5.0) + '@babel/types': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/helpers@8.0.0': + dependencies: + '@babel/template': 8.0.0 + '@babel/types': 8.0.4 + + '@babel/parser@7.29.7': + dependencies: + '@babel/types': 7.29.7 + + '@babel/parser@8.0.4': + dependencies: + '@babel/types': 8.0.4 + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + '@babel/plugin-transform-optional-chaining': 7.29.7(@babel/core@8.0.1) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-remap-async-to-generator': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@8.0.1) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@8.0.1) + '@babel/helper-plugin-utils': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-class-static-block@7.21.0(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@8.0.1) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@8.0.1) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-dynamic-import@7.18.6(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@8.0.1) + + '@babel/plugin-proposal-export-namespace-from@7.18.9(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@8.0.1) + + '@babel/plugin-proposal-json-strings@7.18.6(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@8.0.1) + + '@babel/plugin-proposal-logical-assignment-operators@7.20.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@8.0.1) + + '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@8.0.1) + + '@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@8.0.1) + + '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@8.0.1)': + dependencies: + '@babel/compat-data': 7.29.7 + '@babel/core': 8.0.1 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@8.0.1) + '@babel/plugin-transform-parameters': 7.29.7(@babel/core@8.0.1) + + '@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@8.0.1) + + '@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@8.0.1) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@8.0.1) + '@babel/helper-plugin-utils': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-private-property-in-object@7.21.11(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@8.0.1) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@8.0.1) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@8.0.1) + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-syntax-import-assertions@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-syntax-jsx@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-arrow-functions@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-async-to-generator@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-module-imports': 7.29.7(supports-color@5.5.0) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-remap-async-to-generator': 7.29.7(@babel/core@8.0.1) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-block-scoped-functions@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-block-scoping@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-classes@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-globals': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-replace-supers': 7.29.7(@babel/core@8.0.1) + '@babel/traverse': 7.29.7(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-computed-properties@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/template': 7.29.7 + + '@babel/plugin-transform-destructuring@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/traverse': 7.29.7(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-dotall-regex@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@8.0.1) + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-duplicate-keys@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-exponentiation-operator@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-for-of@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-function-name@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/traverse': 7.29.7(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-literals@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-member-expression-literals@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-modules-amd@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-module-transforms': 7.29.7(@babel/core@8.0.1) + '@babel/helper-plugin-utils': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-commonjs@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-module-transforms': 7.29.7(@babel/core@8.0.1) + '@babel/helper-plugin-utils': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-systemjs@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-module-transforms': 7.29.7(@babel/core@8.0.1) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.7(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-umd@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-module-transforms': 7.29.7(@babel/core@8.0.1) + '@babel/helper-plugin-utils': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-named-capturing-groups-regex@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@8.0.1) + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-new-target@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-object-super@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-replace-supers': 7.29.7(@babel/core@8.0.1) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-optional-chaining@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-parameters@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-property-literals@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-react-display-name@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-react-jsx-development@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/plugin-transform-react-jsx': 7.29.7(@babel/core@8.0.1) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-react-jsx@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-module-imports': 7.29.7(supports-color@5.5.0) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@8.0.1) + '@babel/types': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-react-pure-annotations@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-regenerator@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-reserved-words@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-shorthand-properties@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-spread@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-sticky-regex@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-template-literals@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-typeof-symbol@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-unicode-escapes@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-unicode-regex@7.29.7(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@8.0.1) + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/preset-env@7.20.2(@babel/core@8.0.1)': + dependencies: + '@babel/compat-data': 7.29.7 + '@babel/core': 8.0.1 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-validator-option': 7.29.7 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@8.0.1) + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@8.0.1) + '@babel/plugin-proposal-class-static-block': 7.21.0(@babel/core@8.0.1) + '@babel/plugin-proposal-dynamic-import': 7.18.6(@babel/core@8.0.1) + '@babel/plugin-proposal-export-namespace-from': 7.18.9(@babel/core@8.0.1) + '@babel/plugin-proposal-json-strings': 7.18.6(@babel/core@8.0.1) + '@babel/plugin-proposal-logical-assignment-operators': 7.20.7(@babel/core@8.0.1) + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@8.0.1) + '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@8.0.1) + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@8.0.1) + '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@8.0.1) + '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@8.0.1) + '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@8.0.1) + '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@8.0.1) + '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@8.0.1) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@8.0.1) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@8.0.1) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@8.0.1) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@8.0.1) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@8.0.1) + '@babel/plugin-syntax-import-assertions': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@8.0.1) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@8.0.1) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@8.0.1) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@8.0.1) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@8.0.1) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@8.0.1) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@8.0.1) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@8.0.1) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@8.0.1) + '@babel/plugin-transform-arrow-functions': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-async-to-generator': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-block-scoped-functions': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-block-scoping': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-classes': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-computed-properties': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-destructuring': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-dotall-regex': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-duplicate-keys': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-exponentiation-operator': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-for-of': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-function-name': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-literals': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-member-expression-literals': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-modules-amd': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-modules-commonjs': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-modules-systemjs': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-modules-umd': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-named-capturing-groups-regex': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-new-target': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-object-super': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-parameters': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-property-literals': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-regenerator': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-reserved-words': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-shorthand-properties': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-spread': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-sticky-regex': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-template-literals': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-typeof-symbol': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-unicode-escapes': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-unicode-regex': 7.29.7(@babel/core@8.0.1) + '@babel/preset-modules': 0.1.6(@babel/core@8.0.1) + '@babel/types': 7.29.7 + babel-plugin-polyfill-corejs2: 0.3.3(@babel/core@8.0.1) + babel-plugin-polyfill-corejs3: 0.6.0(@babel/core@8.0.1) + babel-plugin-polyfill-regenerator: 0.4.1(@babel/core@8.0.1) + core-js-compat: 3.49.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/preset-modules@0.1.6(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@8.0.1) + '@babel/plugin-transform-dotall-regex': 7.29.7(@babel/core@8.0.1) + '@babel/types': 7.29.7 + esutils: 2.0.3 + + '@babel/preset-react@7.13.13(@babel/core@8.0.1)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-validator-option': 7.29.7 + '@babel/plugin-transform-react-display-name': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-react-jsx': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-react-jsx-development': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-transform-react-pure-annotations': 7.29.7(@babel/core@8.0.1) + transitivePeerDependencies: + - supports-color + + '@babel/runtime@7.29.7': {} + + '@babel/template@7.29.7': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 + + '@babel/template@8.0.0': + dependencies: + '@babel/code-frame': 8.0.0 + '@babel/parser': 8.0.4 + '@babel/types': 8.0.4 + + '@babel/traverse@7.29.7(supports-color@5.5.0)': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.7 + '@babel/helper-globals': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/template': 7.29.7 + '@babel/types': 7.29.7 + debug: 4.4.3(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + + '@babel/traverse@8.0.4': + dependencies: + '@babel/code-frame': 8.0.0 + '@babel/generator': 8.0.0 + '@babel/helper-globals': 8.0.0 + '@babel/parser': 8.0.4 + '@babel/template': 8.0.0 + '@babel/types': 8.0.4 + obug: 2.1.4 + + '@babel/types@7.29.7': + dependencies: + '@babel/helper-string-parser': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + + '@babel/types@8.0.4': + dependencies: + '@babel/helper-string-parser': 8.0.0 + '@babel/helper-validator-identifier': 8.0.4 + + '@cfworker/json-schema@4.1.1': {} + + '@codemirror/autocomplete@6.20.3': + dependencies: + '@codemirror/language': 6.12.4 + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@lezer/common': 1.5.2 + + '@codemirror/commands@6.10.4': + dependencies: + '@codemirror/language': 6.12.4 + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@lezer/common': 1.5.2 + + '@codemirror/lang-javascript@6.2.5': + dependencies: + '@codemirror/autocomplete': 6.20.3 + '@codemirror/language': 6.12.4 + '@codemirror/lint': 6.9.7 + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@lezer/common': 1.5.2 + '@lezer/javascript': 1.5.4 + + '@codemirror/lang-python@6.2.1': + dependencies: + '@codemirror/autocomplete': 6.20.3 + '@codemirror/language': 6.12.4 + '@codemirror/state': 6.7.1 + '@lezer/common': 1.5.2 + '@lezer/python': 1.1.19 + + '@codemirror/lang-sql@6.10.0': + dependencies: + '@codemirror/autocomplete': 6.20.3 + '@codemirror/language': 6.12.4 + '@codemirror/state': 6.7.1 + '@lezer/common': 1.5.2 + '@lezer/highlight': 1.2.3 + '@lezer/lr': 1.4.10 + + '@codemirror/language@6.12.4': + dependencies: + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@lezer/common': 1.5.2 + '@lezer/highlight': 1.2.3 + '@lezer/lr': 1.4.10 + style-mod: 4.1.3 + + '@codemirror/lint@6.9.7': + dependencies: + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + crelt: 1.0.7 + + '@codemirror/merge@6.12.2': + dependencies: + '@codemirror/language': 6.12.4 + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@lezer/highlight': 1.2.3 + style-mod: 4.1.3 + + '@codemirror/search@6.7.1': + dependencies: + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + crelt: 1.0.7 + + '@codemirror/state@6.7.1': + dependencies: + '@marijn/find-cluster-break': 1.0.3 + + '@codemirror/view@6.43.6': + dependencies: + '@codemirror/state': 6.7.1 + crelt: 1.0.7 + style-mod: 4.1.3 + w3c-keyname: 2.2.8 + + '@coze-editor/code-language-json@0.1.0-alpha.868621(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@coze-editor/code-language-shared@0.1.0-alpha.868621(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2))': + dependencies: + '@codemirror/autocomplete': 6.20.3 + '@codemirror/language': 6.12.4 + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@coze-editor/code-language-shared': 0.1.0-alpha.868621(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@coze-editor/extension-lint': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + '@coze-editor/lezer-parser-json': 0.1.0-alpha.868621 + '@coze-editor/parser-json': 0.1.0-alpha.868621 + '@lezer/json': 1.0.3 + '@lukeed/uuid': 2.0.1 + text-mapping: 1.0.1 + vscode-json-languageservice: 5.7.2 + vscode-uri: 3.1.0 + + '@coze-editor/code-language-python@0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@coze-editor/code-language-shared@0.1.0-alpha.868621(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2))': + dependencies: + '@codemirror/lang-python': 6.2.1 + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@coze-editor/code-language-shared': 0.1.0-alpha.868621(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + + '@coze-editor/code-language-shared@0.1.0-alpha.868621(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2)': + dependencies: + '@codemirror/autocomplete': 6.20.3 + '@codemirror/language': 6.12.4 + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@coze-editor/extension-lint': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + '@coze-editor/utils': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + mitt: 3.0.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.18.0 + transitivePeerDependencies: + - '@lezer/common' + + '@coze-editor/code-language-shell@0.1.0-alpha.868621(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@coze-editor/code-language-shared@0.1.0-alpha.868621(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2))': + dependencies: + '@codemirror/language': 6.12.4 + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@coze-editor/code-language-shared': 0.1.0-alpha.868621(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + + '@coze-editor/code-language-sql@0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@coze-editor/code-language-shared@0.1.0-alpha.868621(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2))': + dependencies: + '@codemirror/lang-sql': 6.10.0 + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@coze-editor/code-language-shared': 0.1.0-alpha.868621(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + + '@coze-editor/code-language-typescript@0.1.0-alpha.868621(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@coze-editor/code-language-shared@0.1.0-alpha.868621(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2))(typescript@5.9.3)': + dependencies: + '@codemirror/lang-javascript': 6.2.5 + '@codemirror/language': 6.12.4 + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@coze-editor/code-language-shared': 0.1.0-alpha.868621(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@lukeed/uuid': 2.0.1 + '@typescript/vfs': 1.6.4(typescript@5.9.3) + comlink: 4.4.2 + lz-string: 1.5.0 + mitt: 3.0.1 + typescript: 5.9.3 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.18.0 + vscode-uri: 3.1.0 + transitivePeerDependencies: + - supports-color + + '@coze-editor/core-plugins@0.1.0-alpha.868621(@codemirror/commands@6.10.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2)': + dependencies: + '@codemirror/commands': 6.10.4 + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@coze-editor/core': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + '@coze-editor/extension-placeholder': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + es-toolkit: 1.50.0 + transitivePeerDependencies: + - '@lezer/common' + + '@coze-editor/core@0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)': + dependencies: + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + mitt: 3.0.1 + + '@coze-editor/editor@0.1.0-alpha.868621(@babel/core@8.0.1)(@babel/template@8.0.0)(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/merge@6.12.2)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2)(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(vue@3.5.40(typescript@5.9.3))': + dependencies: + '@codemirror/commands': 6.10.4 + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@coze-editor/code-language-json': 0.1.0-alpha.868621(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@coze-editor/code-language-shared@0.1.0-alpha.868621(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2)) + '@coze-editor/code-language-python': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@coze-editor/code-language-shared@0.1.0-alpha.868621(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2)) + '@coze-editor/code-language-shared': 0.1.0-alpha.868621(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@coze-editor/code-language-shell': 0.1.0-alpha.868621(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@coze-editor/code-language-shared@0.1.0-alpha.868621(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2)) + '@coze-editor/code-language-sql': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@coze-editor/code-language-shared@0.1.0-alpha.868621(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2)) + '@coze-editor/code-language-typescript': 0.1.0-alpha.868621(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@coze-editor/code-language-shared@0.1.0-alpha.868621(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2))(typescript@5.9.3) + '@coze-editor/core': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + '@coze-editor/extension-json-ast': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@coze-editor/extension-json-empty-string-value-completion': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@coze-editor/extension-json-hover': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@coze-editor/extension-json-unnecessary-properties': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@coze-editor/extension-regexp-decorator': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + '@coze-editor/extensions': 0.1.0-alpha.868621(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + '@coze-editor/preset-code': 0.1.0-alpha.868621(@codemirror/commands@6.10.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@coze-editor/code-language-shared@0.1.0-alpha.868621(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2))(@lezer/common@1.5.2) + '@coze-editor/preset-expression': 0.1.0-alpha.868621(@codemirror/commands@6.10.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@coze-editor/preset-none': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + '@coze-editor/preset-prompt': 0.1.0-alpha.868621(@codemirror/commands@6.10.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + '@coze-editor/preset-universal': 0.1.0-alpha.868621(@codemirror/commands@6.10.4)(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@coze-editor/preset-variable': 0.1.0-alpha.868621(@codemirror/commands@6.10.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + '@coze-editor/react': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@coze-editor/react-components': 0.1.0-alpha.868621(@babel/core@8.0.1)(@babel/template@8.0.0)(@codemirror/commands@6.10.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@coze-editor/react@0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@lezer/common@1.5.2)(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@coze-editor/react-hooks': 0.1.0-alpha.868621(@codemirror/commands@6.10.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@coze-editor/react@0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@coze-editor/react-merge': 0.1.0-alpha.868621(@codemirror/merge@6.12.2)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@coze-editor/react@0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@coze-editor/utils': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@coze-editor/vscode': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + '@coze-editor/vue': 0.1.0-alpha.868621(@codemirror/commands@6.10.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2)(vue@3.5.40(typescript@5.9.3)) + '@coze-editor/vue-components': 0.1.0-alpha.868621(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@coze-editor/vue@0.1.0-alpha.868621(@codemirror/commands@6.10.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2)(vue@3.5.40(typescript@5.9.3)))(@lezer/common@1.5.2)(vue@3.5.40(typescript@5.9.3)) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + transitivePeerDependencies: + - '@babel/core' + - '@babel/template' + - '@codemirror/autocomplete' + - '@codemirror/language' + - '@codemirror/merge' + - '@lezer/common' + - '@types/react' + - supports-color + - typescript + - vue + + '@coze-editor/extension-completion-icons@0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)': + dependencies: + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + + '@coze-editor/extension-json-ast@0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2)': + dependencies: + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@coze-editor/parser-json': 0.1.0-alpha.868621 + '@coze-editor/utils': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + vscode-languageserver-textdocument: 1.0.12 + transitivePeerDependencies: + - '@lezer/common' + + '@coze-editor/extension-json-empty-string-value-completion@0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2)': + dependencies: + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@coze-editor/extension-json-ast': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@coze-editor/utils': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + transitivePeerDependencies: + - '@lezer/common' + + '@coze-editor/extension-json-hover@0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2)': + dependencies: + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@coze-editor/extension-json-ast': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@coze-editor/utils': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + transitivePeerDependencies: + - '@lezer/common' + + '@coze-editor/extension-json-unnecessary-properties@0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2)': + dependencies: + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@coze-editor/extension-json-ast': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@coze-editor/utils': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + transitivePeerDependencies: + - '@lezer/common' + + '@coze-editor/extension-links@0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)': + dependencies: + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + + '@coze-editor/extension-lint@0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)': + dependencies: + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + crelt: 1.0.7 + + '@coze-editor/extension-placeholder@0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2)': + dependencies: + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@coze-editor/utils': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + transitivePeerDependencies: + - '@lezer/common' + + '@coze-editor/extension-regexp-decorator@0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)': + dependencies: + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + + '@coze-editor/extension-scrollbar@0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)': + dependencies: + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + overlayscrollbars: 2.16.0 + + '@coze-editor/extensions@0.1.0-alpha.868621(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)': + dependencies: + '@codemirror/language': 6.12.4 + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@coze-editor/extension-placeholder': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@coze-editor/lezer-parser-template': 0.1.0-alpha.868621 + '@coze-editor/utils': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@lezer/common': 1.5.2 + crelt: 1.0.7 + es-toolkit: 1.50.0 + + '@coze-editor/lezer-parser-jinja2@0.1.0-alpha.868621': + dependencies: + '@lezer/highlight': 1.2.3 + '@lezer/lr': 1.4.10 + + '@coze-editor/lezer-parser-json@0.1.0-alpha.868621': + dependencies: + '@lezer/highlight': 1.2.3 + '@lezer/lr': 1.4.10 + + '@coze-editor/lezer-parser-template@0.1.0-alpha.868621': + dependencies: + '@lezer/highlight': 1.2.3 + '@lezer/lr': 1.4.10 + + '@coze-editor/parser-json@0.1.0-alpha.868621': + dependencies: + '@vscode/l10n': 0.0.18 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.18.0 + + '@coze-editor/preset-code@0.1.0-alpha.868621(@codemirror/commands@6.10.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@coze-editor/code-language-shared@0.1.0-alpha.868621(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2))(@lezer/common@1.5.2)': + dependencies: + '@codemirror/autocomplete': 6.20.3 + '@codemirror/commands': 6.10.4 + '@codemirror/language': 6.12.4 + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@coze-editor/code-language-shared': 0.1.0-alpha.868621(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@coze-editor/core': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + '@coze-editor/core-plugins': 0.1.0-alpha.868621(@codemirror/commands@6.10.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@coze-editor/extension-completion-icons': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + '@coze-editor/extension-links': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + '@coze-editor/extension-lint': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + '@coze-editor/extension-scrollbar': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + '@coze-editor/extensions': 0.1.0-alpha.868621(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + '@coze-editor/preset-universal': 0.1.0-alpha.868621(@codemirror/commands@6.10.4)(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@coze-editor/utils': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@coze-editor/vscode': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + '@lezer/highlight': 1.2.3 + '@nozbe/microfuzz': 1.0.0 + '@shikijs/langs': 3.12.3 + '@shikijs/themes': 3.12.3 + codemirror-shiki: 0.2.5(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(shiki@3.23.0) + marked: 15.0.12 + marked-shiki: 1.2.1(marked@15.0.12)(shiki@3.23.0) + shiki: 3.23.0 + text-mapping: 1.0.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.18.0 + transitivePeerDependencies: + - '@lezer/common' + + '@coze-editor/preset-expression@0.1.0-alpha.868621(@codemirror/commands@6.10.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2)': + dependencies: + '@codemirror/autocomplete': 6.20.3 + '@codemirror/commands': 6.10.4 + '@codemirror/language': 6.12.4 + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@coze-editor/core': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + '@coze-editor/core-plugins': 0.1.0-alpha.868621(@codemirror/commands@6.10.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@coze-editor/extensions': 0.1.0-alpha.868621(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + transitivePeerDependencies: + - '@lezer/common' + + '@coze-editor/preset-none@0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)': + dependencies: + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@coze-editor/core': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + + '@coze-editor/preset-prompt@0.1.0-alpha.868621(@codemirror/commands@6.10.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)': + dependencies: + '@codemirror/autocomplete': 6.20.3 + '@codemirror/language': 6.12.4 + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@coze-editor/core': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + '@coze-editor/core-plugins': 0.1.0-alpha.868621(@codemirror/commands@6.10.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@coze-editor/extensions': 0.1.0-alpha.868621(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + '@coze-editor/lezer-parser-jinja2': 0.1.0-alpha.868621 + '@coze-editor/preset-expression': 0.1.0-alpha.868621(@codemirror/commands@6.10.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@lezer/common': 1.5.2 + '@lezer/html': 1.3.13 + '@lezer/markdown': 1.7.2 + transitivePeerDependencies: + - '@codemirror/commands' + + '@coze-editor/preset-universal@0.1.0-alpha.868621(@codemirror/commands@6.10.4)(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2)': + dependencies: + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@coze-editor/core': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + '@coze-editor/core-plugins': 0.1.0-alpha.868621(@codemirror/commands@6.10.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@coze-editor/extensions': 0.1.0-alpha.868621(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + transitivePeerDependencies: + - '@codemirror/commands' + - '@codemirror/language' + - '@lezer/common' + + '@coze-editor/preset-variable@0.1.0-alpha.868621(@codemirror/commands@6.10.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)': + dependencies: + '@codemirror/autocomplete': 6.20.3 + '@codemirror/commands': 6.10.4 + '@codemirror/language': 6.12.4 + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@coze-editor/core': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + '@coze-editor/core-plugins': 0.1.0-alpha.868621(@codemirror/commands@6.10.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@coze-editor/extensions': 0.1.0-alpha.868621(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + '@coze-editor/preset-expression': 0.1.0-alpha.868621(@codemirror/commands@6.10.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@coze-editor/utils': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@lezer/common': 1.5.2 + '@lezer/javascript': 1.5.4 + '@lezer/python': 1.1.19 + + '@coze-editor/react-components@0.1.0-alpha.868621(@babel/core@8.0.1)(@babel/template@8.0.0)(@codemirror/commands@6.10.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@coze-editor/react@0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@lezer/common@1.5.2)(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@codemirror/language': 6.12.4 + '@codemirror/merge': 6.12.2 + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@coze-editor/extension-placeholder': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@coze-editor/extensions': 0.1.0-alpha.868621(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + '@coze-editor/react': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@coze-editor/react-hooks': 0.1.0-alpha.868621(@codemirror/commands@6.10.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@coze-editor/react@0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@coze-editor/utils': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@coze-editor/vscode': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + '@floating-ui/dom': 1.8.0 + '@lezer/highlight': 1.2.3 + '@lukeed/uuid': 2.0.1 + '@types/hash-sum': 1.0.2 + hash-sum: 2.0.0 + jotai: 2.20.2(@babel/core@8.0.1)(@babel/template@8.0.0)(@types/react@18.3.31)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + transitivePeerDependencies: + - '@babel/core' + - '@babel/template' + - '@codemirror/commands' + - '@lezer/common' + - '@types/react' + + '@coze-editor/react-hooks@0.1.0-alpha.868621(@codemirror/commands@6.10.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@coze-editor/react@0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@codemirror/commands': 6.10.4 + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@coze-editor/react': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@coze-editor/react-merge@0.1.0-alpha.868621(@codemirror/merge@6.12.2)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@coze-editor/react@0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@codemirror/merge': 6.12.2 + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@coze-editor/react': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@coze-editor/react@0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@coze-editor/core': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@coze-editor/utils@0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2)': + dependencies: + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@lezer/common': 1.5.2 + + '@coze-editor/vscode@0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)': + dependencies: + '@codemirror/search': 6.7.1 + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@lezer/highlight': 1.2.3 + crelt: 1.0.7 + + '@coze-editor/vue-components@0.1.0-alpha.868621(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@coze-editor/vue@0.1.0-alpha.868621(@codemirror/commands@6.10.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2)(vue@3.5.40(typescript@5.9.3)))(@lezer/common@1.5.2)(vue@3.5.40(typescript@5.9.3))': + dependencies: + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@coze-editor/extension-placeholder': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@coze-editor/extensions': 0.1.0-alpha.868621(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + '@coze-editor/utils': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@coze-editor/vue': 0.1.0-alpha.868621(@codemirror/commands@6.10.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2)(vue@3.5.40(typescript@5.9.3)) + '@floating-ui/dom': 1.8.0 + vue: 3.5.40(typescript@5.9.3) + transitivePeerDependencies: + - '@codemirror/language' + - '@lezer/common' + + '@coze-editor/vue@0.1.0-alpha.868621(@codemirror/commands@6.10.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2)(vue@3.5.40(typescript@5.9.3))': + dependencies: + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@coze-editor/core': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6) + '@coze-editor/core-plugins': 0.1.0-alpha.868621(@codemirror/commands@6.10.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + '@coze-editor/extension-placeholder': 0.1.0-alpha.868621(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2) + vue: 3.5.40(typescript@5.9.3) + transitivePeerDependencies: + - '@codemirror/commands' + - '@lezer/common' + + '@cspotcode/source-map-support@0.8.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + + '@dagrejs/graphlib@2.2.2': {} + + '@dnd-kit/accessibility@3.1.1(react@18.3.1)': + dependencies: + react: 18.3.1 + tslib: 2.8.1 + + '@dnd-kit/core@6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@dnd-kit/accessibility': 3.1.1(react@18.3.1) + '@dnd-kit/utilities': 3.2.2(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tslib: 2.8.1 + + '@dnd-kit/sortable@7.0.2(@dnd-kit/core@6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': + dependencies: + '@dnd-kit/core': 6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@dnd-kit/utilities': 3.2.2(react@18.3.1) + react: 18.3.1 + tslib: 2.8.1 + + '@dnd-kit/utilities@3.2.2(react@18.3.1)': + dependencies: + react: 18.3.1 + tslib: 2.8.1 + + '@douyinfe/semi-animation-react@2.101.1': + dependencies: + '@douyinfe/semi-animation': 2.101.1 + '@douyinfe/semi-animation-styled': 2.101.1 + classnames: 2.5.1 + + '@douyinfe/semi-animation-styled@2.101.1': {} + + '@douyinfe/semi-animation@2.101.1': + dependencies: + bezier-easing: 2.1.0 + + '@douyinfe/semi-foundation@2.101.1': + dependencies: + '@douyinfe/semi-animation': 2.101.1 + '@douyinfe/semi-json-viewer-core': 2.101.1 + '@mdx-js/mdx': 3.1.1 + async-validator: 3.5.2 + classnames: 2.5.1 + date-fns: 2.30.0 + date-fns-tz: 1.3.8(date-fns@2.30.0) + fast-copy: 3.0.2 + lodash: 4.18.1 + lottie-web: 5.13.0 + memoize-one: 5.2.1 + prismjs: 1.30.0 + remark-gfm: 4.0.1 + scroll-into-view-if-needed: 2.2.31 + transitivePeerDependencies: + - supports-color + + '@douyinfe/semi-icons@2.101.1(react@18.3.1)': + dependencies: + classnames: 2.5.1 + react: 18.3.1 + + '@douyinfe/semi-illustrations@2.101.1(react@18.3.1)': + dependencies: + react: 18.3.1 + + '@douyinfe/semi-json-viewer-core@2.101.1': + dependencies: + jsonc-parser: 3.3.1 + + '@douyinfe/semi-theme-default@2.101.1': {} + + '@douyinfe/semi-ui@2.101.1(@floating-ui/dom@1.8.0)(@tiptap/suggestion@3.29.0(@floating-ui/dom@1.8.0)(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0))(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@dnd-kit/core': 6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@dnd-kit/sortable': 7.0.2(@dnd-kit/core@6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + '@dnd-kit/utilities': 3.2.2(react@18.3.1) + '@douyinfe/semi-animation': 2.101.1 + '@douyinfe/semi-animation-react': 2.101.1 + '@douyinfe/semi-foundation': 2.101.1 + '@douyinfe/semi-icons': 2.101.1(react@18.3.1) + '@douyinfe/semi-illustrations': 2.101.1(react@18.3.1) + '@douyinfe/semi-theme-default': 2.101.1 + '@tiptap/core': 3.29.0(@tiptap/pm@3.29.0) + '@tiptap/extension-document': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0)) + '@tiptap/extension-hard-break': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0)) + '@tiptap/extension-image': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0)) + '@tiptap/extension-mention': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0)(@tiptap/suggestion@3.29.0(@floating-ui/dom@1.8.0)(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0)) + '@tiptap/extension-paragraph': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0)) + '@tiptap/extension-text': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0)) + '@tiptap/extension-text-align': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0)) + '@tiptap/extension-text-style': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0)) + '@tiptap/extensions': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0) + '@tiptap/pm': 3.29.0 + '@tiptap/react': 3.29.0(@floating-ui/dom@1.8.0)(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0)(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tiptap/starter-kit': 3.29.0 + async-validator: 3.5.2 + classnames: 2.5.1 + copy-text-to-clipboard: 2.2.0 + date-fns: 2.30.0 + date-fns-tz: 1.3.8(date-fns@2.30.0) + fast-copy: 3.0.2 + jsonc-parser: 3.3.1 + lodash: 4.18.1 + prop-types: 15.8.1 + prosemirror-state: 1.4.4 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-resizable: 3.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-window: 1.8.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + scroll-into-view-if-needed: 2.2.31 + utility-types: 3.11.0 + transitivePeerDependencies: + - '@floating-ui/dom' + - '@tiptap/suggestion' + - '@types/react' + - '@types/react-dom' + - supports-color + + '@emnapi/core@1.10.0': + dependencies: + '@emnapi/wasi-threads': 1.2.1 + tslib: 2.8.1 + optional: true + + '@emnapi/core@1.11.3': + dependencies: + '@emnapi/wasi-threads': 1.2.3 + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.10.0': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.11.3': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.2.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.2.3': + dependencies: + tslib: 2.8.1 + optional: true + + '@emotion/is-prop-valid@1.4.0': + dependencies: + '@emotion/memoize': 0.9.0 + + '@emotion/memoize@0.9.0': {} + + '@emotion/stylis@0.8.5': {} + + '@emotion/unitless@0.7.5': {} + + '@eslint-community/eslint-utils@4.10.1(eslint@9.39.5(jiti@2.7.0))': + dependencies: + eslint: 9.39.5(jiti@2.7.0) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.2': {} + + '@eslint/config-array@0.21.2': + dependencies: + '@eslint/object-schema': 2.1.7 + debug: 4.4.3(supports-color@5.5.0) + minimatch: 3.1.5 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.4.2': + dependencies: + '@eslint/core': 0.17.0 + + '@eslint/core@0.17.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/eslintrc@3.3.3': + dependencies: + ajv: 6.15.0 + debug: 4.4.3(supports-color@5.5.0) + espree: 10.4.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.3.0 + minimatch: 3.1.5 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/eslintrc@3.3.6': + dependencies: + ajv: 6.15.0 + debug: 4.4.3(supports-color@5.5.0) + espree: 10.4.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.3.0 + minimatch: 3.1.5 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@9.39.5': {} + + '@eslint/object-schema@2.1.7': {} + + '@eslint/plugin-kit@0.4.1': + dependencies: + '@eslint/core': 0.17.0 + levn: 0.4.1 + + '@floating-ui/core@1.8.0': + dependencies: + '@floating-ui/utils': 0.2.12 + + '@floating-ui/dom@1.8.0': + dependencies: + '@floating-ui/core': 1.8.0 + '@floating-ui/utils': 0.2.12 + + '@floating-ui/utils@0.2.12': {} + + '@flowgram.ai/background-plugin@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + + '@flowgram.ai/command@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/utils': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + + '@flowgram.ai/core@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/command': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@phosphor/messaging': 1.3.0 + '@tweenjs/tween.js': 18.6.4 + inversify: 6.2.2(reflect-metadata@0.2.2) + lodash-es: 4.18.1 + nanoid: 5.1.16 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + + '@flowgram.ai/coze-editor@1.0.12(@babel/core@8.0.1)(@babel/template@8.0.0)(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/merge@6.12.2)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@coze-editor/code-language-shared@0.1.0-alpha.868621(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2))(@lezer/common@1.5.2)(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1))(vue@3.5.40(typescript@5.9.3))': + dependencies: + '@coze-editor/code-language-typescript': 0.1.0-alpha.868621(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@coze-editor/code-language-shared@0.1.0-alpha.868621(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2))(typescript@5.9.3) + '@coze-editor/editor': 0.1.0-alpha.868621(@babel/core@8.0.1)(@babel/template@8.0.0)(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/merge@6.12.2)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2)(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)(vue@3.5.40(typescript@5.9.3)) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + styled-components: 5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1) + typescript: 5.9.3 + transitivePeerDependencies: + - '@babel/core' + - '@babel/template' + - '@codemirror/autocomplete' + - '@codemirror/language' + - '@codemirror/merge' + - '@codemirror/state' + - '@codemirror/view' + - '@coze-editor/code-language-shared' + - '@lezer/common' + - '@types/react' + - supports-color + - vue + + '@flowgram.ai/document@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + lodash-es: 4.18.1 + nanoid: 5.1.16 + reflect-metadata: 0.2.2 + transitivePeerDependencies: + - react + - react-dom + + '@flowgram.ai/editor@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/form': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/form-core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/history': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/history-node-plugin': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/i18n-plugin': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/materials-plugin': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/node': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/node-core-plugin': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/node-variable-plugin': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/playground-react': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/reactive': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/redux-devtool-plugin': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/renderer': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/shortcuts-plugin': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/variable-plugin': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + + '@flowgram.ai/eslint-config@1.0.12(@types/node@18.19.130)(jiti@2.7.0)(typescript@5.9.3)': + dependencies: + '@babel/core': 8.0.1 + '@babel/eslint-parser': 7.19.1(@babel/core@8.0.1)(eslint@9.39.5(jiti@2.7.0)) + '@babel/eslint-plugin': 7.29.7(@babel/eslint-parser@7.19.1(@babel/core@8.0.1)(eslint@9.39.5(jiti@2.7.0)))(eslint@9.39.5(jiti@2.7.0)) + '@babel/preset-env': 7.20.2(@babel/core@8.0.1) + '@babel/preset-react': 7.13.13(@babel/core@8.0.1) + '@eslint/eslintrc': 3.3.3 + '@typescript-eslint/eslint-plugin': 8.65.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/parser': 8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + eslint: 9.39.5(jiti@2.7.0) + eslint-config-prettier: 8.10.2(eslint@9.39.5(jiti@2.7.0)) + eslint-define-config: 1.12.0 + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-babel: 5.3.1(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-prettier: 4.2.5(eslint-config-prettier@8.10.2(eslint@9.39.5(jiti@2.7.0)))(eslint@9.39.5(jiti@2.7.0))(prettier@2.8.8) + eslint-plugin-react: 7.37.5(eslint@9.39.5(jiti@2.7.0)) + eslint-plugin-tsdoc: 0.2.17 + prettier: 2.8.8 + prettier-plugin-packagejson: 2.5.22(prettier@2.8.8) + ts-node: 10.9.2(@types/node@18.19.130)(typescript@5.9.3) + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - eslint-import-resolver-webpack + - eslint-plugin-import-x + - jiti + - supports-color + - typescript + + '@flowgram.ai/export-plugin@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + js-yaml: 4.3.0 + lodash-es: 4.18.1 + modern-screenshot: 4.6.7 + nanoid: 5.1.16 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + + '@flowgram.ai/form-core@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + lodash-es: 4.18.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + + '@flowgram.ai/form-materials@1.0.12(@babel/core@8.0.1)(@babel/template@8.0.0)(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/merge@6.12.2)(@coze-editor/code-language-shared@0.1.0-alpha.868621(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2))(@floating-ui/dom@1.8.0)(@lezer/common@1.5.2)(@tiptap/suggestion@3.29.0(@floating-ui/dom@1.8.0)(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0))(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1))(vue@3.5.40(typescript@5.9.3))': + dependencies: + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + '@douyinfe/semi-icons': 2.101.1(react@18.3.1) + '@douyinfe/semi-ui': 2.101.1(@floating-ui/dom@1.8.0)(@tiptap/suggestion@3.29.0(@floating-ui/dom@1.8.0)(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0))(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/coze-editor': 1.0.12(@babel/core@8.0.1)(@babel/template@8.0.0)(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/merge@6.12.2)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@coze-editor/code-language-shared@0.1.0-alpha.868621(@codemirror/autocomplete@6.20.3)(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(@lezer/common@1.5.2))(@lezer/common@1.5.2)(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1))(vue@3.5.40(typescript@5.9.3)) + '@flowgram.ai/editor': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/json-schema': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + immer: 10.1.3 + lodash-es: 4.18.1 + nanoid: 5.1.16 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + zod: 3.25.76 + transitivePeerDependencies: + - '@babel/core' + - '@babel/template' + - '@codemirror/autocomplete' + - '@codemirror/language' + - '@codemirror/merge' + - '@coze-editor/code-language-shared' + - '@floating-ui/dom' + - '@lezer/common' + - '@tiptap/suggestion' + - '@types/react' + - '@types/react-dom' + - styled-components + - supports-color + - vue + + '@flowgram.ai/form@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/reactive': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + fast-equals: 2.0.4 + lodash-es: 4.18.1 + nanoid: 5.1.16 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@flowgram.ai/free-auto-layout-plugin@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1))': + dependencies: + '@dagrejs/graphlib': 2.2.2 + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-layout-core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + styled-components: 5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1) + + '@flowgram.ai/free-container-plugin@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1))': + dependencies: + '@flowgram.ai/background-plugin': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-history-plugin': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-layout-core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/i18n': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + lodash-es: 4.18.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + styled-components: 5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1) + + '@flowgram.ai/free-group-plugin@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1))': + dependencies: + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-container-plugin': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1)) + '@flowgram.ai/free-history-plugin': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-layout-core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-layout-editor': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1)) + '@flowgram.ai/renderer': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/shortcuts-plugin': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + transitivePeerDependencies: + - styled-components + + '@flowgram.ai/free-history-plugin@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/form-core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-layout-core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/history': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + lodash-es: 4.18.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + + '@flowgram.ai/free-hover-plugin@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-layout-core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/renderer': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + + '@flowgram.ai/free-layout-core@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/form-core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/node': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/reactive': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + lodash-es: 4.18.1 + nanoid: 5.1.16 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + + '@flowgram.ai/free-layout-editor@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1))': + dependencies: + '@flowgram.ai/editor': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-auto-layout-plugin': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1)) + '@flowgram.ai/free-history-plugin': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-hover-plugin': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-layout-core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-lines-plugin': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1)) + '@flowgram.ai/free-stack-plugin': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1)) + '@flowgram.ai/history': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/select-box-plugin': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + clsx: 1.2.1 + inversify: 6.2.2(reflect-metadata@0.2.2) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + transitivePeerDependencies: + - styled-components + + '@flowgram.ai/free-lines-plugin@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1))': + dependencies: + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-layout-core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-stack-plugin': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1)) + '@flowgram.ai/renderer': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + bezier-js: 6.1.4 + clsx: 1.2.1 + inversify: 6.2.2(reflect-metadata@0.2.2) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + styled-components: 5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1) + + '@flowgram.ai/free-node-panel-plugin@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-history-plugin': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-layout-core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + + '@flowgram.ai/free-snap-plugin@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1))': + dependencies: + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-layout-core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + styled-components: 5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1) + + '@flowgram.ai/free-stack-plugin@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1))': + dependencies: + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-layout-core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + lodash-es: 4.18.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + styled-components: 5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1) + + '@flowgram.ai/history-node-plugin@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/form': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/form-core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/history': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/node': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + lodash-es: 4.18.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + + '@flowgram.ai/history@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + lodash-es: 4.18.1 + nanoid: 5.1.16 + reflect-metadata: 0.2.2 + transitivePeerDependencies: + - react + - react-dom + + '@flowgram.ai/i18n-plugin@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/i18n': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + transitivePeerDependencies: + - react + - react-dom + + '@flowgram.ai/i18n@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/utils': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + i18n-js: 4.5.3 + transitivePeerDependencies: + - react + - react-dom + + '@flowgram.ai/json-schema@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/variable-core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + lodash-es: 4.18.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + + '@flowgram.ai/materials-plugin@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/renderer': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + + '@flowgram.ai/minimap-plugin@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + lodash-es: 4.18.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + + '@flowgram.ai/node-core-plugin@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/form-core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/node': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + + '@flowgram.ai/node-variable-plugin@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/form-core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/node': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/variable-plugin': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + + '@flowgram.ai/node@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/form': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/form-core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + lodash-es: 4.18.1 + nanoid: 5.1.16 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + + '@flowgram.ai/panel-manager-plugin@1.0.12(@types/react@18.3.31)(immer@10.1.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(reflect-metadata@0.2.2)': + dependencies: + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + clsx: 1.2.1 + inversify: 6.2.2(reflect-metadata@0.2.2) + nanoid: 5.1.16 + react-dom: 18.3.1(react@18.3.1) + use-sync-external-store: 1.6.0(react@18.3.1) + zustand: 4.5.7(@types/react@18.3.31)(immer@10.1.3)(react@18.3.1) + optionalDependencies: + react: 18.3.1 + transitivePeerDependencies: + - '@types/react' + - immer + - reflect-metadata + + '@flowgram.ai/playground-react@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/background-plugin': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/shortcuts-plugin': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + + '@flowgram.ai/reactive@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/utils': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@flowgram.ai/redux-devtool-plugin@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/variable-core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + reflect-metadata: 0.2.2 + transitivePeerDependencies: + - react + - react-dom + + '@flowgram.ai/renderer@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/i18n': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + lodash-es: 4.18.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + + '@flowgram.ai/runtime-interface@1.0.12': + dependencies: + zod: 3.25.76 + + '@flowgram.ai/runtime-js@1.0.12(openai@5.23.2(zod@3.25.76))': + dependencies: + '@langchain/core': 0.3.80(openai@5.23.2(zod@3.25.76)) + '@langchain/openai': 0.5.18(@langchain/core@0.3.80(openai@5.23.2(zod@3.25.76))) + lodash-es: 4.18.1 + quickjs-emscripten: 0.32.0 + uuid: 9.0.1 + zod: 3.25.76 + transitivePeerDependencies: + - '@opentelemetry/api' + - '@opentelemetry/exporter-trace-otlp-proto' + - '@opentelemetry/sdk-trace-base' + - openai + - ws + + '@flowgram.ai/select-box-plugin@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/renderer': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + + '@flowgram.ai/shortcuts-plugin@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + reflect-metadata: 0.2.2 + transitivePeerDependencies: + - react + - react-dom + + '@flowgram.ai/ts-config@1.0.12': {} + + '@flowgram.ai/utils@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + clsx: 1.2.1 + inversify: 6.2.2(reflect-metadata@0.2.2) + nanoid: 5.1.16 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + + '@flowgram.ai/variable-core@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + fast-equals: 2.0.4 + inversify: 6.2.2(reflect-metadata@0.2.2) + lodash-es: 4.18.1 + nanoid: 5.1.16 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + rxjs: 7.8.2 + + '@flowgram.ai/variable-layout@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-layout-core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/variable-core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + reflect-metadata: 0.2.2 + transitivePeerDependencies: + - react + - react-dom + + '@flowgram.ai/variable-plugin@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/variable-core': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/variable-layout': 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + inversify: 6.2.2(reflect-metadata@0.2.2) + reflect-metadata: 0.2.2 + transitivePeerDependencies: + - react + - react-dom + + '@humanfs/core@0.19.2': + dependencies: + '@humanfs/types': 0.15.0 + + '@humanfs/node@0.16.8': + dependencies: + '@humanfs/core': 0.19.2 + '@humanfs/types': 0.15.0 + '@humanwhocodes/retry': 0.4.3 + + '@humanfs/types@0.15.0': {} + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.4.3': {} + + '@inversifyjs/common@1.4.0': {} + + '@inversifyjs/core@1.3.5(reflect-metadata@0.2.2)': + dependencies: + '@inversifyjs/common': 1.4.0 + '@inversifyjs/reflect-metadata-utils': 0.2.4(reflect-metadata@0.2.2) + transitivePeerDependencies: + - reflect-metadata + + '@inversifyjs/reflect-metadata-utils@0.2.4(reflect-metadata@0.2.2)': + dependencies: + reflect-metadata: 0.2.2 + + '@jitl/quickjs-ffi-types@0.32.0': {} + + '@jitl/quickjs-wasmfile-debug-asyncify@0.32.0': + dependencies: + '@jitl/quickjs-ffi-types': 0.32.0 + + '@jitl/quickjs-wasmfile-debug-sync@0.32.0': + dependencies: + '@jitl/quickjs-ffi-types': 0.32.0 + + '@jitl/quickjs-wasmfile-release-asyncify@0.32.0': + dependencies: + '@jitl/quickjs-ffi-types': 0.32.0 + + '@jitl/quickjs-wasmfile-release-sync@0.32.0': + dependencies: + '@jitl/quickjs-ffi-types': 0.32.0 + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@jridgewell/trace-mapping@0.3.9': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@langchain/core@0.3.80(openai@5.23.2(zod@3.25.76))': + dependencies: + '@cfworker/json-schema': 4.1.1 + ansi-styles: 5.2.0 + camelcase: 6.3.0 + decamelize: 1.2.0 + js-tiktoken: 1.0.21 + langsmith: 0.3.87(openai@5.23.2(zod@3.25.76)) + mustache: 4.2.0 + p-queue: 6.6.2 + p-retry: 4.6.2 + uuid: 10.0.0 + zod: 3.25.76 + zod-to-json-schema: 3.25.2(zod@3.25.76) + transitivePeerDependencies: + - '@opentelemetry/api' + - '@opentelemetry/exporter-trace-otlp-proto' + - '@opentelemetry/sdk-trace-base' + - openai + + '@langchain/openai@0.5.18(@langchain/core@0.3.80(openai@5.23.2(zod@3.25.76)))': + dependencies: + '@langchain/core': 0.3.80(openai@5.23.2(zod@3.25.76)) + js-tiktoken: 1.0.21 + openai: 5.23.2(zod@3.25.76) + zod: 3.25.76 + transitivePeerDependencies: + - ws + + '@lezer/common@1.5.2': {} + + '@lezer/highlight@1.2.3': + dependencies: + '@lezer/common': 1.5.2 + + '@lezer/html@1.3.13': + dependencies: + '@lezer/common': 1.5.2 + '@lezer/highlight': 1.2.3 + '@lezer/lr': 1.4.10 + + '@lezer/javascript@1.5.4': + dependencies: + '@lezer/common': 1.5.2 + '@lezer/highlight': 1.2.3 + '@lezer/lr': 1.4.10 + + '@lezer/json@1.0.3': + dependencies: + '@lezer/common': 1.5.2 + '@lezer/highlight': 1.2.3 + '@lezer/lr': 1.4.10 + + '@lezer/lr@1.4.10': + dependencies: + '@lezer/common': 1.5.2 + + '@lezer/markdown@1.7.2': + dependencies: + '@lezer/common': 1.5.2 + '@lezer/highlight': 1.2.3 + + '@lezer/python@1.1.19': + dependencies: + '@lezer/common': 1.5.2 + '@lezer/highlight': 1.2.3 + '@lezer/lr': 1.4.10 + + '@lukeed/csprng@1.1.0': {} + + '@lukeed/uuid@2.0.1': + dependencies: + '@lukeed/csprng': 1.1.0 + + '@marijn/find-cluster-break@1.0.3': {} + + '@mdx-js/mdx@3.1.1': + dependencies: + '@types/estree': 1.0.9 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.5 + '@types/mdx': 2.0.14 + acorn: 8.17.0 + collapse-white-space: 2.1.0 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-util-scope: 1.0.0 + estree-walker: 3.0.3 + hast-util-to-jsx-runtime: 2.3.6 + markdown-extensions: 2.0.0 + recma-build-jsx: 1.0.0 + recma-jsx: 1.0.1(acorn@8.17.0) + recma-stringify: 1.0.0 + rehype-recma: 1.0.0 + remark-mdx: 3.1.1 + remark-parse: 11.0.0 + remark-rehype: 11.1.2 + source-map: 0.7.6 + unified: 11.0.5 + unist-util-position-from-estree: 2.0.0 + unist-util-stringify-position: 4.0.0 + unist-util-visit: 5.1.0 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@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': {} + + '@module-federation/error-codes@0.22.0': {} + + '@module-federation/runtime-core@0.22.0': + dependencies: + '@module-federation/error-codes': 0.22.0 + '@module-federation/sdk': 0.22.0 + + '@module-federation/runtime-tools@0.22.0': + dependencies: + '@module-federation/runtime': 0.22.0 + '@module-federation/webpack-bundler-runtime': 0.22.0 + + '@module-federation/runtime@0.22.0': + dependencies: + '@module-federation/error-codes': 0.22.0 + '@module-federation/runtime-core': 0.22.0 + '@module-federation/sdk': 0.22.0 + + '@module-federation/sdk@0.22.0': {} + + '@module-federation/webpack-bundler-runtime@0.22.0': + dependencies: + '@module-federation/runtime': 0.22.0 + '@module-federation/sdk': 0.22.0 + + '@napi-rs/wasm-runtime@1.0.7': + dependencies: + '@emnapi/core': 1.11.3 + '@emnapi/runtime': 1.11.3 + '@tybys/wasm-util': 0.10.3 + optional: true + + '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': + dependencies: + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@tybys/wasm-util': 0.10.3 + optional: true + + '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': + dependencies: + eslint-scope: 5.1.1 + + '@nolyfill/is-core-module@1.0.39': {} + + '@nozbe/microfuzz@1.0.0': {} + + '@phosphor/algorithm@1.2.0': {} + + '@phosphor/collections@1.2.0': + dependencies: + '@phosphor/algorithm': 1.2.0 + + '@phosphor/messaging@1.3.0': + dependencies: + '@phosphor/algorithm': 1.2.0 + '@phosphor/collections': 1.2.0 + + '@rsbuild/core@1.7.6': + dependencies: + '@rspack/core': 1.7.12(@swc/helpers@0.5.23) + '@rspack/lite-tapable': 1.1.2 + '@swc/helpers': 0.5.23 + core-js: 3.47.0 + jiti: 2.7.0 + + '@rsbuild/plugin-less@1.6.4(@rsbuild/core@1.7.6)(@rspack/core@1.7.12(@swc/helpers@0.5.23))': + dependencies: + deepmerge: 4.3.1 + less: 4.8.0 + less-loader: 12.3.3(@rspack/core@1.7.12(@swc/helpers@0.5.23))(less@4.8.0) + reduce-configs: 1.1.2 + optionalDependencies: + '@rsbuild/core': 1.7.6 + transitivePeerDependencies: + - '@rspack/core' + - supports-color + - webpack + + '@rsbuild/plugin-react@1.4.6(@rsbuild/core@1.7.6)': + dependencies: + '@rspack/plugin-react-refresh': 1.6.2(react-refresh@0.18.0) + react-refresh: 0.18.0 + optionalDependencies: + '@rsbuild/core': 1.7.6 + transitivePeerDependencies: + - webpack-hot-middleware + + '@rspack/binding-darwin-arm64@1.7.12': + optional: true + + '@rspack/binding-darwin-x64@1.7.12': + optional: true + + '@rspack/binding-linux-arm64-gnu@1.7.12': + optional: true + + '@rspack/binding-linux-arm64-musl@1.7.12': + optional: true + + '@rspack/binding-linux-x64-gnu@1.7.12': + optional: true + + '@rspack/binding-linux-x64-musl@1.7.12': + optional: true + + '@rspack/binding-wasm32-wasi@1.7.12': + dependencies: + '@napi-rs/wasm-runtime': 1.0.7 + optional: true + + '@rspack/binding-win32-arm64-msvc@1.7.12': + optional: true + + '@rspack/binding-win32-ia32-msvc@1.7.12': + optional: true + + '@rspack/binding-win32-x64-msvc@1.7.12': + optional: true + + '@rspack/binding@1.7.12': + optionalDependencies: + '@rspack/binding-darwin-arm64': 1.7.12 + '@rspack/binding-darwin-x64': 1.7.12 + '@rspack/binding-linux-arm64-gnu': 1.7.12 + '@rspack/binding-linux-arm64-musl': 1.7.12 + '@rspack/binding-linux-x64-gnu': 1.7.12 + '@rspack/binding-linux-x64-musl': 1.7.12 + '@rspack/binding-wasm32-wasi': 1.7.12 + '@rspack/binding-win32-arm64-msvc': 1.7.12 + '@rspack/binding-win32-ia32-msvc': 1.7.12 + '@rspack/binding-win32-x64-msvc': 1.7.12 + + '@rspack/core@1.7.12(@swc/helpers@0.5.23)': + dependencies: + '@module-federation/runtime-tools': 0.22.0 + '@rspack/binding': 1.7.12 + '@rspack/lite-tapable': 1.1.0 + optionalDependencies: + '@swc/helpers': 0.5.23 + + '@rspack/lite-tapable@1.1.0': {} + + '@rspack/lite-tapable@1.1.2': {} + + '@rspack/plugin-react-refresh@1.6.2(react-refresh@0.18.0)': + dependencies: + error-stack-parser: 2.1.4 + react-refresh: 0.18.0 + + '@rtsao/scc@1.1.0': {} + + '@shikijs/core@3.23.0': + dependencies: + '@shikijs/types': 3.23.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.5 + hast-util-to-html: 9.0.5 + + '@shikijs/engine-javascript@3.23.0': + dependencies: + '@shikijs/types': 3.23.0 + '@shikijs/vscode-textmate': 10.0.2 + oniguruma-to-es: 4.3.6 + + '@shikijs/engine-oniguruma@3.23.0': + dependencies: + '@shikijs/types': 3.23.0 + '@shikijs/vscode-textmate': 10.0.2 + + '@shikijs/langs@3.12.3': + dependencies: + '@shikijs/types': 3.12.3 + + '@shikijs/langs@3.23.0': + dependencies: + '@shikijs/types': 3.23.0 + + '@shikijs/themes@3.12.3': + dependencies: + '@shikijs/types': 3.12.3 + + '@shikijs/themes@3.23.0': + dependencies: + '@shikijs/types': 3.23.0 + + '@shikijs/types@3.12.3': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.5 + + '@shikijs/types@3.23.0': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.5 + + '@shikijs/vscode-textmate@10.0.2': {} + + '@swc/helpers@0.5.23': + dependencies: + tslib: 2.8.1 + + '@tiptap/core@3.29.0(@tiptap/pm@3.29.0)': + dependencies: + '@tiptap/pm': 3.29.0 + + '@tiptap/extension-blockquote@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0)': + dependencies: + '@tiptap/core': 3.29.0(@tiptap/pm@3.29.0) + '@tiptap/pm': 3.29.0 + + '@tiptap/extension-bold@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))': + dependencies: + '@tiptap/core': 3.29.0(@tiptap/pm@3.29.0) + + '@tiptap/extension-bubble-menu@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0)': + dependencies: + '@floating-ui/dom': 1.8.0 + '@tiptap/core': 3.29.0(@tiptap/pm@3.29.0) + '@tiptap/pm': 3.29.0 + optional: true + + '@tiptap/extension-bullet-list@3.29.0(@tiptap/extension-list@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0))': + dependencies: + '@tiptap/extension-list': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0) + + '@tiptap/extension-code-block@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0)': + dependencies: + '@tiptap/core': 3.29.0(@tiptap/pm@3.29.0) + '@tiptap/pm': 3.29.0 + + '@tiptap/extension-code@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))': + dependencies: + '@tiptap/core': 3.29.0(@tiptap/pm@3.29.0) + + '@tiptap/extension-document@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))': + dependencies: + '@tiptap/core': 3.29.0(@tiptap/pm@3.29.0) + + '@tiptap/extension-dropcursor@3.29.0(@tiptap/extensions@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0))': + dependencies: + '@tiptap/extensions': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0) + + '@tiptap/extension-floating-menu@3.29.0(@floating-ui/dom@1.8.0)(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0)': + dependencies: + '@floating-ui/dom': 1.8.0 + '@tiptap/core': 3.29.0(@tiptap/pm@3.29.0) + '@tiptap/pm': 3.29.0 + optional: true + + '@tiptap/extension-gapcursor@3.29.0(@tiptap/extensions@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0))': + dependencies: + '@tiptap/extensions': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0) + + '@tiptap/extension-hard-break@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))': + dependencies: + '@tiptap/core': 3.29.0(@tiptap/pm@3.29.0) + + '@tiptap/extension-heading@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))': + dependencies: + '@tiptap/core': 3.29.0(@tiptap/pm@3.29.0) + + '@tiptap/extension-horizontal-rule@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0)': + dependencies: + '@tiptap/core': 3.29.0(@tiptap/pm@3.29.0) + '@tiptap/pm': 3.29.0 + + '@tiptap/extension-image@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))': + dependencies: + '@tiptap/core': 3.29.0(@tiptap/pm@3.29.0) + + '@tiptap/extension-italic@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))': + dependencies: + '@tiptap/core': 3.29.0(@tiptap/pm@3.29.0) + + '@tiptap/extension-link@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0)': + dependencies: + '@tiptap/core': 3.29.0(@tiptap/pm@3.29.0) + '@tiptap/pm': 3.29.0 + linkifyjs: 4.3.3 + + '@tiptap/extension-list-item@3.29.0(@tiptap/extension-list@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0))': + dependencies: + '@tiptap/extension-list': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0) + + '@tiptap/extension-list-keymap@3.29.0(@tiptap/extension-list@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0))': + dependencies: + '@tiptap/extension-list': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0) + + '@tiptap/extension-list@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0)': + dependencies: + '@tiptap/core': 3.29.0(@tiptap/pm@3.29.0) + '@tiptap/pm': 3.29.0 + + '@tiptap/extension-mention@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0)(@tiptap/suggestion@3.29.0(@floating-ui/dom@1.8.0)(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0))': + dependencies: + '@tiptap/core': 3.29.0(@tiptap/pm@3.29.0) + '@tiptap/pm': 3.29.0 + '@tiptap/suggestion': 3.29.0(@floating-ui/dom@1.8.0)(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0) + + '@tiptap/extension-ordered-list@3.29.0(@tiptap/extension-list@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0))': + dependencies: + '@tiptap/extension-list': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0) + + '@tiptap/extension-paragraph@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))': + dependencies: + '@tiptap/core': 3.29.0(@tiptap/pm@3.29.0) + + '@tiptap/extension-strike@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))': + dependencies: + '@tiptap/core': 3.29.0(@tiptap/pm@3.29.0) + + '@tiptap/extension-text-align@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))': + dependencies: + '@tiptap/core': 3.29.0(@tiptap/pm@3.29.0) + + '@tiptap/extension-text-style@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))': + dependencies: + '@tiptap/core': 3.29.0(@tiptap/pm@3.29.0) + + '@tiptap/extension-text@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))': + dependencies: + '@tiptap/core': 3.29.0(@tiptap/pm@3.29.0) + + '@tiptap/extension-underline@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))': + dependencies: + '@tiptap/core': 3.29.0(@tiptap/pm@3.29.0) + + '@tiptap/extensions@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0)': + dependencies: + '@tiptap/core': 3.29.0(@tiptap/pm@3.29.0) + '@tiptap/pm': 3.29.0 + + '@tiptap/pm@3.29.0': + dependencies: + prosemirror-changeset: 2.4.1 + prosemirror-commands: 1.7.1 + prosemirror-dropcursor: 1.8.3 + prosemirror-gapcursor: 1.4.1 + prosemirror-history: 1.5.0 + prosemirror-inputrules: 1.5.1 + prosemirror-keymap: 1.2.3 + prosemirror-model: 1.25.11 + prosemirror-schema-list: 1.5.1 + prosemirror-state: 1.4.4 + prosemirror-tables: 1.8.5 + prosemirror-transform: 1.12.0 + prosemirror-view: 1.42.2 + + '@tiptap/react@3.29.0(@floating-ui/dom@1.8.0)(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0)(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@tiptap/core': 3.29.0(@tiptap/pm@3.29.0) + '@tiptap/pm': 3.29.0 + '@types/react': 18.3.31 + '@types/react-dom': 18.3.7(@types/react@18.3.31) + '@types/use-sync-external-store': 0.0.6 + fast-equals: 5.4.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + use-sync-external-store: 1.6.0(react@18.3.1) + optionalDependencies: + '@tiptap/extension-bubble-menu': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0) + '@tiptap/extension-floating-menu': 3.29.0(@floating-ui/dom@1.8.0)(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0) + transitivePeerDependencies: + - '@floating-ui/dom' + + '@tiptap/starter-kit@3.29.0': + dependencies: + '@tiptap/core': 3.29.0(@tiptap/pm@3.29.0) + '@tiptap/extension-blockquote': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0) + '@tiptap/extension-bold': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0)) + '@tiptap/extension-bullet-list': 3.29.0(@tiptap/extension-list@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0)) + '@tiptap/extension-code': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0)) + '@tiptap/extension-code-block': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0) + '@tiptap/extension-document': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0)) + '@tiptap/extension-dropcursor': 3.29.0(@tiptap/extensions@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0)) + '@tiptap/extension-gapcursor': 3.29.0(@tiptap/extensions@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0)) + '@tiptap/extension-hard-break': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0)) + '@tiptap/extension-heading': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0)) + '@tiptap/extension-horizontal-rule': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0) + '@tiptap/extension-italic': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0)) + '@tiptap/extension-link': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0) + '@tiptap/extension-list': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0) + '@tiptap/extension-list-item': 3.29.0(@tiptap/extension-list@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0)) + '@tiptap/extension-list-keymap': 3.29.0(@tiptap/extension-list@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0)) + '@tiptap/extension-ordered-list': 3.29.0(@tiptap/extension-list@3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0)) + '@tiptap/extension-paragraph': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0)) + '@tiptap/extension-strike': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0)) + '@tiptap/extension-text': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0)) + '@tiptap/extension-underline': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0)) + '@tiptap/extensions': 3.29.0(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0) + '@tiptap/pm': 3.29.0 + + '@tiptap/suggestion@3.29.0(@floating-ui/dom@1.8.0)(@tiptap/core@3.29.0(@tiptap/pm@3.29.0))(@tiptap/pm@3.29.0)': + dependencies: + '@floating-ui/dom': 1.8.0 + '@tiptap/core': 3.29.0(@tiptap/pm@3.29.0) + '@tiptap/pm': 3.29.0 + + '@tsconfig/node10@1.0.12': {} + + '@tsconfig/node12@1.0.11': {} + + '@tsconfig/node14@1.0.3': {} + + '@tsconfig/node16@1.0.4': {} + + '@tweenjs/tween.js@18.6.4': {} + + '@tybys/wasm-util@0.10.3': + dependencies: + tslib: 2.8.1 + optional: true + + '@types/debug@4.1.13': + dependencies: + '@types/ms': 2.1.0 + + '@types/estree-jsx@1.0.5': + dependencies: + '@types/estree': 1.0.9 + + '@types/estree@1.0.9': {} + + '@types/gensync@1.0.5': {} + + '@types/hash-sum@1.0.2': {} + + '@types/hast@3.0.5': + dependencies: + '@types/unist': 3.0.3 + + '@types/hoist-non-react-statics@3.3.7(@types/react@18.3.31)': + dependencies: + '@types/react': 18.3.31 + hoist-non-react-statics: 3.3.2 + + '@types/jsesc@2.5.1': {} + + '@types/json-schema@7.0.15': {} + + '@types/json5@0.0.29': {} + + '@types/lodash-es@4.17.12': + dependencies: + '@types/lodash': 4.17.24 + + '@types/lodash@4.17.24': {} + + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/mdx@2.0.14': {} + + '@types/ms@2.1.0': {} + + '@types/node@18.19.130': + dependencies: + undici-types: 5.26.5 + + '@types/prop-types@15.7.15': {} + + '@types/react-dom@18.3.7(@types/react@18.3.31)': + dependencies: + '@types/react': 18.3.31 + + '@types/react@18.3.31': + dependencies: + '@types/prop-types': 15.7.15 + csstype: 3.2.3 + + '@types/retry@0.12.0': {} + + '@types/styled-components@5.1.36': + dependencies: + '@types/hoist-non-react-statics': 3.3.7(@types/react@18.3.31) + '@types/react': 18.3.31 + csstype: 3.2.3 + + '@types/unist@2.0.11': {} + + '@types/unist@3.0.3': {} + + '@types/use-sync-external-store@0.0.6': {} + + '@types/uuid@10.0.0': {} + + '@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3)': + dependencies: + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.65.0 + '@typescript-eslint/type-utils': 8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/utils': 8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.65.0 + eslint: 9.39.5(jiti@2.7.0) + ignore: 7.0.6 + natural-compare: 1.4.0 + ts-api-utils: 2.5.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.65.0 + '@typescript-eslint/types': 8.65.0 + '@typescript-eslint/typescript-estree': 8.65.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.65.0 + debug: 4.4.3(supports-color@5.5.0) + eslint: 9.39.5(jiti@2.7.0) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.65.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.65.0(typescript@5.9.3) + '@typescript-eslint/types': 8.65.0 + debug: 4.4.3(supports-color@5.5.0) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.65.0': + dependencies: + '@typescript-eslint/types': 8.65.0 + '@typescript-eslint/visitor-keys': 8.65.0 + + '@typescript-eslint/tsconfig-utils@8.65.0(typescript@5.9.3)': + dependencies: + typescript: 5.9.3 + + '@typescript-eslint/type-utils@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3)': + dependencies: + '@typescript-eslint/types': 8.65.0 + '@typescript-eslint/typescript-estree': 8.65.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + debug: 4.4.3(supports-color@5.5.0) + eslint: 9.39.5(jiti@2.7.0) + ts-api-utils: 2.5.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@8.65.0': {} + + '@typescript-eslint/typescript-estree@8.65.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/project-service': 8.65.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.65.0(typescript@5.9.3) + '@typescript-eslint/types': 8.65.0 + '@typescript-eslint/visitor-keys': 8.65.0 + debug: 4.4.3(supports-color@5.5.0) + minimatch: 10.2.5 + semver: 7.8.5 + tinyglobby: 0.2.17 + ts-api-utils: 2.5.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3)': + dependencies: + '@eslint-community/eslint-utils': 4.10.1(eslint@9.39.5(jiti@2.7.0)) + '@typescript-eslint/scope-manager': 8.65.0 + '@typescript-eslint/types': 8.65.0 + '@typescript-eslint/typescript-estree': 8.65.0(typescript@5.9.3) + eslint: 9.39.5(jiti@2.7.0) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@8.65.0': + dependencies: + '@typescript-eslint/types': 8.65.0 + eslint-visitor-keys: 5.0.1 + + '@typescript/vfs@1.6.4(typescript@5.9.3)': + dependencies: + debug: 4.4.3(supports-color@5.5.0) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@ungap/structured-clone@1.3.3': {} + + '@unrs/resolver-binding-android-arm-eabi@1.12.2': + optional: true + + '@unrs/resolver-binding-android-arm64@1.12.2': + optional: true + + '@unrs/resolver-binding-darwin-arm64@1.12.2': + optional: true + + '@unrs/resolver-binding-darwin-x64@1.12.2': + optional: true + + '@unrs/resolver-binding-freebsd-x64@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-arm-musleabihf@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-arm64-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-arm64-musl@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-loong64-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-loong64-musl@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-ppc64-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-riscv64-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-riscv64-musl@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-s390x-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-x64-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-x64-musl@1.12.2': + optional: true + + '@unrs/resolver-binding-openharmony-arm64@1.12.2': + optional: true + + '@unrs/resolver-binding-wasm32-wasi@1.12.2': + dependencies: + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + optional: true + + '@unrs/resolver-binding-win32-arm64-msvc@1.12.2': + optional: true + + '@unrs/resolver-binding-win32-ia32-msvc@1.12.2': + optional: true + + '@unrs/resolver-binding-win32-x64-msvc@1.12.2': + optional: true + + '@vscode/l10n@0.0.18': {} + + '@vue/compiler-core@3.5.40': + dependencies: + '@babel/parser': 7.29.7 + '@vue/shared': 3.5.40 + entities: 7.0.1 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-dom@3.5.40': + dependencies: + '@vue/compiler-core': 3.5.40 + '@vue/shared': 3.5.40 + + '@vue/compiler-sfc@3.5.40': + dependencies: + '@babel/parser': 7.29.7 + '@vue/compiler-core': 3.5.40 + '@vue/compiler-dom': 3.5.40 + '@vue/compiler-ssr': 3.5.40 + '@vue/shared': 3.5.40 + estree-walker: 2.0.2 + magic-string: 0.30.21 + postcss: 8.5.23 + source-map-js: 1.2.1 + + '@vue/compiler-ssr@3.5.40': + dependencies: + '@vue/compiler-dom': 3.5.40 + '@vue/shared': 3.5.40 + + '@vue/reactivity@3.5.40': + dependencies: + '@vue/shared': 3.5.40 + + '@vue/runtime-core@3.5.40': + dependencies: + '@vue/reactivity': 3.5.40 + '@vue/shared': 3.5.40 + + '@vue/runtime-dom@3.5.40': + dependencies: + '@vue/reactivity': 3.5.40 + '@vue/runtime-core': 3.5.40 + '@vue/shared': 3.5.40 + csstype: 3.2.3 + + '@vue/server-renderer@3.5.40': + dependencies: + '@vue/compiler-ssr': 3.5.40 + '@vue/runtime-dom': 3.5.40 + '@vue/shared': 3.5.40 + + '@vue/shared@3.5.40': {} + + acorn-jsx@5.3.2(acorn@8.17.0): + dependencies: + acorn: 8.17.0 + + acorn-walk@8.3.5: + dependencies: + acorn: 8.17.0 + + acorn@8.17.0: {} + + 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 + + ajv@6.15.0: + 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 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@5.2.0: {} + + arg@4.1.3: {} + + argparse@2.0.1: {} + + aria-query@5.3.2: {} + + array-buffer-byte-length@1.0.2: + dependencies: + call-bound: 1.0.4 + is-array-buffer: 3.0.5 + + array-includes@3.1.9: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-object-atoms: 1.1.2 + get-intrinsic: 1.3.0 + is-string: 1.1.1 + math-intrinsics: 1.1.0 + + array.prototype.findlast@1.2.5: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + es-shim-unscopables: 1.1.0 + + array.prototype.findlastindex@1.2.6: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + es-shim-unscopables: 1.1.0 + + array.prototype.flat@1.3.3: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-shim-unscopables: 1.1.0 + + array.prototype.flatmap@1.3.3: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-shim-unscopables: 1.1.0 + + array.prototype.tosorted@1.1.4: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-errors: 1.3.0 + es-shim-unscopables: 1.1.0 + + arraybuffer.prototype.slice@1.0.4: + dependencies: + array-buffer-byte-length: 1.0.2 + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + is-array-buffer: 3.0.5 + + ast-types-flow@0.0.8: {} + + astring@1.9.0: {} + + async-function@1.0.0: {} + + async-validator@3.5.2: {} + + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.1.0 + + axe-core@4.12.1: {} + + axobject-query@4.1.0: {} + + babel-plugin-polyfill-corejs2@0.3.3(@babel/core@8.0.1): + dependencies: + '@babel/compat-data': 7.29.7 + '@babel/core': 8.0.1 + '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@8.0.1) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-corejs3@0.6.0(@babel/core@8.0.1): + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@8.0.1) + core-js-compat: 3.49.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-regenerator@0.4.1(@babel/core@8.0.1): + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@8.0.1) + transitivePeerDependencies: + - supports-color + + babel-plugin-styled-components@2.3.0(@babel/core@8.0.1)(styled-components@5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1))(supports-color@5.5.0): + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-module-imports': 7.29.7(supports-color@5.5.0) + '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@8.0.1) + picomatch: 4.0.5 + styled-components: 5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1) + transitivePeerDependencies: + - supports-color + + bail@2.0.2: {} + + balanced-match@1.0.2: {} + + balanced-match@4.0.4: {} + + base64-js@1.5.1: {} + + baseline-browser-mapping@2.11.4: {} + + bezier-easing@2.1.0: {} + + bezier-js@6.1.4: {} + + bignumber.js@11.1.5: {} + + brace-expansion@1.1.16: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@5.0.8: + dependencies: + balanced-match: 4.0.4 + + browserslist@4.28.7: + dependencies: + baseline-browser-mapping: 2.11.4 + caniuse-lite: 1.0.30001806 + electron-to-chromium: 1.5.396 + node-releases: 2.0.51 + update-browserslist-db: 1.2.3(browserslist@4.28.7) + + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bind@1.0.9: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + get-intrinsic: 1.3.0 + set-function-length: 1.2.2 + + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + + callsites@3.1.0: {} + + camelcase@6.3.0: {} + + camelize@1.0.1: {} + + caniuse-lite@1.0.30001806: {} + + ccount@2.0.1: {} + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + character-entities-html4@2.1.0: {} + + character-entities-legacy@3.0.0: {} + + character-entities@2.0.2: {} + + character-reference-invalid@2.0.1: {} + + classnames@2.5.1: {} + + clsx@1.2.1: {} + + clsx@2.1.1: {} + + codemirror-shiki@0.2.5(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)(shiki@3.23.0): + dependencies: + '@codemirror/state': 6.7.1 + '@codemirror/view': 6.43.6 + shiki: 3.23.0 + + collapse-white-space@2.1.0: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + comlink@4.4.2: {} + + comma-separated-tokens@2.0.3: {} + + compute-scroll-into-view@1.0.20: {} + + concat-map@0.0.1: {} + + console-table-printer@2.16.1: + dependencies: + simple-wcswidth: 1.1.2 + + convert-source-map@2.0.0: {} + + copy-anything@3.0.5: + dependencies: + is-what: 4.1.16 + + copy-text-to-clipboard@2.2.0: {} + + core-js-compat@3.49.0: + dependencies: + browserslist: 4.28.7 + + core-js@3.47.0: {} + + create-require@1.1.1: {} + + crelt@1.0.7: {} + + cross-env@7.0.3: + dependencies: + cross-spawn: 7.0.6 + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + css-color-keywords@1.0.0: {} + + css-to-react-native@3.2.0: + dependencies: + camelize: 1.0.1 + css-color-keywords: 1.0.0 + postcss-value-parser: 4.2.0 + + csstype@3.2.3: {} + + damerau-levenshtein@1.0.8: {} + + data-view-buffer@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-length@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-offset@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + date-fns-tz@1.3.8(date-fns@2.30.0): + dependencies: + date-fns: 2.30.0 + + date-fns@2.30.0: + dependencies: + '@babel/runtime': 7.29.7 + + debug@2.6.9: + dependencies: + ms: 2.0.0 + optional: true + + debug@3.2.7: + dependencies: + ms: 2.1.3 + + debug@4.4.3(supports-color@5.5.0): + dependencies: + ms: 2.1.3 + optionalDependencies: + supports-color: 5.5.0 + + decamelize@1.2.0: {} + + decode-named-character-reference@1.3.0: + dependencies: + character-entities: 2.0.2 + + deep-is@0.1.4: {} + + deepmerge@4.3.1: {} + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + dequal@2.0.3: {} + + detect-indent@7.0.2: {} + + detect-newline@4.0.1: {} + + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + + diff@4.0.4: {} + + doctrine@2.1.0: + dependencies: + esutils: 2.0.3 + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + + electron-to-chromium@1.5.396: {} + + emoji-regex@9.2.2: {} + + empathic@2.0.1: {} + + entities@7.0.1: {} + + errno@0.1.8: + dependencies: + prr: 1.0.1 + optional: true + + error-stack-parser@2.1.4: + dependencies: + stackframe: 1.3.4 + + es-abstract-get@1.0.0: + dependencies: + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + is-callable: 1.2.7 + object-inspect: 1.13.4 + + es-abstract@1.24.2: + dependencies: + array-buffer-byte-length: 1.0.2 + arraybuffer.prototype.slice: 1.0.4 + available-typed-arrays: 1.0.7 + call-bind: 1.0.9 + call-bound: 1.0.4 + data-view-buffer: 1.0.2 + data-view-byte-length: 1.0.2 + data-view-byte-offset: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + es-set-tostringtag: 2.1.0 + es-to-primitive: 1.3.4 + function.prototype.name: 1.2.0 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + get-symbol-description: 1.1.0 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.4 + internal-slot: 1.1.0 + is-array-buffer: 3.0.5 + is-callable: 1.2.7 + is-data-view: 1.0.2 + is-negative-zero: 2.0.3 + is-regex: 1.2.1 + is-set: 2.0.3 + is-shared-array-buffer: 1.0.4 + is-string: 1.1.1 + is-typed-array: 1.1.15 + is-weakref: 1.1.1 + math-intrinsics: 1.1.0 + object-inspect: 1.13.4 + object-keys: 1.1.1 + object.assign: 4.1.7 + own-keys: 1.0.2 + regexp.prototype.flags: 1.5.4 + safe-array-concat: 1.1.4 + safe-push-apply: 1.0.0 + safe-regex-test: 1.1.0 + set-proto: 1.0.0 + stop-iteration-iterator: 1.1.0 + string.prototype.trim: 1.2.11 + string.prototype.trimend: 1.0.10 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.3 + typed-array-byte-length: 1.0.3 + typed-array-byte-offset: 1.0.4 + typed-array-length: 1.0.8 + unbox-primitive: 1.1.0 + which-typed-array: 1.1.22 + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-iterator-helpers@1.4.0: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-errors: 1.3.0 + es-set-tostringtag: 2.1.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 + iterator.prototype: 1.1.5 + math-intrinsics: 1.1.0 + + es-object-atoms@1.1.2: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.4 + + es-shim-unscopables@1.1.0: + dependencies: + hasown: 2.0.4 + + es-to-primitive@1.3.4: + dependencies: + es-abstract-get: 1.0.0 + es-define-property: 1.0.1 + es-errors: 1.3.0 + is-callable: 1.2.7 + is-date-object: 1.1.0 + is-symbol: 1.1.1 + + es-toolkit@1.50.0: {} + + esast-util-from-estree@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + unist-util-position-from-estree: 2.0.0 + + esast-util-from-js@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + acorn: 8.17.0 + esast-util-from-estree: 2.0.0 + vfile-message: 4.0.3 + + escalade@3.2.0: {} + + escape-string-regexp@4.0.0: {} + + escape-string-regexp@5.0.0: {} + + eslint-config-prettier@8.10.2(eslint@9.39.5(jiti@2.7.0)): + dependencies: + eslint: 9.39.5(jiti@2.7.0) + + eslint-define-config@1.12.0: {} + + eslint-import-resolver-node@0.3.10: + dependencies: + debug: 3.2.7 + is-core-module: 2.16.2 + resolve: 2.0.0-next.7 + transitivePeerDependencies: + - supports-color + + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.5(jiti@2.7.0)): + dependencies: + '@nolyfill/is-core-module': 1.0.39 + debug: 4.4.3(supports-color@5.5.0) + eslint: 9.39.5(jiti@2.7.0) + get-tsconfig: 4.14.0 + is-bun-module: 2.0.0 + stable-hash: 0.0.5 + tinyglobby: 0.2.17 + unrs-resolver: 1.12.2 + optionalDependencies: + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.5(jiti@2.7.0)) + transitivePeerDependencies: + - supports-color + + eslint-module-utils@2.14.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.5(jiti@2.7.0)): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + eslint: 9.39.5(jiti@2.7.0) + eslint-import-resolver-node: 0.3.10 + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.5(jiti@2.7.0)) + transitivePeerDependencies: + - supports-color + + eslint-plugin-babel@5.3.1(eslint@9.39.5(jiti@2.7.0)): + dependencies: + eslint: 9.39.5(jiti@2.7.0) + eslint-rule-composer: 0.3.0 + + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.5(jiti@2.7.0)): + dependencies: + '@rtsao/scc': 1.1.0 + array-includes: 3.1.9 + array.prototype.findlastindex: 1.2.6 + array.prototype.flat: 1.3.3 + array.prototype.flatmap: 1.3.3 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 9.39.5(jiti@2.7.0) + eslint-import-resolver-node: 0.3.10 + eslint-module-utils: 2.14.0(@typescript-eslint/parser@8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.5(jiti@2.7.0)) + hasown: 2.0.4 + is-core-module: 2.16.2 + is-glob: 4.0.3 + minimatch: 3.1.5 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.1 + semver: 6.3.1 + string.prototype.trimend: 1.0.10 + tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 8.65.0(eslint@9.39.5(jiti@2.7.0))(typescript@5.9.3) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-plugin-jsx-a11y@6.10.2(eslint@9.39.5(jiti@2.7.0)): + dependencies: + aria-query: 5.3.2 + array-includes: 3.1.9 + array.prototype.flatmap: 1.3.3 + ast-types-flow: 0.0.8 + axe-core: 4.12.1 + axobject-query: 4.1.0 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 9.39.5(jiti@2.7.0) + hasown: 2.0.4 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.9 + minimatch: 3.1.5 + object.fromentries: 2.0.8 + safe-regex-test: 1.1.0 + string.prototype.includes: 2.0.1 + + eslint-plugin-prettier@4.2.5(eslint-config-prettier@8.10.2(eslint@9.39.5(jiti@2.7.0)))(eslint@9.39.5(jiti@2.7.0))(prettier@2.8.8): + dependencies: + eslint: 9.39.5(jiti@2.7.0) + prettier: 2.8.8 + prettier-linter-helpers: 1.0.1 + optionalDependencies: + eslint-config-prettier: 8.10.2(eslint@9.39.5(jiti@2.7.0)) + + eslint-plugin-react@7.37.5(eslint@9.39.5(jiti@2.7.0)): + dependencies: + array-includes: 3.1.9 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.3 + array.prototype.tosorted: 1.1.4 + doctrine: 2.1.0 + es-iterator-helpers: 1.4.0 + eslint: 9.39.5(jiti@2.7.0) + estraverse: 5.3.0 + hasown: 2.0.4 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.5 + object.entries: 1.1.9 + object.fromentries: 2.0.8 + object.values: 1.2.1 + prop-types: 15.8.1 + resolve: 2.0.0-next.7 + semver: 6.3.1 + string.prototype.matchall: 4.0.12 + string.prototype.repeat: 1.0.0 + + eslint-plugin-tsdoc@0.2.17: + dependencies: + '@microsoft/tsdoc': 0.14.2 + '@microsoft/tsdoc-config': 0.16.2 + + eslint-rule-composer@0.3.0: {} + + eslint-scope@5.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + + eslint-scope@8.4.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@2.1.0: {} + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.2.1: {} + + eslint-visitor-keys@5.0.1: {} + + eslint@9.39.5(jiti@2.7.0): + dependencies: + '@eslint-community/eslint-utils': 4.10.1(eslint@9.39.5(jiti@2.7.0)) + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.21.2 + '@eslint/config-helpers': 0.4.2 + '@eslint/core': 0.17.0 + '@eslint/eslintrc': 3.3.6 + '@eslint/js': 9.39.5 + '@eslint/plugin-kit': 0.4.1 + '@humanfs/node': 0.16.8 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.9 + ajv: 6.15.0 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.3(supports-color@5.5.0) + escape-string-regexp: 4.0.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + esquery: 1.7.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.5 + natural-compare: 1.4.0 + optionator: 0.9.4 + optionalDependencies: + jiti: 2.7.0 + transitivePeerDependencies: + - supports-color + + espree@10.4.0: + dependencies: + acorn: 8.17.0 + acorn-jsx: 5.3.2(acorn@8.17.0) + eslint-visitor-keys: 4.2.1 + + esquery@1.7.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@4.3.0: {} + + estraverse@5.3.0: {} + + estree-util-attach-comments@3.0.0: + dependencies: + '@types/estree': 1.0.9 + + estree-util-build-jsx@3.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-walker: 3.0.3 + + estree-util-is-identifier-name@3.0.0: {} + + estree-util-scope@1.0.0: + dependencies: + '@types/estree': 1.0.9 + devlop: 1.1.0 + + estree-util-to-js@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + astring: 1.9.0 + source-map: 0.7.6 + + estree-util-visit@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/unist': 3.0.3 + + estree-walker@2.0.2: {} + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.9 + + esutils@2.0.3: {} + + eventemitter3@4.0.7: {} + + extend@3.0.2: {} + + fast-copy@3.0.2: {} + + fast-deep-equal@3.1.3: {} + + fast-diff@1.3.0: {} + + fast-equals@2.0.4: {} + + fast-equals@5.4.1: {} + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fdir@6.5.0(picomatch@4.0.5): + optionalDependencies: + picomatch: 4.0.5 + + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@4.0.1: + dependencies: + flatted: 3.4.3 + keyv: 4.5.4 + + flatted@3.4.3: {} + + for-each@0.3.5: + dependencies: + is-callable: 1.2.7 + + function-bind@1.1.2: {} + + function.prototype.name@1.2.0: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + es-define-property: 1.0.1 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + hasown: 2.0.4 + is-callable: 1.2.7 + is-document.all: 1.0.0 + + functions-have-names@1.2.3: {} + + generator-function@2.0.1: {} + + gensync@1.0.0-beta.2: {} + + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.4 + math-intrinsics: 1.1.0 + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.2 + + get-symbol-description@1.1.0: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + + get-tsconfig@4.14.0: + dependencies: + resolve-pkg-maps: 1.0.0 + + git-hooks-list@4.2.1: {} + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + globals@14.0.0: {} + + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.2.0 + + gopd@1.2.0: {} + + graceful-fs@4.2.11: + optional: true + + has-bigints@1.1.0: {} + + has-flag@3.0.0: {} + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 + + has-proto@1.2.0: + dependencies: + dunder-proto: 1.0.1 + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + hash-sum@2.0.0: {} + + hasown@2.0.4: + dependencies: + function-bind: 1.1.2 + + hast-util-to-estree@3.1.3: + dependencies: + '@types/estree': 1.0.9 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.5 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-attach-comments: 3.0.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 7.2.0 + space-separated-tokens: 2.0.2 + style-to-js: 1.1.21 + unist-util-position: 5.0.0 + zwitch: 2.0.4 + transitivePeerDependencies: + - supports-color + + hast-util-to-html@9.0.5: + dependencies: + '@types/hast': 3.0.5 + '@types/unist': 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.1 + property-information: 7.2.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + + hast-util-to-jsx-runtime@2.3.6: + dependencies: + '@types/estree': 1.0.9 + '@types/hast': 3.0.5 + '@types/unist': 3.0.3 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 7.2.0 + space-separated-tokens: 2.0.2 + style-to-js: 1.1.21 + unist-util-position: 5.0.0 + vfile-message: 4.0.3 + transitivePeerDependencies: + - supports-color + + hast-util-whitespace@3.0.0: + dependencies: + '@types/hast': 3.0.5 + + hoist-non-react-statics@3.3.2: + dependencies: + react-is: 16.13.1 + + html-void-elements@3.0.0: {} + + i18n-js@4.5.3: + dependencies: + bignumber.js: 11.1.5 + lodash: 4.18.1 + make-plural: 7.5.0 + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + optional: true + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + optional: true + + ignore@5.3.2: {} + + ignore@7.0.6: {} + + immer@10.1.3: {} + + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + import-meta-resolve@4.2.0: {} + + imurmurhash@0.1.4: {} + + inline-style-parser@0.2.7: {} + + internal-slot@1.1.0: + dependencies: + es-errors: 1.3.0 + hasown: 2.0.4 + side-channel: 1.1.1 + + inversify@6.2.2(reflect-metadata@0.2.2): + dependencies: + '@inversifyjs/common': 1.4.0 + '@inversifyjs/core': 1.3.5(reflect-metadata@0.2.2) + reflect-metadata: 0.2.2 + + is-alphabetical@2.0.1: {} + + is-alphanumerical@2.0.1: + dependencies: + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 + + is-array-buffer@3.0.5: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + + is-async-function@2.1.1: + dependencies: + async-function: 1.0.0 + call-bound: 1.0.4 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-bigint@1.1.0: + dependencies: + has-bigints: 1.1.0 + + is-boolean-object@1.2.2: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-bun-module@2.0.0: + dependencies: + semver: 7.8.5 + + is-callable@1.2.7: {} + + is-core-module@2.16.2: + dependencies: + hasown: 2.0.4 + + is-data-view@1.0.2: + dependencies: + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + is-typed-array: 1.1.15 + + is-date-object@1.1.0: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-decimal@2.0.1: {} + + is-document.all@1.0.0: + dependencies: + call-bound: 1.0.4 + + is-extglob@2.1.1: {} + + is-finalizationregistry@1.1.1: + dependencies: + call-bound: 1.0.4 + + is-generator-function@1.1.2: + dependencies: + call-bound: 1.0.4 + generator-function: 2.0.1 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-hexadecimal@2.0.1: {} + + is-map@2.0.3: {} + + is-negative-zero@2.0.3: {} + + is-number-object@1.1.1: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-plain-obj@4.1.0: {} + + is-regex@1.2.1: + dependencies: + call-bound: 1.0.4 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.4 + + is-set@2.0.3: {} + + is-shared-array-buffer@1.0.4: + dependencies: + call-bound: 1.0.4 + + is-string@1.1.1: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-symbol@1.1.1: + dependencies: + call-bound: 1.0.4 + has-symbols: 1.1.0 + safe-regex-test: 1.1.0 + + is-typed-array@1.1.15: + dependencies: + which-typed-array: 1.1.22 + + is-weakmap@2.0.2: {} + + is-weakref@1.1.1: + dependencies: + call-bound: 1.0.4 + + is-weakset@2.0.4: + dependencies: + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + + is-what@4.1.16: {} + + isarray@2.0.5: {} + + isexe@2.0.0: {} + + iterator.prototype@1.1.5: + dependencies: + define-data-property: 1.1.4 + es-object-atoms: 1.1.2 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + has-symbols: 1.1.0 + set-function-name: 2.0.2 + + jiti@2.7.0: {} + + jju@1.4.0: {} + + jotai@2.20.2(@babel/core@8.0.1)(@babel/template@8.0.0)(@types/react@18.3.31)(react@18.3.1): + optionalDependencies: + '@babel/core': 8.0.1 + '@babel/template': 8.0.0 + '@types/react': 18.3.31 + react: 18.3.1 + + js-tiktoken@1.0.21: + dependencies: + base64-js: 1.5.1 + + js-tokens@10.0.0: {} + + js-tokens@4.0.0: {} + + js-yaml@4.3.0: + dependencies: + argparse: 2.0.1 + + jsesc@3.1.0: {} + + json-buffer@3.0.1: {} + + json-schema-traverse@0.4.1: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@1.0.2: + dependencies: + minimist: 1.2.8 + + json5@2.2.3: {} + + jsonc-parser@3.3.1: {} + + jsx-ast-utils@3.3.5: + dependencies: + array-includes: 3.1.9 + array.prototype.flat: 1.3.3 + object.assign: 4.1.7 + object.values: 1.2.1 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + langsmith@0.3.87(openai@5.23.2(zod@3.25.76)): + dependencies: + '@types/uuid': 10.0.0 + chalk: 4.1.2 + console-table-printer: 2.16.1 + p-queue: 6.6.2 + semver: 7.8.5 + uuid: 10.0.0 + optionalDependencies: + openai: 5.23.2(zod@3.25.76) + + language-subtag-registry@0.3.23: {} + + language-tags@1.0.9: + dependencies: + language-subtag-registry: 0.3.23 + + less-loader@12.3.3(@rspack/core@1.7.12(@swc/helpers@0.5.23))(less@4.8.0): + dependencies: + less: 4.8.0 + optionalDependencies: + '@rspack/core': 1.7.12(@swc/helpers@0.5.23) + + less@4.8.0: + dependencies: + copy-anything: 3.0.5 + parse-node-version: 1.0.1 + optionalDependencies: + errno: 0.1.8 + graceful-fs: 4.2.11 + make-dir: 5.1.0 + mime: 1.6.0 + needle: 3.5.0 + probe-image-size: 7.3.0 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + linkifyjs@4.3.3: {} + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash-es@4.18.1: {} + + lodash.debounce@4.0.8: {} + + lodash.merge@4.6.2: {} + + lodash@4.18.1: {} + + longest-streak@3.1.0: {} + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + lottie-web@5.13.0: {} + + lru-cache@11.5.2: {} + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + lz-string@1.5.0: {} + + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + make-dir@5.1.0: + optional: true + + make-error@1.3.6: {} + + make-plural@7.5.0: {} + + markdown-extensions@2.0.0: {} + + markdown-table@3.0.4: {} + + marked-shiki@1.2.1(marked@15.0.12)(shiki@3.23.0): + dependencies: + marked: 15.0.12 + shiki: 3.23.0 + + marked@15.0.12: {} + + math-intrinsics@1.1.0: {} + + mdast-util-find-and-replace@3.0.2: + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 + + mdast-util-from-markdown@2.0.3: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.2 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-decode-string: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-autolink-literal@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.2 + micromark-util-character: 2.1.1 + + mdast-util-gfm-footnote@2.1.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + micromark-util-normalize-identifier: 2.0.1 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-strikethrough@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-table@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.4 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-task-list-item@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm@3.1.0: + dependencies: + mdast-util-from-markdown: 2.0.3 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.1.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx-expression@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.5 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx-jsx@3.2.0: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.5 + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + parse-entities: 4.0.2 + stringify-entities: 4.0.4 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.3 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx@3.0.0: + dependencies: + mdast-util-from-markdown: 2.0.3 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdxjs-esm@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.5 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.1 + + mdast-util-to-hast@13.2.1: + dependencies: + '@types/hast': 3.0.5 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.3.3 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.1 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.1.0 + vfile: 6.0.3 + + mdast-util-to-markdown@2.1.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-classify-character: 2.0.1 + micromark-util-decode-string: 2.0.1 + unist-util-visit: 5.1.0 + zwitch: 2.0.4 + + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + + memoize-one@5.2.1: {} + + micromark-core-commonmark@2.0.3: + dependencies: + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + micromark-factory-destination: 2.0.1 + micromark-factory-label: 2.0.1 + micromark-factory-space: 2.0.1 + micromark-factory-title: 2.0.1 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-html-tag-name: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-autolink-literal@2.1.0: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-footnote@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-strikethrough@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-table@2.1.1: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-tagfilter@2.0.0: + dependencies: + micromark-util-types: 2.0.2 + + micromark-extension-gfm-task-list-item@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm@3.0.0: + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.1 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-mdx-expression@3.0.1: + dependencies: + '@types/estree': 1.0.9 + devlop: 1.1.0 + micromark-factory-mdx-expression: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-mdx-jsx@3.0.2: + dependencies: + '@types/estree': 1.0.9 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + micromark-factory-mdx-expression: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + vfile-message: 4.0.3 + + micromark-extension-mdx-md@2.0.0: + dependencies: + micromark-util-types: 2.0.2 + + micromark-extension-mdxjs-esm@3.0.0: + dependencies: + '@types/estree': 1.0.9 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.3 + + micromark-extension-mdxjs@3.0.0: + dependencies: + acorn: 8.17.0 + acorn-jsx: 5.3.2(acorn@8.17.0) + micromark-extension-mdx-expression: 3.0.1 + micromark-extension-mdx-jsx: 3.0.2 + micromark-extension-mdx-md: 2.0.0 + micromark-extension-mdxjs-esm: 3.0.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-destination@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-label@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-mdx-expression@2.0.3: + dependencies: + '@types/estree': 1.0.9 + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.3 + + micromark-factory-space@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.2 + + micromark-factory-title@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-whitespace@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-character@2.1.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-chunked@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-classify-character@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-combine-extensions@2.0.1: + dependencies: + micromark-util-chunked: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-decode-numeric-character-reference@2.0.2: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-decode-string@2.0.1: + dependencies: + decode-named-character-reference: 1.3.0 + micromark-util-character: 2.1.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-symbol: 2.0.1 + + micromark-util-encode@2.0.1: {} + + micromark-util-events-to-acorn@2.0.3: + dependencies: + '@types/estree': 1.0.9 + '@types/unist': 3.0.3 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + vfile-message: 4.0.3 + + micromark-util-html-tag-name@2.0.1: {} + + micromark-util-normalize-identifier@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-resolve-all@2.0.1: + dependencies: + micromark-util-types: 2.0.2 + + micromark-util-sanitize-uri@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 + + micromark-util-subtokenize@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-symbol@2.0.1: {} + + micromark-util-types@2.0.2: {} + + micromark@4.0.2: + dependencies: + '@types/debug': 4.1.13 + debug: 4.4.3(supports-color@5.5.0) + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-combine-extensions: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-encode: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + transitivePeerDependencies: + - supports-color + + mime@1.6.0: + optional: true + + minimatch@10.2.5: + dependencies: + brace-expansion: 5.0.8 + + minimatch@3.1.5: + dependencies: + brace-expansion: 1.1.16 + + minimist@1.2.8: {} + + mitt@3.0.1: {} + + modern-screenshot@4.6.7: {} + + ms@2.0.0: + optional: true + + ms@2.1.3: {} + + mustache@4.2.0: {} + + nanoid@3.3.16: {} + + nanoid@5.1.16: {} + + napi-postinstall@0.3.4: {} + + natural-compare@1.4.0: {} + + needle@2.9.1: + dependencies: + debug: 3.2.7 + iconv-lite: 0.4.24 + sax: 1.6.1 + transitivePeerDependencies: + - supports-color + optional: true + + needle@3.5.0: + dependencies: + iconv-lite: 0.6.3 + sax: 1.6.1 + optional: true + + node-exports-info@1.6.2: + dependencies: + array.prototype.flatmap: 1.3.3 + es-errors: 1.3.0 + object.entries: 1.1.9 + semver: 6.3.1 + + node-releases@2.0.51: {} + + object-assign@4.1.1: {} + + object-inspect@1.13.4: {} + + object-keys@1.1.1: {} + + object.assign@4.1.7: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.2 + has-symbols: 1.1.0 + object-keys: 1.1.1 + + object.entries@1.1.9: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.2 + + object.fromentries@2.0.8: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-object-atoms: 1.1.2 + + object.groupby@1.0.3: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + + object.values@1.2.1: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.2 + + obug@2.1.4: {} + + oniguruma-parser@0.12.2: {} + + oniguruma-to-es@4.3.6: + dependencies: + oniguruma-parser: 0.12.2 + regex: 6.1.0 + regex-recursion: 6.0.2 + + openai@5.23.2(zod@3.25.76): + optionalDependencies: + zod: 3.25.76 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + orderedmap@2.1.1: {} + + overlayscrollbars@2.16.0: {} + + own-keys@1.0.2: + dependencies: + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + object-keys: 1.1.1 + safe-push-apply: 1.0.0 + + p-finally@1.0.0: {} + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-queue@6.6.2: + dependencies: + eventemitter3: 4.0.7 + p-timeout: 3.2.0 + + p-retry@4.6.2: + dependencies: + '@types/retry': 0.12.0 + retry: 0.13.1 + + p-timeout@3.2.0: + dependencies: + p-finally: 1.0.0 + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-entities@4.0.2: + dependencies: + '@types/unist': 2.0.11 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.3.0 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 + + parse-node-version@1.0.1: {} + + path-exists@4.0.0: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + picocolors@1.1.1: {} + + picomatch@4.0.5: {} + + possible-typed-array-names@1.1.0: {} + + postcss-value-parser@4.2.0: {} + + postcss@8.5.23: + dependencies: + nanoid: 3.3.16 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prelude-ls@1.2.1: {} + + prettier-linter-helpers@1.0.1: + dependencies: + fast-diff: 1.3.0 + + prettier-plugin-packagejson@2.5.22(prettier@2.8.8): + dependencies: + sort-package-json: 3.6.0 + optionalDependencies: + prettier: 2.8.8 + + prettier@2.8.8: {} + + prismjs@1.30.0: {} + + probe-image-size@7.3.0: + dependencies: + lodash.merge: 4.6.2 + needle: 2.9.1 + stream-parser: 0.3.1 + transitivePeerDependencies: + - supports-color + optional: true + + prop-types@15.8.1: + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + + property-information@7.2.0: {} + + prosemirror-changeset@2.4.1: + dependencies: + prosemirror-transform: 1.12.0 + + prosemirror-commands@1.7.1: + dependencies: + prosemirror-model: 1.25.11 + prosemirror-state: 1.4.4 + prosemirror-transform: 1.12.0 + + prosemirror-dropcursor@1.8.3: + dependencies: + prosemirror-state: 1.4.4 + prosemirror-transform: 1.12.0 + prosemirror-view: 1.42.2 + + prosemirror-gapcursor@1.4.1: + dependencies: + prosemirror-keymap: 1.2.3 + prosemirror-model: 1.25.11 + prosemirror-state: 1.4.4 + prosemirror-view: 1.42.2 + + prosemirror-history@1.5.0: + dependencies: + prosemirror-state: 1.4.4 + prosemirror-transform: 1.12.0 + prosemirror-view: 1.42.2 + rope-sequence: 1.3.4 + + prosemirror-inputrules@1.5.1: + dependencies: + prosemirror-state: 1.4.4 + prosemirror-transform: 1.12.0 + + prosemirror-keymap@1.2.3: + dependencies: + prosemirror-state: 1.4.4 + w3c-keyname: 2.2.8 + + prosemirror-model@1.25.11: + dependencies: + orderedmap: 2.1.1 + + prosemirror-schema-list@1.5.1: + dependencies: + prosemirror-model: 1.25.11 + prosemirror-state: 1.4.4 + prosemirror-transform: 1.12.0 + + prosemirror-state@1.4.4: + dependencies: + prosemirror-model: 1.25.11 + prosemirror-transform: 1.12.0 + prosemirror-view: 1.42.2 + + prosemirror-tables@1.8.5: + dependencies: + prosemirror-keymap: 1.2.3 + prosemirror-model: 1.25.11 + prosemirror-state: 1.4.4 + prosemirror-transform: 1.12.0 + prosemirror-view: 1.42.2 + + prosemirror-transform@1.12.0: + dependencies: + prosemirror-model: 1.25.11 + + prosemirror-view@1.42.2: + dependencies: + prosemirror-model: 1.25.11 + prosemirror-state: 1.4.4 + prosemirror-transform: 1.12.0 + + prr@1.0.1: + optional: true + + punycode@2.3.1: {} + + quickjs-emscripten-core@0.32.0: + dependencies: + '@jitl/quickjs-ffi-types': 0.32.0 + + quickjs-emscripten@0.32.0: + dependencies: + '@jitl/quickjs-wasmfile-debug-asyncify': 0.32.0 + '@jitl/quickjs-wasmfile-debug-sync': 0.32.0 + '@jitl/quickjs-wasmfile-release-asyncify': 0.32.0 + '@jitl/quickjs-wasmfile-release-sync': 0.32.0 + quickjs-emscripten-core: 0.32.0 + + react-dom@18.3.1(react@18.3.1): + dependencies: + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + + react-draggable@4.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + clsx: 2.1.1 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + react-is@16.13.1: {} + + react-refresh@0.18.0: {} + + react-resizable@3.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-draggable: 4.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + + react-window@1.8.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.29.7 + memoize-one: 5.2.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + react@18.3.1: + dependencies: + loose-envify: 1.4.0 + + recma-build-jsx@1.0.0: + dependencies: + '@types/estree': 1.0.9 + estree-util-build-jsx: 3.0.1 + vfile: 6.0.3 + + recma-jsx@1.0.1(acorn@8.17.0): + dependencies: + acorn: 8.17.0 + acorn-jsx: 5.3.2(acorn@8.17.0) + estree-util-to-js: 2.0.0 + recma-parse: 1.0.0 + recma-stringify: 1.0.0 + unified: 11.0.5 + + recma-parse@1.0.0: + dependencies: + '@types/estree': 1.0.9 + esast-util-from-js: 2.0.1 + unified: 11.0.5 + vfile: 6.0.3 + + recma-stringify@1.0.0: + dependencies: + '@types/estree': 1.0.9 + estree-util-to-js: 2.0.0 + unified: 11.0.5 + vfile: 6.0.3 + + reduce-configs@1.1.2: {} + + reflect-metadata@0.2.2: {} + + reflect.getprototypeof@1.0.10: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + which-builtin-type: 1.2.1 + + regenerate-unicode-properties@10.2.2: + dependencies: + regenerate: 1.4.2 + + regenerate@1.4.2: {} + + regex-recursion@6.0.2: + dependencies: + regex-utilities: 2.3.0 + + regex-utilities@2.3.0: {} + + regex@6.1.0: + dependencies: + regex-utilities: 2.3.0 + + regexp.prototype.flags@1.5.4: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-errors: 1.3.0 + get-proto: 1.0.1 + gopd: 1.2.0 + set-function-name: 2.0.2 + + regexpu-core@6.4.0: + dependencies: + regenerate: 1.4.2 + regenerate-unicode-properties: 10.2.2 + regjsgen: 0.8.0 + regjsparser: 0.13.2 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.2.1 + + regjsgen@0.8.0: {} + + regjsparser@0.13.2: + dependencies: + jsesc: 3.1.0 + + rehype-recma@1.0.0: + dependencies: + '@types/estree': 1.0.9 + '@types/hast': 3.0.5 + hast-util-to-estree: 3.1.3 + transitivePeerDependencies: + - supports-color + + remark-gfm@4.0.1: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-gfm: 3.1.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-mdx@3.1.1: + dependencies: + mdast-util-mdx: 3.0.0 + micromark-extension-mdxjs: 3.0.0 + transitivePeerDependencies: + - supports-color + + remark-parse@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.3 + micromark-util-types: 2.0.2 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-rehype@11.1.2: + dependencies: + '@types/hast': 3.0.5 + '@types/mdast': 4.0.4 + mdast-util-to-hast: 13.2.1 + unified: 11.0.5 + vfile: 6.0.3 + + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.2 + unified: 11.0.5 + + resolve-from@4.0.0: {} + + resolve-pkg-maps@1.0.0: {} + + resolve@1.19.0: + dependencies: + is-core-module: 2.16.2 + path-parse: 1.0.7 + + resolve@1.22.12: + dependencies: + es-errors: 1.3.0 + is-core-module: 2.16.2 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + resolve@2.0.0-next.7: + dependencies: + es-errors: 1.3.0 + is-core-module: 2.16.2 + node-exports-info: 1.6.2 + object-keys: 1.1.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + retry@0.13.1: {} + + rope-sequence@1.3.4: {} + + rxjs@7.8.2: + dependencies: + tslib: 2.8.1 + + safe-array-concat@1.1.4: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + has-symbols: 1.1.0 + isarray: 2.0.5 + + safe-push-apply@1.0.0: + dependencies: + es-errors: 1.3.0 + isarray: 2.0.5 + + safe-regex-test@1.1.0: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-regex: 1.2.1 + + safer-buffer@2.1.2: + optional: true + + sax@1.6.1: + optional: true + + scheduler@0.23.2: + dependencies: + loose-envify: 1.4.0 + + scroll-into-view-if-needed@2.2.31: + dependencies: + compute-scroll-into-view: 1.0.20 + + semver@6.3.1: {} + + semver@7.8.5: {} + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + + set-function-name@2.0.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + + set-proto@1.0.0: + dependencies: + dunder-proto: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + + shallowequal@1.1.0: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + shiki@3.23.0: + dependencies: + '@shikijs/core': 3.23.0 + '@shikijs/engine-javascript': 3.23.0 + '@shikijs/engine-oniguruma': 3.23.0 + '@shikijs/langs': 3.23.0 + '@shikijs/themes': 3.23.0 + '@shikijs/types': 3.23.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.5 + + side-channel-list@1.0.1: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + + side-channel@1.1.1: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.1 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + + simple-wcswidth@1.1.2: {} + + sort-object-keys@2.1.0: {} + + sort-package-json@3.6.0: + dependencies: + detect-indent: 7.0.2 + detect-newline: 4.0.1 + git-hooks-list: 4.2.1 + is-plain-obj: 4.1.0 + semver: 7.8.5 + sort-object-keys: 2.1.0 + tinyglobby: 0.2.17 + + source-map-js@1.2.1: {} + + source-map@0.6.1: + optional: true + + source-map@0.7.6: {} + + space-separated-tokens@2.0.2: {} + + stable-hash@0.0.5: {} + + stackframe@1.3.4: {} + + stop-iteration-iterator@1.1.0: + dependencies: + es-errors: 1.3.0 + internal-slot: 1.1.0 + + stream-parser@0.3.1: + dependencies: + debug: 2.6.9 + transitivePeerDependencies: + - supports-color + optional: true + + string.prototype.includes@2.0.1: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + + string.prototype.matchall@4.0.12: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 + regexp.prototype.flags: 1.5.4 + set-function-name: 2.0.2 + side-channel: 1.1.1 + + string.prototype.repeat@1.0.0: + dependencies: + define-properties: 1.2.1 + es-abstract: 1.24.2 + + string.prototype.trim@1.2.11: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-data-property: 1.1.4 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-object-atoms: 1.1.2 + has-property-descriptors: 1.0.2 + safe-regex-test: 1.1.0 + + string.prototype.trimend@1.0.10: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.2 + + string.prototype.trimstart@1.0.8: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-object-atoms: 1.1.2 + + stringify-entities@4.0.4: + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + + strip-bom@3.0.0: {} + + strip-json-comments@3.1.1: {} + + style-mod@4.1.3: {} + + style-to-js@1.1.21: + dependencies: + style-to-object: 1.0.14 + + style-to-object@1.0.14: + dependencies: + inline-style-parser: 0.2.7 + + styled-components@5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1): + dependencies: + '@babel/helper-module-imports': 7.29.7(supports-color@5.5.0) + '@babel/traverse': 7.29.7(supports-color@5.5.0) + '@emotion/is-prop-valid': 1.4.0 + '@emotion/stylis': 0.8.5 + '@emotion/unitless': 0.7.5 + babel-plugin-styled-components: 2.3.0(@babel/core@8.0.1)(styled-components@5.3.11(@babel/core@8.0.1)(react-dom@18.3.1(react@18.3.1))(react-is@16.13.1)(react@18.3.1))(supports-color@5.5.0) + css-to-react-native: 3.2.0 + hoist-non-react-statics: 3.3.2 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-is: 16.13.1 + shallowequal: 1.1.0 + supports-color: 5.5.0 + transitivePeerDependencies: + - '@babel/core' + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + text-mapping@1.0.1: {} + + tinyglobby@0.2.17: + dependencies: + fdir: 6.5.0(picomatch@4.0.5) + picomatch: 4.0.5 + + trim-lines@3.0.1: {} + + trough@2.2.0: {} + + ts-api-utils@2.5.0(typescript@5.9.3): + dependencies: + typescript: 5.9.3 + + ts-node@10.9.2(@types/node@18.19.130)(typescript@5.9.3): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.12 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 18.19.130 + acorn: 8.17.0 + acorn-walk: 8.3.5 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.4 + make-error: 1.3.6 + typescript: 5.9.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + + tsconfig-paths@3.15.0: + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + + tslib@2.8.1: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + typed-array-buffer@1.0.3: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-typed-array: 1.1.15 + + typed-array-byte-length@1.0.3: + dependencies: + call-bind: 1.0.9 + for-each: 0.3.5 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + + typed-array-byte-offset@1.0.4: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.9 + for-each: 0.3.5 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + reflect.getprototypeof: 1.0.10 + + typed-array-length@1.0.8: + dependencies: + call-bind: 1.0.9 + for-each: 0.3.5 + gopd: 1.2.0 + is-typed-array: 1.1.15 + possible-typed-array-names: 1.1.0 + reflect.getprototypeof: 1.0.10 + + typescript@5.9.3: {} + + unbox-primitive@1.1.0: + dependencies: + call-bound: 1.0.4 + has-bigints: 1.1.0 + has-symbols: 1.1.0 + which-boxed-primitive: 1.1.1 + + undici-types@5.26.5: {} + + unicode-canonical-property-names-ecmascript@2.0.1: {} + + unicode-match-property-ecmascript@2.0.0: + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.1 + unicode-property-aliases-ecmascript: 2.2.0 + + unicode-match-property-value-ecmascript@2.2.1: {} + + unicode-property-aliases-ecmascript@2.2.0: {} + + unified@11.0.5: + dependencies: + '@types/unist': 3.0.3 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.3 + + unist-util-is@6.0.1: + dependencies: + '@types/unist': 3.0.3 + + unist-util-position-from-estree@2.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-parents@6.0.2: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + + unist-util-visit@5.1.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 + + unrs-resolver@1.12.2: + dependencies: + napi-postinstall: 0.3.4 + optionalDependencies: + '@unrs/resolver-binding-android-arm-eabi': 1.12.2 + '@unrs/resolver-binding-android-arm64': 1.12.2 + '@unrs/resolver-binding-darwin-arm64': 1.12.2 + '@unrs/resolver-binding-darwin-x64': 1.12.2 + '@unrs/resolver-binding-freebsd-x64': 1.12.2 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.12.2 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.12.2 + '@unrs/resolver-binding-linux-arm64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-arm64-musl': 1.12.2 + '@unrs/resolver-binding-linux-loong64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-loong64-musl': 1.12.2 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-riscv64-musl': 1.12.2 + '@unrs/resolver-binding-linux-s390x-gnu': 1.12.2 + '@unrs/resolver-binding-linux-x64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-x64-musl': 1.12.2 + '@unrs/resolver-binding-openharmony-arm64': 1.12.2 + '@unrs/resolver-binding-wasm32-wasi': 1.12.2 + '@unrs/resolver-binding-win32-arm64-msvc': 1.12.2 + '@unrs/resolver-binding-win32-ia32-msvc': 1.12.2 + '@unrs/resolver-binding-win32-x64-msvc': 1.12.2 + + update-browserslist-db@1.2.3(browserslist@4.28.7): + dependencies: + browserslist: 4.28.7 + escalade: 3.2.0 + picocolors: 1.1.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + use-sync-external-store@1.6.0(react@18.3.1): + dependencies: + react: 18.3.1 + + utility-types@3.11.0: {} + + uuid@10.0.0: {} + + uuid@9.0.1: {} + + v8-compile-cache-lib@3.0.1: {} + + vfile-message@4.0.3: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.3 + + vscode-json-languageservice@5.7.2: + dependencies: + '@vscode/l10n': 0.0.18 + jsonc-parser: 3.3.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.18.0 + vscode-uri: 3.1.0 + + vscode-languageserver-textdocument@1.0.12: {} + + vscode-languageserver-types@3.18.0: {} + + vscode-uri@3.1.0: {} + + vue@3.5.40(typescript@5.9.3): + dependencies: + '@vue/compiler-dom': 3.5.40 + '@vue/compiler-sfc': 3.5.40 + '@vue/runtime-dom': 3.5.40 + '@vue/server-renderer': 3.5.40 + '@vue/shared': 3.5.40 + optionalDependencies: + typescript: 5.9.3 + + w3c-keyname@2.2.8: {} + + which-boxed-primitive@1.1.1: + dependencies: + is-bigint: 1.1.0 + is-boolean-object: 1.2.2 + is-number-object: 1.1.1 + is-string: 1.1.1 + is-symbol: 1.1.1 + + which-builtin-type@1.2.1: + dependencies: + call-bound: 1.0.4 + function.prototype.name: 1.2.0 + has-tostringtag: 1.0.2 + is-async-function: 2.1.1 + is-date-object: 1.1.0 + is-finalizationregistry: 1.1.1 + is-generator-function: 1.1.2 + is-regex: 1.2.1 + is-weakref: 1.1.1 + isarray: 2.0.5 + which-boxed-primitive: 1.1.1 + which-collection: 1.0.2 + which-typed-array: 1.1.22 + + which-collection@1.0.2: + dependencies: + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.4 + + which-typed-array@1.1.22: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.9 + call-bound: 1.0.4 + for-each: 0.3.5 + get-proto: 1.0.1 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + word-wrap@1.2.5: {} + + yallist@3.1.1: {} + + yn@3.1.1: {} + + yocto-queue@0.1.0: {} + + zod-to-json-schema@3.25.2(zod@3.25.76): + dependencies: + zod: 3.25.76 + + zod@3.25.76: {} + + zustand@4.5.7(@types/react@18.3.31)(immer@10.1.3)(react@18.3.1): + dependencies: + use-sync-external-store: 1.6.0(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.31 + immer: 10.1.3 + react: 18.3.1 + + zwitch@2.0.4: {} diff --git a/flowgram-editor/rsbuild.config.ts b/flowgram-editor/rsbuild.config.ts new file mode 100644 index 0000000..9cf314d --- /dev/null +++ b/flowgram-editor/rsbuild.config.ts @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates + * SPDX-License-Identifier: MIT + */ + +import { pluginReact } from '@rsbuild/plugin-react'; +import { pluginLess } from '@rsbuild/plugin-less'; +import { defineConfig } from '@rsbuild/core'; + +export default defineConfig({ + plugins: [pluginReact(), pluginLess()], + source: { + entry: { + index: './src/app.tsx', + }, + /** + * support inversify @injectable() and @inject decorators + */ + decorators: { + version: 'legacy', + }, + }, + html: { + title: 'FlowGram Workflow Editor', + }, + output: { + assetPrefix: '/flowgram-editor/', + distPath: { + root: '../web/public/flowgram-editor', + }, + cleanDistPath: true, + }, + tools: { + rspack: { + /** + * ignore warnings from @coze-editor/editor/language-typescript + */ + ignoreWarnings: [/Critical dependency: the request of a dependency is an expression/], + }, + }, +}); diff --git a/flowgram-editor/src/app.tsx b/flowgram-editor/src/app.tsx new file mode 100644 index 0000000..4a88be6 --- /dev/null +++ b/flowgram-editor/src/app.tsx @@ -0,0 +1,18 @@ +/** + * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates + * SPDX-License-Identifier: MIT + */ + +import { createRoot } from 'react-dom/client'; +import { unstableSetCreateRoot } from '@flowgram.ai/form-materials'; + +import { Editor } from './editor'; + +/** + * React 18/19 polyfill for form-materials + */ +unstableSetCreateRoot(createRoot); + +const app = createRoot(document.getElementById('root')!); + +app.render(); diff --git a/flowgram-editor/src/assets/icon-auto-layout.tsx b/flowgram-editor/src/assets/icon-auto-layout.tsx new file mode 100644 index 0000000..420b4b3 --- /dev/null +++ b/flowgram-editor/src/assets/icon-auto-layout.tsx @@ -0,0 +1,13 @@ +/** + * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates + * SPDX-License-Identifier: MIT + */ + +export const IconAutoLayout = ( + + + +); diff --git a/flowgram-editor/src/assets/icon-break.jpg b/flowgram-editor/src/assets/icon-break.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c06b1abeae17dac9d207d4d6c07866d5a7929d1e GIT binary patch literal 28182 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 M|LJL2$9~NH4+%g8XaE2J literal 0 HcmV?d00001 diff --git a/flowgram-editor/src/assets/icon-cancel.tsx b/flowgram-editor/src/assets/icon-cancel.tsx new file mode 100644 index 0000000..a1505da --- /dev/null +++ b/flowgram-editor/src/assets/icon-cancel.tsx @@ -0,0 +1,24 @@ +/** + * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates + * SPDX-License-Identifier: MIT + */ + +interface Props { + className?: string; + style?: React.CSSProperties; +} + +export const IconCancel = ({ className, style }: Props) => ( + + + + +); diff --git a/flowgram-editor/src/assets/icon-comment.tsx b/flowgram-editor/src/assets/icon-comment.tsx new file mode 100644 index 0000000..cc5d8dc --- /dev/null +++ b/flowgram-editor/src/assets/icon-comment.tsx @@ -0,0 +1,24 @@ +/** + * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates + * SPDX-License-Identifier: MIT + */ + +import { CSSProperties, FC } from 'react'; + +interface IconCommentProps { + style?: CSSProperties; +} + +export const IconComment: FC = ({ style }) => ( + + + + +); diff --git a/flowgram-editor/src/assets/icon-condition.svg b/flowgram-editor/src/assets/icon-condition.svg new file mode 100644 index 0000000..be9c2eb --- /dev/null +++ b/flowgram-editor/src/assets/icon-condition.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/flowgram-editor/src/assets/icon-continue.jpg b/flowgram-editor/src/assets/icon-continue.jpg new file mode 100644 index 0000000000000000000000000000000000000000..095acb2910aede2240a430c77d1ccfb708ddb268 GIT binary patch literal 38177 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 E0rJppy8r+H literal 0 HcmV?d00001 diff --git a/flowgram-editor/src/assets/icon-end.jpg b/flowgram-editor/src/assets/icon-end.jpg new file mode 100644 index 0000000000000000000000000000000000000000..46bc47dd344943235af3e58c5c5379cbf0323734 GIT binary patch literal 21016 zcmeFYcT`htv?d-!M4CwNVxd>*MI@j20TKix^e!MJ^ePd7C|#-op%)QC=#gFwAYHn2 zDFO*nq$Y?EAS9FT-kG_xX71d%zu){jCo4HCIcJ@d{hs~q{XEa!FZnxp6>tNjt*Z^V zbomnCJLLr+F9IF`F8yC_|6Jt%@)DOWk-q?#uU)!z=@!)`X250UOH|C4$h`mo0N@h! zzg`>gU$;w_sjg68rMX5+M^8DS@dn`XB`T`RSE#6|uUw&=9Y#40xWY`$a$EM{RaPSh znmc}Ma&O)jUAwDU+rD3TC@LwdsH#2sTT5H#u`bBi z#MI2(!qUp=xwDI_8^k>zFz7`v^kqn7RCG*i+}rrnv~+kzW>$92$Kn!1DYC4*qOQK7 zv8lPGwXM6Sx37QT>)_Dj)bz~k-1qqf40i43`o`wguWkI{@1sA*Cxp|pf9$#hp!)Aa z_OFKhPj*oT;nL+RSE#Pg{A1Up%fXa474sG9+p65=1AqWL9T|Y^!QJ?9 z`86Ft6!8Cc|8EHX%?qyQc9ZDvnMnuQ*{hwj(A>VWx8lWyxQ@t*ofAZ1)a5Bq!{@vV zbvid}b`m%~eZuI_E{cJv&6IRYUsuYNndoL5yCm z3BiBY^`c!90lbjXF?^78jv|N@?$x`}8!GS4;2%x|z#Au=I&!03?|bdmcuVs}-|~uE zkN+^-Ch>AQJe73WJO|0dt^$&KG25hO0d=1aDvv{ea%L)*-G>gtcc0IoV^u&0(!Io@ z5zPju){x}KPxza0cp5(VtKH8$S&sWULLT*LwH=wX}+ z2#iYTU-M)8)bd2?n#5SsT~@omtqBBmRfS2O1AC=gnWm`_m!@3a&&kAFc?jWSqj>$M zGr^khui>LGoE9v_p3R{SFVKJCGPi0NUBj}l&(HDdvAQ0f*QhC72bd`x?Nw&=tAIn^ zy8iD`l)F#$uS|QPlW2>6d?Dt5T_c~w@0$cVwFf-&fX3!d!mZ>7rmBs_F^P&6s#6;= z4(5#JoVjHtAc*t#$E&h|VY?c>>BV<<1?NO|4|A z+ohI-FA%xNfCvjx-^x|+0#+va8}Z59hXw0iAg8wzzF`th1<~NonH~Out5bonc=*uu z_*eDFe@ebp*u@uggvKu>JDa5w+K_b4Gcum_5#@TfqFB9m&JEZr@mHpc-GzPv$`;lA~}r51IA#Fta2w>ph56{mWJaM!n$Nh7r_=pJs%-)4PlwTiXSoVo+E zjypl()8YQPuC3QJ^Gw9L??o)!i%&E!aZI%rbT_~K@GoirRJjj0AAJ0RFwfo{3MRxYKQ!+rEY^)evQ<{ zrSSVn>w+?6q-hv)9L3l5HJ9RR4CCRU6>aglT4r6-Amw^K}Xh`ldyzy9DLTAi>q@ zQsQaGF}zG5I1e1(vi&Y!UFw>KRS;g$_q&Y_0=^FaZ3FIk>Q1XQR&6P~2Fih`Dm13& zy5Ea{47N|3AOv=)j-Ot{Xi$;9hVc1?YTyVn=zw6yj1ECUAyx&`jt_4dVXj$i$n|-T z8D+72|0IMXCS!J#PieG#xYE9RA#nxklL&h(!>sN;BBUWSQa~TOg%z@vz)02@7o|R9 z@i%cdL&6|AP8eE6$$@)ts|w?aPw%=grJufCSW680TAHvF8Rpc-o60ImZjZMay8HU< zY7T3StP72h22efY7XOwPFTa*m*TocGCk$)OsLNn~&_Bj2$Nc$hRyV7_|H`0YrXk5- zVyNDF1u{2b=n=$mq(iG(=k@rWZ$rOr#_x{Y%Wl%oa`Mlcx@2kI<)ZpRxQU53 zs+w)GGPW19Y0xNk*s3+es^1SzKtG>~PyaO=RX!6XZk*GAQ7P}%YbX|+vMVD6!Mss~ zyRUv_oQ?O{&vT4z94-hnZikQoU1IyvGKyE?+8!U^hPMAMSbKUHIVy%Ls0=u+zoLIL zvdnI&u^?9D%U>4C9?*~kAJjHNm=qy(C)x|j(}=YoM~!4kB#u`}k-uK$VSFSJ_5O(|R1 zHE@Jkv%c=1psbP(K zBA!Ce$6A`_B*Hblo<8kTbjC^57CwFtv^-aMeFf$^Y@Ru`v~;o;)cA)KBSHM8fund8 z)B6r7(lW44xr=*$R~?2Q?|SO-;(o?XPXXWO7Cb6$56RtEy^(~W5A*)5-x^LgP@&@- z{rvs>ouGho!>eKZM9A89pdX(q<~YpwQd~VE$0Z%|Q`OeWCuCZ7{)Y`UgQ?K0g|4IY zbTQi|C;Pf%J-YJhlE<1``9MhEVzrUR7+d-}CrR-0Zs>iiJwe)V_kD?;R7W&MAgM$0 z`3sBvU9=3wRzg3UjcHjjXD+F#QStiYYjqI1@7HaFZ|I(rOwWO#uKnHY@(eq#>zqZA z;)=gR*SO=OatSuR+|;3WArj4e9#(x?Lx+C&3cmu=tJ7jm;-~#^(LOR@HKx z#Bvj0;Oh48rl{UPNVAt}#iLujAo1fFa7NDj!nk7pe9)inHSm7%!_L-O`|Kn8o^gW2 z-0p+5#Vko5joTh8*AKjHbglqz5N}uh${1OXNC8@Yo9nd``1FK-!%N4k;f)FZWTk`Q zhPwWdIGzlM6*K95imCeiwhWx2sEZp5j_8{)0v*h+2GC@Vg zGfgvhmqu^t?p99bnUDD%r?2gZAvVHepz;G9G=!v&53z=^Bw1W%vigI7UY?bx#yy!{ zHIt;obn6S@?fu0OyAcO_+7WP)f(@KLz<%VAdig(C>y)C6q)+!X&^gpiF*GUkI zC9+EB6Hbvk0(>3Rzc_O22N=~BtPfbBE~9rFJ`oySy*M^+U;Qc-8pdFR?J@F^mSG08 zc~@b7&buph{^-;)M7)sb$upquAp>sIHr9q-imznQFwU7v-*HrtYqwkw8~klj-2)eq z!1@m7ymazmk4ULA#m#g)ifi##*&64Kh)7lv8$u|S_~}Z8!h?>T8x3PZ7W7WF(Dmpk zlyt*|=Ilm4sej|u{T<$~LXDJP8{r>X8{3-l!5*)2U%tl_(7qRnH*x!E8gvU*Ya;Qj z?`iSd9y3H-kE56|Dz^7&IbDOqw@PX-++7jUYFr7bR@DyN)&xgkghZQiTsNdtnz==| zwHl`M6{hO-9~c{I7nH**ji>=^fTx!zQ0PC}g&Cd;gwHIiT%>f|gOCBN#JfH>8%u2# zG$PkvG`36a)v*a^i6B28zaV7ekdEq9qn=)Zo6M2EgVbgi@adZ?$0u#hW5uN_;g8mQ zBGJG#pDS3Xo?5y3RcW}}hU(Q|?Q{=EIU8(}T6(#osff4-dsMYS^%Er^wRrm4+a8lN zq&ZUpBD&AvLb6i6IvuopKYZbFVUz3^2kk=|v~$_Auu9<`w6!)~2tCaLp#s@wFDP$b+`IlkFob(#)fC ze2$39EYAs9VqxBFLLNf}A}8_*yGxzH!k@bX>|Ckv!z8+$bAeF7N$K3~f_u4Z_6eHI z4w%B&j1w^AK;r6Q$u!ZmY~dm1vjoewS@2Yi;;0$B#2vS(Vlki&h79=D+`lZ}KWW*o zd!1^qHFH+pTeuRWlGUX+&L^xDU2Uv@idzpx@|j9@(kSIQCnE(XdwBaS4LD@xO`$`b zE(QF`yhj_=g5_l=>j9}GZPljfBylA!4OFb~^Vc|?>nA55IS%J8lySvdwHTRbwk^j`mK5ND1^FdZ z_AcpzVw{qao~NZBj_~~=16+UN!5b!s$et>Hgp70C0JeIBL?esk8kY-61nh4dtem}6jKrn50iIbXtA_b`ZgHxQjCCasR z8$}x{APuu+lQrOo*T6g!K{9q%jKRo`G*?I$2u^f~kV#g%o(uTiADlefgSBn1yD_xk z8u?nd!p z9d-jn*_R>>sebFd>+kYf>qaEQsS^B6U2`xFGm@TnKL6s=v};PThP^1Z?|o0)m^%vz z{Xd7ie+!2+Iv7J5X!AhMIx;4d2?M)980ZZ?C-r@R+G|e-UAXN2{dwIZOdizKhR$~U z%g!vB!{QyMe+4Z{Ms@7an}2x6WuD}f@%*KoK;{m2vQKjN`gb1ngABSF8E&(rYpTOP zBGRYwauSWb`_s!!QHlmhYH)WwOtcCpApCv2*J4eM0F1y&qLn=lgl;S>oOZA*Lgl)D z1^4-_b#g+T9=002yVm;c<1~t>_q<1N7d_#%^cqyY1{@_mIvPIH@V&5V3F;3DSkmW& zOk#F3l|~@S9;BUn1)PjexiQYkUs z&TxC?4e+zCPEt4e&6S0g299AunBLT{B%3Iq#OOGh`|v-i#tCLJVA2=jx1x zSt)i(=Y7IZJs+J9dt^0;J|wRqFr#U8mtOHqL;|EXWDzVLy16U#_tTszw!6<|<5)8OT#*A{cGKcmpDy?p;Oqh|NvkDn3SV~4XAHBvRV zgX7(v>oR9s@K92DErHM5JgMKgHG`G;^@to%Ka}G>bwaVah6HUwk13o_o0nCy$_bnl z!tS6J1Tjf;rR_IL)mI3wrcC*};JjiL199IxtAD0^zmbP_4y3ffZK_5yu{!wC1kv#0 zHi-{^J=e8rOO2ErR_tM=U3}T*yL*Tk(o3qK2)VrYl_6l^$HJ&2Ywv31z+JJ`IT!nX z2x2(B!mz9c7xkpLm{OBfhl!ORnc7X4G!|Zp{58C#}u`t~(Kr-@(4QzAlh(2zA1Z-&wm>p%CD$ z>ujSR@!?{G^Ts+J$q?#5->k=!7`5e+B@RwsH>67GF)jxO-BuMy*yIkZLx*`v*A(LK z{eCqTwT}s&eF~Y%)fG|EElJZEY&^fc9{nGJuKytdZ5QrdA_J~`#TV{*PK0XX*N+jn z^Hu%)oyD43AMZ*mOkio@>%_7JRQmpRq59@2&kgOyX|(Ap>L2j-)v){ewKFKGKe8oc zz^yPr4frW%BweU%PfMr_3pCa)${o!Js$N%D1vQwIIm-W{;K)C+rWhe>`m}H5+U+1l zM?Z^1e!483#52#7SP7SmUi0*_XX({rnFkV$cyy2>OA#zTK0n_68++1p<=8ZWU0z&rHEYNg+C;T=aIp zbb2Wnpx?FXn?(o8V2KhPFmPo*7)3RLy?^JSfBtAPv${EG&kz(1&{4Rz^hm0`*J#{F z-G>49BtcUCk$8HBn4|BYp#NPtH8psUkj0J16;YcY-*N+gB*n8StXqV(+t>YRo(Knm zTU!?-mtY_zoa3f1oC8sq`GA4y8GB!)L}45^0#A zv2g=_NNTZ1*K48ig_hXFn8+8VzR>MM(|}MR`o(jg97_Dt$6`II#2#?5AtNw-OvRc$ zDRJjnF@v;BxJ8Z41J{M8@r|m$&4~JtF*&b6n0V)nZ~^Ez#ypYu2zP?zjBRA1BMfx6 zMYXxK7H#`o+xL=oqTAZq8mIn|zr@78QCMa<{2&J5@Sy!7y00(4R~~py)nlXg-Y-Tg z!%v3M1?stScNF)nZ~ZieC3LzH3||u+k~5fE!Og4S zXti)f+%mJK-4tzx-!dc8*XTbiW3&09Ttk0h|N&m(Wu9IqiBmXyj@K zIw!nS5TvZX%EY_00BM#RVNuRmKk{K8zzj;U)%CbKReGFw|0Pv;kn%y~EmJI7Yn1q4 zz}#pUx+4wEYmyH!#y*LFdzy+q90IWwCl9XYXxHnGb=;-Nn27hDCG5+6Irn6g^yKV} zER@`vjdtZ~I_m&+jQwD9H7XnmgMEtK_(!|`xA^eCrEg&r@^Iz%#k-nLiqw#zbd!4q zyuX4;iCAsMoA+KA%#5(`vr9)=!D6cRUlfX%;7zw5Br2h8{f8XZz~q zb(7yVo{*s(MlJD{Y$*YuJs!vr+(xgaVAw?aV$F{Q&XZEr;W+0|eoA zrU8dg$K)b@HQf+ughxli>vViPARaz^zFk*jOZ>Fs<30c+i0lJv`1zXqoY@;tv;k0d z0PEo-`+e8hJuA^nhCQxayb;e8|HoMzUTIb?W`NKg0_T-1det9uX|iE>0@t`SnT?|E zq&so-S!#>9rCJF#Jf5!6jQH0Q64O^hf`sy}9+C(n=#_;+a2oF~6P*dVAD6a`A5=+7 z6Mb+edV2YfEOARaoTI@NZnY0)TQM23qrQg&Wp2K=y<9k(NV8`=gp;?pl|C+>(FB1~5S{dL@Ih#g8D=T$fnzF6LYz^P`q90`VxiYzi%H}_{ z$U_2$@T~?8T8Nhpe&0i~Lh4Ev!p9m_rjOIb5#!noVl$D(QC73jAzAK6wQPk_AjR8e zOy}QHQ#%9qT$&&aN3JKExD>4RTYM}gn4*lthx0qDDW?$cejwBg38g=ob+VZHfG#x1 z??#^4Wd;Z?1Z~UR?F;r$Fo@e40&a39saOki@!9s~-Ofh-+2&Z>76bz zWH(UG-1iGCW-z4{1IZU#<*kWn>vk^rw!}H&rezgKbVo&|63a_?{l3$_X3qK2l)q6~ zYD}_(8Qh8?p$8X>b?qKCa!@L~q0WT0r+b+u-ZsCqqozNTAM-I6-faWPJhXOKs*7@o z*_h>i=c9$HTGbHi#p&?ikenF48E;-JL#4{k(uJV%XMX7(*n4&LDT?ZLHx+#wivlaa z)hfCRPd54;))Kn0zLSlW6Xl?T;yj+jwjFLo!83(yQn>Q5a*pkv{p>R9K?n?KyYzj< z>WR{*$4iL(;?m*}dM}l`7`pTvlO9jOh*e5=Vq};eamG~geD^fvu}FO2cE7ut?pqSb z^x0WILRH%+%vcBGpOBdMJSW{cG3|%K?$mEXO@!yIf2VgLXJKLEcw>2NZ28sa&#l;| z#>S?2-Fp3qGLCK=UW~sW|Mr^f!O|xoowhD6;IG;xWGFI(AzW#j$Rbd?lxA%cruf~lXqwo>)X7Uu=N+3$8yVvKq#-Z1*8 zkSly@`97XAQbsXX1?50+Ugc^i3)T79@PXohcar^jjgQrH}#gG(?rTV~Qz7^=m66j&Mrz%%+zP(S*K# z<%|^?KnBD}o|6F|-;n{}L)7UxMIh;#hMi^sG5wvj2N#Tm6svIcICC=KzB>^6!A^-{ zWNuF(QPy?kf-Uwe6Al|+3MO4ICIdzWe!%Kdc7t&V$ErBgTeKMN10m;FhSLKNjkKLb zJC*%vtLY39swuo)i2T**IoaSvHw{s96#6lmR9g#i{5%t+Yqz1*@)$!3!6)?ZE8=@p zhU$}LEzNGel(toGmih8L%hQZWx|r^JPF9|Q#CIpz`6TnizQGAZTtzJ%YjI?^rozWx zAmighG?G4jvRsdTPq1S8I4vKdZOUt8l<0Hqq5pt6`*7g8NLb)mMW?`nd;e|vU2$fh z`@~R1SNG}4y}MU#KyM{qQ)i~I5J(=BC632vixGHIel@8A_E?h0XlXMDzS!< zHjKT5p~GI6x}glC{FzE2@jvy6@r_T4c@t1Bla*QHG<;)2!)d%U!}Nzbc+cNgKdF|= zFtHCCF1)hR^(;37Roy`sjqYAN8-FKp+%p73r4a6n_d?K+bM8f`fl{nfxJj5K?EtS<$UANJ<3LSE!ek{*Q!e`v0aAr^;StkjRtgIKfyN^y-P(Tx{QZv6`wEH zn0l;Mm}H)m>@EOV#~|X|H4gfowWbL61x4X)tBSU*#UAtETNlNsd$_Fk-zILwOlh5lJ$)l&%b@h zfY&7*I@lku7lpTAPhhye7UxTFOndyL^#b(^&`!+7u3pQkewkZ`V8jdhZyfq^-#Pd` znbJhFlZ?YB@*b$*1)>QhnT^${e!@4shxQA2`Qg*0sLvpawkB(dre@czyz48UM($3S zeweE&G6G%*349ZR<;MP?2Ef=lai*VDc7Z+z3v}0TrUx4Q%Y4#Z8}7hsM5;2q{*6JF zA1W^6WAkB^pWVoSmm0A_>v3l)P%p4K+RaaqIv5sA-=C)w6Vqhn4^D!&&$#_qIKY!c zY+5%SNE3p|fHw|qx+F>BA?jCT*S}M0Whw$X+o!0d?2c0^W*Ag|0zKr^-i-=^T+mUsfrt4 z{4_0@pbQyWOS=qts<(+YxRw$1ZHJwnWu&r8<}Sg;l)?F$-f{tNbe3t!)ah0Vp+g5?Hb5o$ zPiW{|R7)^O1&7>?-`&P(_Us7B)C%(#-Yo0&;Lcxs%=%TrN+?~dgMP?l2}O@N+6KPd zA?|8?7o{RlGHt|%9oe1E=FC0jS9}qsk-c_26A4uB1aSwi)rBypPUBT_zf$P0_g&kw zKZu=>ppxv|I>5kbwYsK<JXg`Rac}=dj2@g zDB%gZDfa2(3`l4RIyo@zvx0k7fW1sFk-2NhBNh>jC2?R#!bJ}UF_;2p6~6K9F$1~0 zPg8y0D%BNAG1p%{g{$goi77Rx-6NpQSPU#YwLH}ed$*?ZH9YK=hNQ%-_UGDDD9|MK zP546Rkv|#00mLB+$$&W2SSQvRO+yA0n|5^)+>vC!Ab;m#>%awrpFKe~mZ(mDJVQB{ zNvNe1iX_PZqLu(&YMF|HnJQLSh>FH!z|Y9@U=<38Nv2@GtM~q$TNIOoK7WCoDcbN- zAWa2~_zvd1DR3m)2V3nIz~N*T%}L4j*Z~q-JsE&!gY`B;naBX`%19V)#*hq1W!hU> zBgLqoh+I9So7Cs-lsgX-Ehr!>14g=&LdZCvD0o{lzCI+Lax&oX;l<}X*tY=+o{Z#z z^?d2{vOiOWB?u6}<77ZD1*x(8SOs42)G$(jpDB>^7}y+;a>j-2#5pk$pq&3mPC7Dp zCo+J}k_;fk1OMldp*i07qhMA(a}t9C8NhV;q7k;WPLhOS^nhdlvkp-&_%+4%+*_2% z07ers;Pe*h#~5(SiNZv>5-)yH{7{{=&>>0K`AF0xJiur6pQR*(i$GoQp%9FhYp;1B zWHyM>y0A^}h1^~Ud9v5`lVEI-ybwGj88P15v?Gwso;S*LI&-vy6A;Fo2=v(ae3`$> zD}+&>jr>|4dfoET{4@XE6NYW9uSK?|_;iNf8@QFGT2x@o$0?tGW9x!qO+h;T*s2hcBDs#E$>F3c{C?LJYuk#@JoM`}6|2R%)^_ zK352@%IWQ`GMJ`~*1V*7K;9!fZ zV2`?;PoWD`9Vy*Yi7@6&Mln1PfG8k#%esw^;XAtiPm6ir6^hq%t14%aF~#Q0W;P9F zQ~A2X4bSrOGtKs%H+v7dkFUC}#rD~Htff#Y$#G-=r}|&j97sG>-@^D?o>2rVqx8`6 z-dNhlzI(|sN{f#s!NWR@@88?*RXIZB)+vFhSOc(1q@i>xbQ3u<8r4M@f41;dn>`I& zmhQNj7~Yza$A=s=zt^v>t<+$W=VZ>T$g3sT$<&WUCiP)uO%>oF_2nKbaNYAyhI(b% z-wYd!*5Q9PWiKc$(GbaKmv5Tcp%`|>hF z6K-tpyCbH8Jxm5VRLD*E({JiK<77?Mlh*BSkRslnhSj5uSNFj8&y9pn zYNvO9nl;Y^N?BcjF6`*cDa?BZwj2C-9&gsr_P)Bbx$Uv^ozv?NR>KAG0#WrH4A@Ya z*}B97TFD3Ab{5!saO{lDO^1kb(LwNlGocLJhY?p9qiYncXxN^FgN%Q5VRxSSDb!lL z^q)aUI}_`yL9Dh8lnxFl{(_|YiWhC+gPo1RJ@yN081HO6&6k|$>W+Hqc0_YBnpx^+ zfJetwJllI#jqI{+F!#n(jbQxCKq)V;wYu4=Vu-`x{@%fE6&dhloLikAi=rlc=IjZ5 z6jN+6=mYDT5=-{IivHpjgfDW+*2_QnQe8b*C-*nyd!sqow1&U1~Yd-P&T%ZON{Nwaz%XViY8?O-D>W`WId8Qq3b^BEM!KsPH=_S)nT&3$`%Fk1+nwH;6Sx;Od*220dq;d75l~4cY z@=jNo2%eS2a85ThWG>m{tOG~`o>ggo`zr4CGJ>r{}C!gwgXZCJP-IA@Uq_*-sgwT1_fn1Tw zWHL9(1OCj}Ecteoi#&5|S2(2il<1eVPEh^rP$V%|EfC8LmiZASV5P9osWc;;meP7{ z2p02)^tzBMO!u6dG#1jlr+5B{K!tgb-`?Y9ZWZsbtTBD-H+!H@>>1zj$xWe-RA{!< zf=A0uekQ%lkgIcwVbYA-E)2lC`0-w%K$IOfUVv+^T;GMwcXGHTfYBI^4rXy-+XfGP z!Xp)CER4#zH@I3X8#7mH;gYA47m~#?1n96m?8^-jPr8Q2;t?biyB!YkgTq@*gsk- zXi#WE=%du^T@4V$LFIIC0>_4gIXtbj#&~7V>dp!y)Hc&Elf=@=&4z1^-FVCXe&rna zbmrrXE8RADtb4=e4L54OBPEoP(#`6$s=))7@rWo0exx`$RTq1#p^eDhc$$}!?(`>5 z={i)+s}E_-4B|k)U*ELoEO&+uoixmF8f3yetWQi9D7s8(3Gw4RQF!ixULgKIqDlXw zj!sh@%1+qC>m7&SXJUKpqrxRSahY$c(yd3O%5|$0!xWJb*fp)WhT-VcVT+0VpUu%V zk}?jdKsnKx+xLDvyn+vPy$KEL))2xSi^Ql*3HP|F>Id)LrbAETRV2YkFkCX+HlcJa zuFI*czgkO=S<^35a?>F6$lU~~QFT+9^)-r5o1?1S#7e0#aV>C3gmZt45dj@k49uz5 zMg0;ureKPQ#ZYd1V^T)+xsF?K=QXq?-wT{Rww+}hjMwSebMyy`Nn0%%Hhsneqkm@T zEK4G5=NfjPcQYWwN1TJyu#9E#u*)htw|mV;)MZ9Q{Yv%4Ov)Jw1?=h5{e-XPBUC0$ z{S@8SRT~_*4$)fb+P3lK;HOAK$-?%h7c|mqd_vEQvL0f@=S9ruOhxs#P;N-GG@so@ zu$b@h=i22 zuDg$T!v~aF`s(K)zxeaT$Aro?9U|NCu_8eX@*+qkVL>J(XgIVaoReUz*qowh{kGRo zWS-)7pf)lf%E|CO=voO+XPg2VAnt0ha-G}!B>Bpj7<7H0v8+ml+KCV>Qwh;iUb|+B zS>hM>_DgB72z3_N^L%0zia*P+e!CfEQw*K&yvyBdsm-Y2X(KTT8?KTt-B|JHJ6Gu_ zAg;L<5r2ozui#9_6FVD@3o9sn1tT;){ zq}(_W2`*Wu)N}qtnEt1OCcR`b5$x6UBURUZF+{M@lk}C6KC(JLosk9$X@BBHl6F5( z$iWI;ZF1>a3hjz%b$nKy@%;5te!*dS-nIBHjm_}uh^EP5lj4^k=qL}lbX}LknUEa6F zOtUQk!ldEuHhAjUhLE;t+qtL@9qozrbW?JO@Y=QJvtau{~oJ4RLiux!xg_9E&P*`6jz zihm*lDhlg2duX54Q8ac}`EJTGn^nKc zmj(P+Fs1R9;B|hNGzH^4f}(YBi>t1^D0YJXDk}slA;92%!;SOY5>5uxH&zn%6h{B< z-!?OH3i5UIlzd~EE-=!9>`$R3i14eU;zJ)|YzpN|C#y3Ypu#N{#C5QMHn5wlmue0I~sH3zG|}Ly?49 zTpE_eqwWeRPZ53iZ;G>9R=v|~*-nZc<^rw#JGtFkTk!#wEi zBD{x8#X$Fb>hfE8r<{eM>tS7A{~Oc3)QTx&fTr~4kkT-Q*S4&h-=g(Vc0HwAZC9fm z0xI0ks)?J-R+QvCpg1~m5TU8Xd!u6PyOzt%aF1N)mmJnfWAar!H0kS>LA2P~(`1LY zh^Ve-xTBd(Yv#8oQ82|=}fBsD~;gPBZ_kmQSNT3xpTUyEVf~}-Ju#7aODhMY>0G| z*jU_ZHcxweMqv;Xi2`JgsD`m>)PD)*pX*yyp<@>^R2p^W$$ApZWsrA-+(iuA)AZoe zO+iqrp#llnP`KZbo2G0RYD(o*%q&$Vcd}7|Y~>^}NYo*XvQ)%u>nDoK>+0eL(5;g2 z)0VDvAoe1)4GKm`UenN$@l21Z3lG6m0!-eq=w$W-dF}vKq6OzCL@lm;w zi2m;TKR^}>%R`>wZ!zXErz;73LGN+eTAVzmrMLC?lhcLNR1J(D_P@0rk{^EdLTVc_-4MkxG zQq(Q+A_F{W+ayVRX>%BACvzMvv1~VF|FtP;`H_#4^R@V4!-ne<^WPU27y8ayo-&>B zV7z$-3Cgkl-W(XBq_3rtRwm|fx08uinTHGNe-5fkbgXcc7%%7$uBWUP)3Rzr9_Saw zJIb>AnQmhx^m3{pLnSMD1;ekj#V6u_v87J%>A&i~{eQ0f)9j##EHcOUai~2J3Ljnu z60#9i6!=AAeDu*)7n7uUTPYXY$?Y*|-|@zw;;*stS05otXIiAnO2}`)rnab+d9^U2 zGLP5#I=Zv3P+x}kcM83Vyf|izt>0|81)1!cQp~W(2y~4fJXCK}fo@nN3TbhQa}k}N zcni=(_I5w5j)|RG?erS4oS1A!CT z($*8x5+G!NZN@Rq>LFuw)xAY)>qq?U?d@m?0|!nsf$v@qgL`csgHgo*pI^ntI~5ht z0CPe;7y+6QH>(B*xzFTPm{x+p`5?H6h}d+ws)fG(DwG{fO z>zTUsJ{QZxvZs9fF)8Of1PibWI4 z*1Kg-MO%RKA8R92Yb-VWz?6C|NJ?R@0>}t-XCmAY=vm>makrDW$PP6rWKb;cZ3g0M zh-M2hwX3|9A6pL_l7biy-l8QKCcQHr*WAL}=BP)|)7y#bI(O zbLq-IkoIttc}^fN>F33EdfM`+sqLL&ULis@{uPP#*STXTdrK-B~7|;p&AcgozzRI8~fcu9(wl!mv}sK zTQSXVfG-uwUVl2(5L_FhUEP-N^|R;n-Ml`9C?VnZQ;%p8`V{#zc-mi3s;4tzqcY}flXhMuZS{ZTk6{#CFG`xANORtje}G9m zrEhWa-D75!yPG+~{dVeYkthCltldIx7GK1cCX@~LPPvl=W1mhr_l$q|!R8S_jK%6q zjd$;JA?#_tWIch!siKXe)sBA6eI>j|G7OP}+w|P)fw?*6i;0dtqJ~fRI2HvN%9iAm zb!1X?oyOcQcM@V?ms;>LtC>C1WcitNe6lU3bwE>lK_5N>tQFWjIT!k+DG74v zaFbFjj3bGKA;Y6}XX^prHYU zuPMnd_`L|kq)k@ueNvZ6ugJQ||7B1@)3585RikW6mbCX1Z%EvLlUN1ZLAzaC{#fro zZYlQ?y#KqqdBqGet{gI#vp4>{h;vq9?b>JIDfi9UKZLGrYJjsx4rPT{5~nF%Ag)o5 zpY`FlhVxNt%UQ+ySyc^tGEb&fUsW!i@3hX}ZfC(J@I@aB+HLn;mYSJX-r* z9VOZADEm)7EsFfI`Y9c0&z{hSb=QV7XxvOv6q~8Gs#>G-jqpz|N&S1w7fEYUF4}z~ zA#YQd(m+%>1ortm)!eJF-;l@_e7rGD26zJFjpm`=dOws`3ww5Q7iD746u;ciud#c) z;yN7~T=j+hx%Gv+N^t_Hw#AjyI{_ADQBkD7aM$ZRd9>Aj6xI#B+bxI6>5q{}fo5df z>|}8&?}RXPM42~q;h zJ&l|g-4p+9{aar`TV^#T1Dt+vI$%FdGyb0vwZ;=jGh97p}BPMQ=Tyr`aV_DUa5*1~_Mz zI%VqR7Uo_`>RnwQnM{D={y;ih+2AL2pyR&{;A(}vNZO+l3^ye$`3OI=BuWtMkp`Jo zupZbYiyzvi#jW)?SZuYcwvOeEl5dc~JMi}`TH;?SKYr>Fy*q*G=d*r`{4ecX=Tp;Z z9@ljcQ4tZ5CT5fXp*N{gRz2w^6ltLuFq9y=0fK-?^pGYcCv{;VS%eTG!JrswNQ4Af z5~UXruo^zQn4+twyUyy*^fh)Y!6syUdi%j z?x@A*PRT2rn}YG~^p%RB(Q{{Mc;lviO9Snk70s))OWbeOElI`GYl6_U}FlFv>=9wxVVvXMg7RI0dQllBWr!Ak`qDk`R4dt5r}hO#qL7keYFG$3?07Rz>j zI}5zOgYuT=`hKlv_gJaBJ}3!ag61uS4{tXI!#3c|da0uSiVKDu^13=^Og$c9@%@=S zUsOEP_AJmBm0(?8ISC^zCInO1+iF`pIl=OEBi zZjYxXkP7M;NRLkyo?Njf^DUb>MN{MOoOiHa{o($T+D?(dq(mezUy|py8?JC!9Y;66 zrIH)lVG9ZX-ccG2e|s|-W@ykfoVH8i7xi0t)nv}V#A;lBonM?W@Dmjl5TQjED~ViI zF)=A@2;S4J`wrESe}PcbW4qW+-p4i-^$RT@9m5w1;pl~KuYHT~#!>u+O*!b0 zsHvbGB$H^0;DgfeI>2@|U58ALP`=Mnq!rdzIdh&5whL+$s&ceiqZW%|-Q`!8=ii#T zunb>GZF;4fMcYg}kICesO|BQunlq$%(nTTfEq2cOU*x%vm(eF5lWeJ41&Uj{)nh5o zUCCy~>f1391MHz}KPxzf>@;0wPVU_H%8ZS8oZoHQNm-EY^^nO+&DoVz6Bnc%bijrW%e#QTK1L#t2ut3#i0yj zT3H@Y4?WM_=!7^%NN0FCN!mK}*zDc63cePJ(dzA8CxNlrSQ=radz~w2ALF;|q*1D# zPPG{>ys$I^`dD|P!>1*s1+QHvCoY4j)=X-=-UaJcN>4QANK;F)6V7R9Rk0mAMmWsC z?StY}3pu#sQ^@Q-bc~1g*pp5B!P>H5KE@oeFr1|V)8#hv73}ohbQNf{#Gr!aGTB4k zX}eY7rTl1A#u!0WzIBM@-aivWBP?2 zDzkB{hfPMfjRmA%D9hYNdJ2vzHL_H;7^&;^Y;!(g0O9M)mesBRA~R%!|9vMD0#r`n zNjq#DftC$})sWQkYX{LgYIKrxyXtgBO^p%;Zy5l%R5ufYjgX z29q3N9Q`WXK%WR%0`O1ohdQ6K89I40u#P3_(>qcbbS2$Zl8O5<&= zK9jsqgIU$qlcrcbw0gg3w|0qp{KYum%<8Yb1c7J#@m5)I!C;MDdiAZH1Ppk~HPw)Q zCVK?V`yGN#b@kezN~b<}K$J5RmWg}NmQD+Cq!`!^WPAD2jF@fRw@PaeFOBy|Bo9p& zDsc|BSvpiM=$$jo=8cG0HbMHV)~+>T%YW}jWG%%mWx~O=YkR*hN8BV}F)y~zE2~Q* zQFo$t)7nF+*>*qQELn{V%%2vC)&x9Zzcedy^ZjJ&HwH6k3H-@)#Ry0lyN%0)$$1Ad zR1VZ_EW_uov!&;%K5mp!9G8!r!+SlCzs5Gv{f@6N=>N-q&gyj?BEZ>$cbeUVeB-zy2hF31F93XKp)_NBIn^ zo>wJaS)@nPS!eVt*u8SwWO@?vEI}%zCenO5xqHa1t$C16zYSAD@G;5lBhU9>(q@BC z9_(s-^>K(dzq|*^4FuUtRS{@wD`Jw91uulx?*0%5-OQjX0}T>F*GRS~d>a?N%O!Y22m5 zG3EF#5}rDyM|YfGq+YNbbfi&=xWP?0<8F0@8LJfaHf_V0AYmz0^OZkeGe_?wpkxr_ zlMxc+Q=FliVGhpg0dF|Wmh9(zU$4QG+yQWdLySGZuKM>5pFfkj{QoI`Vg~ + + diff --git a/flowgram-editor/src/assets/icon-llm.jpg b/flowgram-editor/src/assets/icon-llm.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4db9e0b7785f08a25601b3ea7c55103d34026fde GIT binary patch literal 11089 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 literal 0 HcmV?d00001 diff --git a/flowgram-editor/src/assets/icon-minimap.tsx b/flowgram-editor/src/assets/icon-minimap.tsx new file mode 100644 index 0000000..ae45379 --- /dev/null +++ b/flowgram-editor/src/assets/icon-minimap.tsx @@ -0,0 +1,24 @@ +/** + * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates + * SPDX-License-Identifier: MIT + */ + +export const IconMinimap = () => ( + + + + + + +); diff --git a/flowgram-editor/src/assets/icon-mouse.tsx b/flowgram-editor/src/assets/icon-mouse.tsx new file mode 100644 index 0000000..17d879a --- /dev/null +++ b/flowgram-editor/src/assets/icon-mouse.tsx @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates + * SPDX-License-Identifier: MIT + */ + +export function IconMouse(props: { width?: number; height?: number }) { + const { width, height } = props; + return ( + + + + ); +} + +export const IconMouseTool = () => ( + + + +); diff --git a/flowgram-editor/src/assets/icon-pad.tsx b/flowgram-editor/src/assets/icon-pad.tsx new file mode 100644 index 0000000..45cf741 --- /dev/null +++ b/flowgram-editor/src/assets/icon-pad.tsx @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates + * SPDX-License-Identifier: MIT + */ + +export function IconPad(props: { width?: number; height?: number }) { + const { width, height } = props; + return ( + + + + + ); +} + +export const IconPadTool = () => ( + + + + +); diff --git a/flowgram-editor/src/assets/icon-script.png b/flowgram-editor/src/assets/icon-script.png new file mode 100644 index 0000000000000000000000000000000000000000..0c5beb7a192c5af02314aca1407d8395245c671f GIT binary patch literal 3659 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 Cbfdul literal 0 HcmV?d00001 diff --git a/flowgram-editor/src/assets/icon-start.jpg b/flowgram-editor/src/assets/icon-start.jpg new file mode 100644 index 0000000000000000000000000000000000000000..72a5a48e60a4b93f4cea42c9e2e45bd9c1a3f01f GIT binary patch literal 20971 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 Q`RC+6A^02G^pDX$0Rx_1qW}N^ literal 0 HcmV?d00001 diff --git a/flowgram-editor/src/assets/icon-success.tsx b/flowgram-editor/src/assets/icon-success.tsx new file mode 100644 index 0000000..028a450 --- /dev/null +++ b/flowgram-editor/src/assets/icon-success.tsx @@ -0,0 +1,37 @@ +/** + * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates + * SPDX-License-Identifier: MIT + */ + +interface Props { + className?: string; + style?: React.CSSProperties; +} + +export const IconSuccessFill = ({ className, style }: Props) => ( + + + + + + + + + + + +); diff --git a/flowgram-editor/src/assets/icon-switch-line.tsx b/flowgram-editor/src/assets/icon-switch-line.tsx new file mode 100644 index 0000000..53ba1ff --- /dev/null +++ b/flowgram-editor/src/assets/icon-switch-line.tsx @@ -0,0 +1,15 @@ +/** + * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates + * SPDX-License-Identifier: MIT + */ + +export const IconSwitchLine = ( + + + +); diff --git a/flowgram-editor/src/assets/icon-variable.png b/flowgram-editor/src/assets/icon-variable.png new file mode 100644 index 0000000000000000000000000000000000000000..558ede149c154d661e3afc2d331b4c69180b1822 GIT binary patch literal 3430 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 literal 0 HcmV?d00001 diff --git a/flowgram-editor/src/assets/icon-warning.tsx b/flowgram-editor/src/assets/icon-warning.tsx new file mode 100644 index 0000000..d6c18ab --- /dev/null +++ b/flowgram-editor/src/assets/icon-warning.tsx @@ -0,0 +1,27 @@ +/** + * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates + * SPDX-License-Identifier: MIT + */ + +interface Props { + className?: string; + style?: React.CSSProperties; +} + +export const IconWarningFill = ({ className, style }: Props) => ( + + + +); diff --git a/flowgram-editor/src/components/add-node/index.tsx b/flowgram-editor/src/components/add-node/index.tsx new file mode 100644 index 0000000..2d05305 --- /dev/null +++ b/flowgram-editor/src/components/add-node/index.tsx @@ -0,0 +1,28 @@ +/** + * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates + * SPDX-License-Identifier: MIT + */ + +import { Button } from '@douyinfe/semi-ui'; +import { IconPlus } from '@douyinfe/semi-icons'; + +import { useAddNode } from './use-add-node'; + +export const AddNode = (props: { disabled: boolean }) => { + const addNode = useAddNode(); + return ( + + ); +}; diff --git a/flowgram-editor/src/components/add-node/use-add-node.ts b/flowgram-editor/src/components/add-node/use-add-node.ts new file mode 100644 index 0000000..486c018 --- /dev/null +++ b/flowgram-editor/src/components/add-node/use-add-node.ts @@ -0,0 +1,115 @@ +/** + * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates + * SPDX-License-Identifier: MIT + */ +import { useCallback } from 'react'; + +import { NodePanelResult, WorkflowNodePanelService } from '@flowgram.ai/free-node-panel-plugin'; +import { + useService, + WorkflowDocument, + usePlayground, + PositionSchema, + WorkflowNodeEntity, + WorkflowSelectService, + WorkflowNodeJSON, + getAntiOverlapPosition, + WorkflowNodeMeta, + FlowNodeBaseType, +} from '@flowgram.ai/free-layout-editor'; +// hook to get panel position from mouse event - 从鼠标事件获取面板位置的 hook +const useGetPanelPosition = () => { + const playground = usePlayground(); + return useCallback( + (targetBoundingRect: DOMRect): PositionSchema => + // convert mouse position to canvas position - 将鼠标位置转换为画布位置 + playground.config.getPosFromMouseEvent({ + clientX: targetBoundingRect.left + 64, + clientY: targetBoundingRect.top - 7, + }), + [playground] + ); +}; +// hook to handle node selection - 处理节点选择的 hook +const useSelectNode = () => { + const selectService = useService(WorkflowSelectService); + return useCallback( + (node?: WorkflowNodeEntity) => { + if (!node) { + return; + } + // select the target node - 选择目标节点 + selectService.selectNode(node); + }, + [selectService] + ); +}; + +const getContainerNode = (selectService: WorkflowSelectService) => { + const { activatedNode } = selectService; + if (!activatedNode) { + return; + } + const { isContainer } = activatedNode.getNodeMeta(); + if (isContainer) { + return activatedNode; + } + const parentNode = activatedNode.parent; + if (!parentNode || parentNode.flowNodeType === FlowNodeBaseType.ROOT) { + return; + } + return parentNode; +}; + +// main hook for adding new nodes - 添加新节点的主 hook +export const useAddNode = () => { + const workflowDocument = useService(WorkflowDocument); + const nodePanelService = useService(WorkflowNodePanelService); + const selectService = useService(WorkflowSelectService); + const playground = usePlayground(); + const getPanelPosition = useGetPanelPosition(); + const select = useSelectNode(); + + return useCallback( + async (targetBoundingRect: DOMRect): Promise => { + // calculate panel position based on target element - 根据目标元素计算面板位置 + const panelPosition = getPanelPosition(targetBoundingRect); + const containerNode = getContainerNode(selectService); + await new Promise((resolve) => { + // call the node panel service to show the panel - 调用节点面板服务来显示面板 + nodePanelService.callNodePanel({ + position: panelPosition, + enableMultiAdd: true, + containerNode, + panelProps: {}, + // handle node selection from panel - 处理从面板中选择节点 + onSelect: async (panelParams?: NodePanelResult) => { + if (!panelParams) { + return; + } + const { nodeType, nodeJSON } = panelParams; + const position = Boolean(containerNode) + ? getAntiOverlapPosition(workflowDocument, { + x: 0, + y: 200, + }) + : undefined; + // create new workflow node based on selected type - 根据选择的类型创建新的工作流节点 + const node: WorkflowNodeEntity = workflowDocument.createWorkflowNodeByType( + nodeType, + position, // position undefined means create node in center of canvas - position undefined 可以在画布中间创建节点 + nodeJSON ?? ({} as WorkflowNodeJSON), + containerNode?.id + ); + select(node); + }, + // handle panel close - 处理面板关闭 + onClose: () => { + resolve(); + }, + }); + }); + }, + [getPanelPosition, nodePanelService, playground.config.zoom, workflowDocument, select] + ); +}; diff --git a/flowgram-editor/src/components/base-node/index.tsx b/flowgram-editor/src/components/base-node/index.tsx new file mode 100644 index 0000000..3e8660a --- /dev/null +++ b/flowgram-editor/src/components/base-node/index.tsx @@ -0,0 +1,49 @@ +/** + * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates + * SPDX-License-Identifier: MIT + */ + +import { useCallback } from 'react'; + +import { FlowNodeEntity, useClientContext, useNodeRender } from '@flowgram.ai/free-layout-editor'; +import { ConfigProvider } from '@douyinfe/semi-ui'; + +import { NodeStatusBar } from '../testrun/node-status-bar'; +import { NodeRenderContext } from '../../context'; +import { ErrorIcon } from './styles'; +import { NodeWrapper } from './node-wrapper'; + +export const BaseNode = ({ node }: { node: FlowNodeEntity }) => { + /** + * Provides methods related to node rendering + * 提供节点渲染相关的方法 + */ + const nodeRender = useNodeRender(); + const ctx = useClientContext(); + /** + * It can only be used when nodeEngine is enabled + * 只有在节点引擎开启时候才能使用表单 + */ + const form = nodeRender.form; + + /** + * Used to make the Tooltip scale with the node, which can be implemented by itself depending on the UI library + * 用于让 Tooltip 跟随节点缩放, 这个可以根据不同的 ui 库自己实现 + */ + const getPopupContainer = useCallback( + () => ctx.playground.node.querySelector('.gedit-flow-render-layer') as HTMLDivElement, + [] + ); + + return ( + + + + {form?.state.invalid && } + {form?.render()} + + + + + ); +}; diff --git a/flowgram-editor/src/components/base-node/node-wrapper.tsx b/flowgram-editor/src/components/base-node/node-wrapper.tsx new file mode 100644 index 0000000..6f44a3b --- /dev/null +++ b/flowgram-editor/src/components/base-node/node-wrapper.tsx @@ -0,0 +1,83 @@ +/** + * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates + * SPDX-License-Identifier: MIT + */ + +import React, { useState } from 'react'; + +import { WorkflowPortRender } from '@flowgram.ai/free-layout-editor'; +import { useClientContext } from '@flowgram.ai/free-layout-editor'; + +import { FlowNodeMeta } from '../../typings'; +import { useNodeFormPanel } from '../../plugins/panel-manager-plugin/hooks'; +import { useNodeRenderContext, usePortClick } from '../../hooks'; +import { scrollToView } from './utils'; +import { NodeWrapperStyle } from './styles'; + +export interface NodeWrapperProps { + isScrollToView?: boolean; + children: React.ReactNode; +} + +/** + * Used for drag-and-drop/click events and ports rendering of nodes + * 用于节点的拖拽/点击事件和点位渲染 + */ +export const NodeWrapper: React.FC = (props) => { + const { children, isScrollToView = false } = props; + const nodeRender = useNodeRenderContext(); + const { node, selected, startDrag, ports, selectNode, nodeRef, onFocus, onBlur, readonly } = + nodeRender; + const [isDragging, setIsDragging] = useState(false); + const form = nodeRender.form; + const ctx = useClientContext(); + const onPortClick = usePortClick(); + const meta = node.getNodeMeta(); + + const { open } = useNodeFormPanel(); + const portsRender = ports.map((p) => ( + + )); + + return ( + <> + { + startDrag(e); + setIsDragging(true); + }} + onTouchStart={(e) => { + startDrag(e as unknown as React.MouseEvent); + setIsDragging(true); + }} + onClick={(e) => { + selectNode(e); + if (!isDragging) { + open({ + nodeId: nodeRender.node.id, + }); + // 可选:将 isScrollToView 设为 true,可以让节点选中后滚动到画布中间 + // Optional: Set isScrollToView to true to scroll the node to the center of the canvas after it is selected. + if (isScrollToView) { + scrollToView(ctx, nodeRender.node); + } + } + }} + onMouseUp={() => setIsDragging(false)} + onFocus={onFocus} + onBlur={onBlur} + data-node-selected={String(selected)} + style={{ + ...meta.wrapperStyle, + outline: form?.state.invalid ? '1px solid red' : 'none', + }} + > + {children} + + {portsRender} + + ); +}; diff --git a/flowgram-editor/src/components/base-node/styles.tsx b/flowgram-editor/src/components/base-node/styles.tsx new file mode 100644 index 0000000..f90a6d2 --- /dev/null +++ b/flowgram-editor/src/components/base-node/styles.tsx @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates + * SPDX-License-Identifier: MIT + */ + +import styled from 'styled-components'; +import { IconInfoCircle } from '@douyinfe/semi-icons'; + +export const NodeWrapperStyle = styled.div` + align-items: flex-start; + background-color: #fff; + border: 1px solid rgba(6, 7, 9, 0.15); + border-radius: 8px; + box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.04), 0 4px 12px 0 rgba(0, 0, 0, 0.02); + display: flex; + flex-direction: column; + justify-content: center; + position: relative; + width: 360px; + height: auto; + + &.selected { + border: 1px solid #4e40e5; + } +`; + +export const ErrorIcon = () => ( + +); diff --git a/flowgram-editor/src/components/base-node/utils.ts b/flowgram-editor/src/components/base-node/utils.ts new file mode 100644 index 0000000..b9d4737 --- /dev/null +++ b/flowgram-editor/src/components/base-node/utils.ts @@ -0,0 +1,23 @@ +/** + * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates + * SPDX-License-Identifier: MIT + */ + +import { FreeLayoutPluginContext, FlowNodeEntity } from '@flowgram.ai/free-layout-editor'; + +export function scrollToView( + ctx: FreeLayoutPluginContext, + node: FlowNodeEntity, + sidebarWidth = 448 +) { + const bounds = node.transform.bounds; + ctx.playground.scrollToView({ + bounds, + scrollDelta: { + x: sidebarWidth / 2, + y: 0, + }, + zoom: 1, + scrollToCenter: true, + }); +} diff --git a/flowgram-editor/src/components/comment/components/blank-area.tsx b/flowgram-editor/src/components/comment/components/blank-area.tsx new file mode 100644 index 0000000..3a4d6fc --- /dev/null +++ b/flowgram-editor/src/components/comment/components/blank-area.tsx @@ -0,0 +1,48 @@ +/** + * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates + * SPDX-License-Identifier: MIT + */ + +import type { FC } from 'react'; + +import { useNodeRender, usePlayground } from '@flowgram.ai/free-layout-editor'; + +import type { CommentEditorModel } from '../model'; +import { DragArea } from './drag-area'; + +interface IBlankArea { + model: CommentEditorModel; +} + +export const BlankArea: FC = (props) => { + const { model } = props; + const playground = usePlayground(); + const { selectNode } = useNodeRender(); + + return ( +

+ ); +}; diff --git a/flowgram-editor/src/components/comment/components/border-area.tsx b/flowgram-editor/src/components/comment/components/border-area.tsx new file mode 100644 index 0000000..f353a8e --- /dev/null +++ b/flowgram-editor/src/components/comment/components/border-area.tsx @@ -0,0 +1,120 @@ +/** + * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates + * SPDX-License-Identifier: MIT + */ + +import { type FC } from 'react'; + +import type { CommentEditorModel } from '../model'; +import { ResizeArea } from './resize-area'; +import { DragArea } from './drag-area'; + +interface IBorderArea { + model: CommentEditorModel; + overflow: boolean; + onResize?: () => { + resizing: (delta: { top: number; right: number; bottom: number; left: number }) => void; + resizeEnd: () => void; + }; +} + +export const BorderArea: FC = (props) => { + const { model, overflow, onResize } = props; + + return ( +
+ {/* 左边 */} + + {/* 右边 */} + + {/* 上边 */} + + {/* 下边 */} + + {/** 左上角 */} + ({ top: y, right: 0, bottom: 0, left: x })} + onResize={onResize} + /> + {/** 右上角 */} + ({ top: y, right: x, bottom: 0, left: 0 })} + onResize={onResize} + /> + {/** 右下角 */} + ({ top: 0, right: x, bottom: y, left: 0 })} + onResize={onResize} + /> + {/** 左下角 */} + ({ top: 0, right: 0, bottom: y, left: x })} + onResize={onResize} + /> +
+ ); +}; diff --git a/flowgram-editor/src/components/comment/components/container.tsx b/flowgram-editor/src/components/comment/components/container.tsx new file mode 100644 index 0000000..c823d98 --- /dev/null +++ b/flowgram-editor/src/components/comment/components/container.tsx @@ -0,0 +1,50 @@ +/** + * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates + * SPDX-License-Identifier: MIT + */ + +import type { ReactNode, FC, CSSProperties } from 'react'; + +interface ICommentContainer { + focused: boolean; + children?: ReactNode; + style?: React.CSSProperties; +} + +export const CommentContainer: FC = (props) => { + const { focused, children, style } = props; + + const scrollbarStyle = { + // 滚动条样式 + scrollbarWidth: 'thin', + scrollbarColor: 'rgb(159 159 158 / 65%) transparent', + // 针对 WebKit 浏览器(如 Chrome、Safari)的样式 + '&:WebkitScrollbar': { + width: '4px', + }, + '&::WebkitScrollbarTrack': { + background: 'transparent', + }, + '&::WebkitScrollbarThumb': { + backgroundColor: 'rgb(159 159 158 / 65%)', + borderRadius: '20px', + border: '2px solid transparent', + }, + } as unknown as CSSProperties; + + return ( +
+ {children} +
+ ); +}; diff --git a/flowgram-editor/src/components/comment/components/content-drag-area.tsx b/flowgram-editor/src/components/comment/components/content-drag-area.tsx new file mode 100644 index 0000000..065a32d --- /dev/null +++ b/flowgram-editor/src/components/comment/components/content-drag-area.tsx @@ -0,0 +1,94 @@ +/** + * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates + * SPDX-License-Identifier: MIT + */ + +import { type FC, useState, useEffect, type WheelEventHandler } from 'react'; + +import { useNodeRender, usePlayground } from '@flowgram.ai/free-layout-editor'; + +import type { CommentEditorModel } from '../model'; +import { DragArea } from './drag-area'; + +interface IContentDragArea { + model: CommentEditorModel; + focused: boolean; + overflow: boolean; +} + +export const ContentDragArea: FC = (props) => { + const { model, focused, overflow } = props; + const playground = usePlayground(); + const { selectNode } = useNodeRender(); + + const [active, setActive] = useState(false); + + useEffect(() => { + // 当编辑器失去焦点时,取消激活状态 + if (!focused) { + setActive(false); + } + }, [focused]); + + const handleWheel: WheelEventHandler = (e) => { + const editorElement = model.element; + if (active || !overflow || !editorElement) { + return; + } + e.stopPropagation(); + const maxScroll = editorElement.scrollHeight - editorElement.clientHeight; + const newScrollTop = Math.min(Math.max(editorElement.scrollTop + e.deltaY, 0), maxScroll); + editorElement.scroll(0, newScrollTop); + }; + + const handleMouseDown = (mouseDownEvent: React.MouseEvent) => { + if (active) { + return; + } + mouseDownEvent.preventDefault(); + mouseDownEvent.stopPropagation(); + model.setFocus(false); + selectNode(mouseDownEvent); + playground.node.focus(); // 防止节点无法被删除 + + const startX = mouseDownEvent.clientX; + const startY = mouseDownEvent.clientY; + + const handleMouseUp = (mouseMoveEvent: MouseEvent) => { + const deltaX = mouseMoveEvent.clientX - startX; + const deltaY = mouseMoveEvent.clientY - startY; + // 判断是拖拽还是点击 + const delta = 5; + if (Math.abs(deltaX) < delta && Math.abs(deltaY) < delta) { + // 点击后隐藏 + setActive(true); + } + document.removeEventListener('mouseup', handleMouseUp); + document.removeEventListener('click', handleMouseUp); + }; + + document.addEventListener('mouseup', handleMouseUp); + document.addEventListener('click', handleMouseUp); + }; + + return ( +
+ +
+ ); +}; diff --git a/flowgram-editor/src/components/comment/components/drag-area.tsx b/flowgram-editor/src/components/comment/components/drag-area.tsx new file mode 100644 index 0000000..0a2fbe6 --- /dev/null +++ b/flowgram-editor/src/components/comment/components/drag-area.tsx @@ -0,0 +1,48 @@ +/** + * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates + * SPDX-License-Identifier: MIT + */ + +import { CSSProperties, MouseEvent, TouchEvent, type FC } from 'react'; + +import { useNodeRender, usePlayground } from '@flowgram.ai/free-layout-editor'; + +import { type CommentEditorModel } from '../model'; + +interface IDragArea { + model: CommentEditorModel; + stopEvent?: boolean; + style?: CSSProperties; +} + +export const DragArea: FC = (props) => { + const { model, stopEvent = true, style } = props; + + const playground = usePlayground(); + + const { startDrag: onStartDrag, onFocus, onBlur, selectNode } = useNodeRender(); + + const handleDrag = (e: MouseEvent | TouchEvent) => { + if (stopEvent) { + e.preventDefault(); + e.stopPropagation(); + } + model.setFocus(false); + onStartDrag(e as MouseEvent); + selectNode(e as MouseEvent); + playground.node.focus(); // 防止节点无法被删除 + }; + + return ( +
+ ); +}; diff --git a/flowgram-editor/src/components/comment/components/editor.tsx b/flowgram-editor/src/components/comment/components/editor.tsx new file mode 100644 index 0000000..669e939 --- /dev/null +++ b/flowgram-editor/src/components/comment/components/editor.tsx @@ -0,0 +1,66 @@ +/** + * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates + * SPDX-License-Identifier: MIT + */ + +import { type FC, type CSSProperties, useEffect, useRef } from 'react'; + +import { usePlayground } from '@flowgram.ai/free-layout-editor'; + +import { CommentEditorModel } from '../model'; +import { usePlaceholder } from '../hooks'; +import { CommentEditorEvent } from '../constant'; + +interface ICommentEditor { + model: CommentEditorModel; + style?: CSSProperties; + value?: string; + onChange?: (value: string) => void; +} + +export const CommentEditor: FC = (props) => { + const { model, style, onChange } = props; + const playground = usePlayground(); + const placeholder = usePlaceholder({ model }); + const editorRef = useRef(null); + + // 同步编辑器内部值变化 + useEffect(() => { + const disposer = model.on((params) => { + if (params.type !== CommentEditorEvent.Change) { + return; + } + onChange?.(model.value); + }); + return () => disposer.dispose(); + }, [model, onChange]); + + useEffect(() => { + if (!editorRef.current) { + return; + } + model.element = editorRef.current; + }, [editorRef]); + + return ( +
+

{placeholder}

+