From 2e0775e6cd9be148d9cc841775a34af7f592e080 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 9 Nov 2025 10:31:31 +0000 Subject: [PATCH] Add Flowgram integration status documentation and install dependencies Co-authored-by: whyour <22700758+whyour@users.noreply.github.com> --- FLOWGRAM_INTEGRATION_STATUS.md | 151 ++++++++ pnpm-lock.yaml | 684 ++++++++++++++++++++++++++++++++- 2 files changed, 828 insertions(+), 7 deletions(-) create mode 100644 FLOWGRAM_INTEGRATION_STATUS.md diff --git a/FLOWGRAM_INTEGRATION_STATUS.md b/FLOWGRAM_INTEGRATION_STATUS.md new file mode 100644 index 00000000..65301615 --- /dev/null +++ b/FLOWGRAM_INTEGRATION_STATUS.md @@ -0,0 +1,151 @@ +# Flowgram 可视化工作流集成进度 (Flowgram Visual Workflow Integration Progress) + +## 当前状态 (Current Status) + +### ✅ 已完成 (Completed - Commit: fffc1e4) + +1. **依赖安装** (Dependencies Installed) + - `@flowgram.ai/free-layout-editor@1.0.2` + - `@flowgram.ai/core@1.0.2` + - `@flowgram.ai/reactive@1.0.2` + +2. **数据模型更新** (Data Model Updates) + - 添加 `workflowGraph` 字段到 Scenario 模型 + - 保留旧字段以保持向后兼容 + - 数据库迁移脚本已更新 + +3. **API 层更新** (API Layer Updates) + - `triggerType` 从必需改为可选 + - 添加 `workflowGraph` 参数支持 + - Create 和 Update 端点已更新 + +4. **前端基础** (Frontend Foundation) + - 创建新的 `flowgramModal.tsx` 组件 + - 主页面更新使用新的模态框 + - 基础工作流结构定义 + +### 🔄 需要完成 (To Be Completed) + +#### 1. 完善 Flowgram 编辑器集成 (Complete Flowgram Editor Integration) + +**当前问题**: Flowgram.ai 的详细 API 文档不完全公开。需要: +- 研究 Flowgram API 的正确使用方式 +- 实现自定义节点渲染器 +- 添加节点工具栏和配置面板 + +**临时方案**: +- 可以使用 React Flow 或其他开源流程图库作为替代 +- 或等待 Flowgram 官方文档/示例 + +#### 2. 自定义节点类型实现 (Custom Node Types) + +需要实现以下节点类型: + +```typescript +// Trigger Nodes (触发器节点) +- TimeT riggerNode: 时间触发配置 +- WebhookTriggerNode: Webhook 触发配置 +- VariableTriggerNode: 变量监听配置 +- TaskStatusTriggerNode: 任务状态触发 +- SystemEventTriggerNode: 系统事件触发 + +// Condition Nodes (条件节点) +- ConditionNode: 条件判断配置 +- LogicGateNode: AND/OR 逻辑门 + +// Action Nodes (动作节点) +- RunTaskNode: 运行任务配置 +- SetVariableNode: 设置变量配置 +- ExecuteCommandNode: 执行命令配置 +- SendNotificationNode: 发送通知配置 + +// Control Flow Nodes (控制流节点) +- DelayNode: 延迟执行 +- RetryNode: 重试策略 +- CircuitBreakerNode: 熔断器 +``` + +#### 3. 节点配置面板 (Node Configuration Panels) + +每个节点类型需要自己的配置表单: +- 双击节点打开配置面板 +- 表单验证 +- 实时预览 + +#### 4. 后端执行引擎重写 (Backend Execution Engine Rewrite) + +当前 `ScenarioService.executeScenario()` 是线性执行。需要: + +```typescript +// 新的图执行引擎 +class GraphExecutor { + async execute(workflowGraph: any, triggerData: any) { + // 1. 查找入口节点(触发器节点) + // 2. 遍历图结构 + // 3. 评估条件节点 + // 4. 执行动作节点 + // 5. 处理分支和合并 + // 6. 记录执行轨迹 + } +} +``` + +#### 5. 工作流验证 (Workflow Validation) + +- 检查是否有有效的触发器节点 +- 验证节点连接的完整性 +- 检测循环 +- 验证节点配置 + +#### 6. 测试和调试 (Testing & Debugging) + +- 单元测试 +- 集成测试 +- UI 测试 +- 性能测试 + +## 实现建议 (Implementation Recommendations) + +### 方案 A: 完整 Flowgram 集成 (推荐如有文档) +如果能获取 Flowgram 完整文档和示例: +1. 参考官方示例实现自定义节点 +2. 使用 Flowgram 的插件系统 +3. 利用 Flowgram 的内置功能 + +### 方案 B: 使用 React Flow (备选方案) +如果 Flowgram 文档不足: +1. 使用 React Flow (`reactflow` npm package) +2. 成熟的文档和社区支持 +3. 更容易实现自定义节点 +4. 保持相同的数据结构 + +### 方案 C: 混合方案 +1. 前端继续改进表单界面 +2. 后端同时支持表单数据和图数据 +3. 渐进式迁移 + +## 预估工作量 (Estimated Effort) + +- **方案 A** (Flowgram): 20-30 小时(假设有文档) +- **方案 B** (React Flow): 15-20 小时 +- **方案 C** (渐进式): 10-15 小时初始,后续持续 + +## 下一步建议 (Next Steps Recommendations) + +1. **立即**: 确认是否有 Flowgram 官方文档或示例代码 +2. **短期**: 实现一个简单的节点(如触发器节点)作为 POC +3. **中期**: 完成所有节点类型和配置面板 +4. **长期**: 重写执行引擎并测试 + +## 技术债务注意 (Technical Debt Notes) + +- 旧的表单数据结构被标记为 deprecated 但仍保留 +- 需要在未来版本中清理 +- 数据库包含两套结构的字段 + +## 联系和协作 (Contact & Collaboration) + +如需加速开发,建议: +1. 获取 Flowgram 官方支持或文档 +2. 提供 Flowgram 集成的参考示例 +3. 或考虑使用 React Flow 等替代方案 diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index abe9e4f6..4e4bfc61 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -156,6 +156,15 @@ importers: '@codemirror/view': specifier: ^6.34.1 version: 6.38.6 + '@flowgram.ai/core': + specifier: ^1.0.2 + version: 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-layout-editor': + specifier: ^1.0.2 + version: 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@6.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@flowgram.ai/reactive': + specifier: ^1.0.2 + version: 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@monaco-editor/react': specifier: 4.2.1 version: 4.2.1(monaco-editor@0.33.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1024,6 +1033,10 @@ packages: '@dabh/diagnostics@2.0.8': resolution: {integrity: sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q==} + '@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: @@ -1404,6 +1417,177 @@ packages: react: '>=16.8.0' react-dom: '>=16.8.0' + '@flowgram.ai/background-plugin@1.0.2': + resolution: {integrity: sha512-H9sKO5178pUj01lNPRVgtB8dxeorh+qJd1EYWQ8c+pSo1YZ6XmDBf/N0E0ZGx4th5dvdZctDe1DOqmyYzOpMMw==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/command@1.0.2': + resolution: {integrity: sha512-9ChIzqUgI2aarG7Ekq8buDLOp3RvQbWyBwQxfBxq8COY2KfWdjCpvhk8MvUJY3wIpgJ2SyXMSu4ckd07RU4VYg==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/core@1.0.2': + resolution: {integrity: sha512-FAT5Ki0nNDNRDdaj8a+IkKLz0DDzY3T3K+SDdznFs/HtbY93IoO+XdjpW070mFAW2lw93WZGElGjuZ53k1AyTw==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/document@1.0.2': + resolution: {integrity: sha512-v1yRHNU8xoSRNBk2Hjb7UlebRIZfgap4N0PXM9XzhuA7jDXKD6Ny4OcJBPwN5WNv3DVVpMS9smXf2t1FLdwR/g==} + + '@flowgram.ai/editor@1.0.2': + resolution: {integrity: sha512-gnewdJIZyFNzdBdQRPb8LQsf2FdeksXDTCK2ZPy62NcbnOA0rnNDIBAye96Jj/fCCQHg/afedXzH1QFeLeJ3Qg==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/form-core@1.0.2': + resolution: {integrity: sha512-QnflciekMcMTB5aU4mhFSqnDV+vMvw5DsPeYi7N3Q90G+1qSzvMGXFqZmFhTjzL6vAEPDHcE0Zre4XqP2ebuag==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/form@1.0.2': + resolution: {integrity: sha512-U+xYZ+MbZ340HMheD7rvLgBc/9tj+e7Z95XfNy1Lk4d2GULdYxnvuzWnPWtMoTipKkLKFtLPPrPNaSWPgi54mA==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/free-auto-layout-plugin@1.0.2': + resolution: {integrity: sha512-wtABosvSPZW+2REupFyr7UFzr9tPYACuhmogIb29Z02ZmK2DcXN3hoMHRkrvFP0+BnXkdKKSA7GuR9yWzv9vwQ==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + styled-components: '>=5' + + '@flowgram.ai/free-history-plugin@1.0.2': + resolution: {integrity: sha512-6u3TiXTvnpEQUwA1FYFdBS30urXUBE+doBrYtkQTL69rujwW2P0dKAqx+3xuqS2boni7w8SVRWCtEfEPqxgyMw==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/free-hover-plugin@1.0.2': + resolution: {integrity: sha512-9tdHq0oopGyV/7ssxA9NdVj/112852OntE5t0JrpLef1FI//lzfKJ0nzn35FjgpsR0ejXdtV8Y5zOXMikwhSVg==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/free-layout-core@1.0.2': + resolution: {integrity: sha512-o06OkanwQo6IKwvcd99YljTQkX3RyDLnfSwAfCRBWwQcDzRCHlpsoJc3Yq3zNpMfuHMpGNK2WjU9Ugf3awwn2A==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/free-layout-editor@1.0.2': + resolution: {integrity: sha512-7GsQT6WtW1iqtIu+VgY1Xl1piTklyOQGKIa8aHLn0QkGGr9u4hqBRAmrFl3oWhTov0cBfKb2q6Q9YSle7dHLiQ==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/free-lines-plugin@1.0.2': + resolution: {integrity: sha512-50iLdqee1CKi5BO719v8Zv0xhs9bpt6qYLf6SZol4tq6tdmAvpsgSrnlFISlq8HqbDuCkhwRByoL0RAwe4WKTQ==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + styled-components: '>=5' + + '@flowgram.ai/free-stack-plugin@1.0.2': + resolution: {integrity: sha512-HwQYjvLyAs3BFwi1lQ/19OmOUIgmDwG+BZP7MNgRfHCuR1mSlKd2p1ho1a5BeZbKMIYj6iW0mpHcD28z40SJQw==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + styled-components: '>=5' + + '@flowgram.ai/history-node-plugin@1.0.2': + resolution: {integrity: sha512-JCRIovGDzQ4xrdFzJBBqZ5t5Ehb52DD5XI2jdJ/pBZfLZeWTZtA6JV+McDGjg8opM6620sgB/2/e9GbCqxfSgw==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/history@1.0.2': + resolution: {integrity: sha512-b9bA3RakgMpxiUxohEkqrAtnjmu8/das5KJbVwwQd2gMzrds2W5tA3sfwBToi60cK8UEidVSbFGXErMZfr5yUA==} + + '@flowgram.ai/i18n-plugin@1.0.2': + resolution: {integrity: sha512-IUxG3PLWl/hKemiPAfUsem/eDsC+Omrd8Lz2ml0CDXHw8avYR32szfGfxPfsPdMgiu9MEowE58OUnWwK80aRuQ==} + + '@flowgram.ai/i18n@1.0.2': + resolution: {integrity: sha512-oUE/AoamwIbqcA77zaSgj3NfMu4Z+mZMogYpDPDWro94gIJ21n1B8313NQz8lkbILU9Pkdpojr7BW8IP1QDQCg==} + + '@flowgram.ai/materials-plugin@1.0.2': + resolution: {integrity: sha512-7AxDpCPp4tSxD4hhbqpgk9USmW9JzQM9QaJxE7LgzNc/gv9xRA6RRdMcsAH9BSEx6sa0olaqjYpDUiRbqUi3ew==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/node-core-plugin@1.0.2': + resolution: {integrity: sha512-+BYMoD5uAFykbDxP1Ua5DUNsoXArs+g/M8e+PnDDAWEm2+NWB039ag07Jk2GVw243fUrfppie49FA38IW/gNfA==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/node-variable-plugin@1.0.2': + resolution: {integrity: sha512-/7bxj3OV3OutCl6jhVsuxbKPkeY1Fx85Uk7AjUqdBsAJmn86cBFce7bwfQLlcdX4Bq9cEgspAxLsh+HHndCejA==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/node@1.0.2': + resolution: {integrity: sha512-Q1oMVLahrS+IdP1VQzpKt5grFCixNDDX2SifN5RsmY4sDpkvn/QnHlRcDqB+icvjYSAGCsU8Qotkl64KiztMYg==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/playground-react@1.0.2': + resolution: {integrity: sha512-ITBY0F5fvUTuiI5saTluAPoAhSK9kfYe1WMn5baAXQuDJmSrhWHsf/mVTfOmdWqYpCJK8NLEeeAYhdtOpzowEw==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/reactive@1.0.2': + resolution: {integrity: sha512-Ec3ICxZshlr1yoZHMJQqAy1FlI7aq1xTVl8TwXBZuhwVTv2tJsuQ4HHSUSVLtTe3CS6R0VJ1e2CDXDKiLleGvw==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/redux-devtool-plugin@1.0.2': + resolution: {integrity: sha512-YYIa0JzWt18WHSXSPtU0mJn+nUxDKHiBG/OBP0hTg+NHEiiLzYyq7CAYOESpFGl64HdgAMs18dQOCeEGVed7Hg==} + + '@flowgram.ai/renderer@1.0.2': + resolution: {integrity: sha512-/Ml/2mM3w0rWQtnCJQJpsBeif48PYltZY9zn2OulH0Hqjln2f99f3N2JaDG48vw+SMbmaGOEeCBDDDo2YnuiEw==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/select-box-plugin@1.0.2': + resolution: {integrity: sha512-Agy5dFSqK515e/wdcG+BEvb+x+vYM59xfdxv8Mo4AMglB9wZitWy1e65qKudjfp7AJsgnfFdID2c5rT77Kqe4Q==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/shortcuts-plugin@1.0.2': + resolution: {integrity: sha512-WikjzG+2m10U/0sGAO/8X/tcjNKziLb8nPN6GpiPAzMA8JdSqvQORH3yzGWEuqB1WWZL83vs/kvojMhX/EIYcA==} + + '@flowgram.ai/utils@1.0.2': + resolution: {integrity: sha512-KaCVSVjABjUGpOK983I++//vGIfkvUbnpHZcoBgKN4VxqpAA3sYCP+AoFGq7UiJKKdEqTbi0xwAq4gC2GDXY7Q==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/variable-core@1.0.2': + resolution: {integrity: sha512-3L8LuYnPzp/+5vt3pV/ZIYV1GRMh4YuVDG4or3yGLosjHu6nRQQbfZ+CmDFCtAQ2e7g02/dcMQgjALi6B1Cnmg==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@flowgram.ai/variable-layout@1.0.2': + resolution: {integrity: sha512-KWaZm0qAtvBQ9fXTG2DnGQYWHlU8QzbrPKRjTorwz8cNQt5K4cypAnkxCIH75wuddmAafG81fHoEjn5w8phVNA==} + + '@flowgram.ai/variable-plugin@1.0.2': + resolution: {integrity: sha512-kbLMv1sXlz47QdHcWcDT/eYaoAM+YnZLK4NWf1le1N52Q+1NMWribkFpJQ9wZxkRxtCzHKKPamx2uLzRc1tTFw==} + '@formatjs/intl-displaynames@1.2.10': resolution: {integrity: sha512-GROA2RP6+7Ouu0WnHFF78O5XIU7pBfI19WM1qm93l6MFWibUk67nCfVCK3VAYJkLy8L8ZxjkYT11VIAfvSz8wg==} @@ -1458,6 +1642,17 @@ packages: '@iconify/utils@2.1.1': resolution: {integrity: sha512-H8xz74JDzDw8f0qLxwIaxFMnFkbXTZNWEufOk3WxaLFHV4h0A2FjIDgNk5LzC0am4jssnjdeJJdRs3UFu3582Q==} + '@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 + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -1754,6 +1949,15 @@ packages: '@otplib/preset-default@12.0.1': resolution: {integrity: sha512-xf1v9oOJRyXfluBhMdpOkr+bsE+Irt+0D5uHtvg6x1eosfmHCsCC6ej/m7FXiWqdo0+ZUI6xSKDhJwc8yfiOPQ==} + '@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==} + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -2189,6 +2393,9 @@ packages: '@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==} + '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} @@ -3195,6 +3402,9 @@ packages: before@0.0.1: resolution: {integrity: sha512-1J5SWbkoVJH9DTALN8igB4p+nPKZzPrJ/HomqBDLpfUvDXCdjdBmBUcH5McZfur0lftVssVU6BZug5NYh87zTw==} + bezier-js@6.1.4: + resolution: {integrity: sha512-PA0FW9ZpcHbojUCMu28z9Vg/fNkwTj5YhusSAjHHDfHDGLxJ6YUKrAN2vk1fP2MMOxVw4Oko16FMlRGVBGqLKg==} + big-integer@1.6.52: resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} engines: {node: '>=0.6'} @@ -3202,6 +3412,9 @@ packages: big.js@5.2.2: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + bignumber.js@9.3.1: + resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} + binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} @@ -3420,6 +3633,10 @@ packages: resolution: {integrity: sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==} engines: {node: '>=6'} + clsx@1.2.1: + resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} + engines: {node: '>=6'} + codemirror-lang-mermaid@0.5.0: resolution: {integrity: sha512-Taw/2gPCyNArQJCxIP/HSUif+3zrvD+6Ugt7KJZ2dUKou/8r3ZhcfG8krNTZfV2iu8AuGnymKuo7bLPFyqsh/A==} @@ -4296,6 +4513,9 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + fast-equals@2.0.4: + resolution: {integrity: sha512-caj/ZmjHljPrZtbzJ3kfH5ia/k4mTJe/qSiXAGzxZWRZgsgDV0cvNaQULqUX8t0/JVlzzEdYOwCN5DmzTxoD4w==} + fast-glob@3.2.12: resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} engines: {node: '>=8.6.0'} @@ -4750,6 +4970,9 @@ packages: humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + i18n-js@4.5.1: + resolution: {integrity: sha512-n7jojFj1WC0tztgr0I8jqTXuIlY1xNzXnC3mjKX/YjJhimdM+jXM8vOmn9d3xQFNC6qDHJ4ovhdrGXrRXLIGkA==} + iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -4855,6 +5078,11 @@ packages: invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + inversify@6.2.2: + resolution: {integrity: sha512-KB836KHbZ9WrUnB8ax5MtadOwnqQYa+ZJO3KWbPFgcr4RIEnHM621VaqFZzOZd9+U7ln6upt9n0wJei7x2BNqw==} + peerDependencies: + reflect-metadata: ~0.2.2 + ip-address@10.0.1: resolution: {integrity: sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==} engines: {node: '>= 12'} @@ -5455,6 +5683,9 @@ packages: resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} engines: {node: '>= 10'} + make-plural@7.4.0: + resolution: {integrity: sha512-4/gC9KVNTV6pvYg2gFeQYTW3mWaoJt7WZE5vrp1KnQDgW92JtYZnzmZT81oj/dUTqAIu0ufI2x3dkgu3bB1tYg==} + makeerror@1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} @@ -5662,6 +5893,11 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + nanoid@5.1.6: + resolution: {integrity: sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==} + engines: {node: ^18 || >=20} + hasBin: true + natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} @@ -9615,6 +9851,8 @@ snapshots: enabled: 2.0.0 kuler: 2.0.0 + '@dagrejs/graphlib@2.2.2': {} + '@dnd-kit/accessibility@3.1.1(react@18.3.1)': dependencies: react: 18.3.1 @@ -9883,6 +10121,388 @@ snapshots: transitivePeerDependencies: - '@types/react' + '@flowgram.ai/background-plugin@1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.2(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.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/utils': 1.0.2(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.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/command': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.2(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.17.21 + nanoid: 5.1.6 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + + '@flowgram.ai/document@1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.2(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.17.21 + nanoid: 5.1.6 + reflect-metadata: 0.2.2 + transitivePeerDependencies: + - react + - react-dom + + '@flowgram.ai/editor@1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/form': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/form-core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/history': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/history-node-plugin': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/i18n-plugin': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/materials-plugin': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/node': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/node-core-plugin': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/node-variable-plugin': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/playground-react': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/reactive': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/redux-devtool-plugin': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/renderer': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/shortcuts-plugin': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/variable-plugin': 1.0.2(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/form-core@1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.2(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.17.21 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + + '@flowgram.ai/form@1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/reactive': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + fast-equals: 2.0.4 + lodash-es: 4.17.21 + nanoid: 5.1.6 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@flowgram.ai/free-auto-layout-plugin@1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@6.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': + dependencies: + '@dagrejs/graphlib': 2.2.2 + '@flowgram.ai/core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-layout-core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.2(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: 6.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + + '@flowgram.ai/free-history-plugin@1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/form-core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-layout-core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/history': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.2(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.17.21 + 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.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-layout-core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/renderer': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.2(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.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/form-core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/node': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/reactive': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.2(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.17.21 + nanoid: 5.1.6 + 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.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@6.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': + dependencies: + '@flowgram.ai/editor': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-auto-layout-plugin': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@6.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@flowgram.ai/free-history-plugin': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-hover-plugin': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-layout-core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-lines-plugin': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@6.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@flowgram.ai/free-stack-plugin': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@6.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@flowgram.ai/history': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/select-box-plugin': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.2(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.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@6.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': + dependencies: + '@flowgram.ai/core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-layout-core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-stack-plugin': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@6.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@flowgram.ai/renderer': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.2(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: 6.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + + '@flowgram.ai/free-stack-plugin@1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@6.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': + dependencies: + '@flowgram.ai/core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-layout-core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.2(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.17.21 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + styled-components: 6.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + + '@flowgram.ai/history-node-plugin@1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/form': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/form-core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/history': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/node': 1.0.2(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.17.21 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + + '@flowgram.ai/history@1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.2(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.17.21 + nanoid: 5.1.6 + reflect-metadata: 0.2.2 + transitivePeerDependencies: + - react + - react-dom + + '@flowgram.ai/i18n-plugin@1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/i18n': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + transitivePeerDependencies: + - react + - react-dom + + '@flowgram.ai/i18n@1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/utils': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + i18n-js: 4.5.1 + transitivePeerDependencies: + - react + - react-dom + + '@flowgram.ai/materials-plugin@1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/renderer': 1.0.2(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-core-plugin@1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/form-core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/node': 1.0.2(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.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/form-core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/node': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/variable-plugin': 1.0.2(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.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/form': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/form-core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.2(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.17.21 + nanoid: 5.1.6 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + + '@flowgram.ai/playground-react@1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/background-plugin': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/shortcuts-plugin': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.2(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.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/utils': 1.0.2(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.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/variable-core': 1.0.2(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.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/i18n': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.2(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.17.21 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + + '@flowgram.ai/select-box-plugin@1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/renderer': 1.0.2(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.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.2(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/utils@1.0.2(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.6 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reflect-metadata: 0.2.2 + + '@flowgram.ai/variable-core@1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/utils': 1.0.2(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.17.21 + nanoid: 5.1.6 + 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.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/free-layout-core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/variable-core': 1.0.2(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.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@flowgram.ai/core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/document': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/variable-core': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flowgram.ai/variable-layout': 1.0.2(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 + '@formatjs/intl-displaynames@1.2.10': dependencies: '@formatjs/intl-utils': 2.3.0 @@ -9947,6 +10567,19 @@ snapshots: transitivePeerDependencies: - supports-color + '@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 + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -10324,6 +10957,17 @@ snapshots: '@otplib/plugin-crypto': 12.0.1 '@otplib/plugin-thirty-two': 12.0.1 + '@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 + '@pkgjs/parseargs@0.11.0': optional: true @@ -10845,6 +11489,8 @@ snapshots: '@tsconfig/node16@1.0.4': {} + '@tweenjs/tween.js@18.6.4': {} + '@types/babel__core@7.20.5': dependencies: '@babel/parser': 7.28.5 @@ -10943,7 +11589,7 @@ snapshots: '@types/history@5.0.0': dependencies: - history: 4.10.1 + history: 5.3.0 '@types/hoist-non-react-statics@3.3.7(@types/react@18.3.26)': dependencies: @@ -11056,7 +11702,7 @@ snapshots: '@types/history': 4.7.11 '@types/react': 18.3.26 '@types/react-router': 5.1.20 - redux: 3.7.2 + redux: 4.2.1 '@types/react-router@5.1.20': dependencies: @@ -11362,7 +12008,7 @@ snapshots: postcss-preset-env: 7.5.0(postcss@8.5.6) rollup-plugin-visualizer: 5.9.0(rollup@3.29.5) systemjs: 6.15.1 - vite: 4.5.2(@types/node@17.0.45)(less@4.1.3)(lightningcss@1.22.1)(sass@1.54.0)(terser@5.44.1) + vite: 4.5.2(@types/node@17.0.45)(less@4.4.2)(lightningcss@1.22.1)(sass@1.54.0)(terser@5.44.1) transitivePeerDependencies: - '@types/node' - lightningcss @@ -11877,7 +12523,7 @@ snapshots: '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.5) '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.5) react-refresh: 0.14.2 - vite: 4.5.2(@types/node@17.0.45)(less@4.1.3)(lightningcss@1.22.1)(sass@1.54.0)(terser@5.44.1) + vite: 4.5.2(@types/node@17.0.45)(less@4.4.2)(lightningcss@1.22.1)(sass@1.54.0)(terser@5.44.1) transitivePeerDependencies: - supports-color @@ -12419,10 +13065,14 @@ snapshots: before@0.0.1: {} + bezier-js@6.1.4: {} + big-integer@1.6.52: {} big.js@5.2.2: {} + bignumber.js@9.3.1: {} + binary-extensions@2.3.0: {} block-stream2@2.1.0: @@ -12720,6 +13370,8 @@ snapshots: dependencies: is-regexp: 2.1.0 + clsx@1.2.1: {} + codemirror-lang-mermaid@0.5.0: dependencies: '@codemirror/language': 6.11.3 @@ -13830,6 +14482,8 @@ snapshots: fast-deep-equal@3.1.3: {} + fast-equals@2.0.4: {} + fast-glob@3.2.12: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -14369,6 +15023,12 @@ snapshots: dependencies: ms: 2.1.3 + i18n-js@4.5.1: + dependencies: + bignumber.js: 9.3.1 + lodash: 4.17.21 + make-plural: 7.4.0 + iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 @@ -14456,6 +15116,12 @@ snapshots: dependencies: loose-envify: 1.4.0 + 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 + ip-address@10.0.1: optional: true @@ -15093,6 +15759,8 @@ snapshots: - supports-color optional: true + make-plural@7.4.0: {} + makeerror@1.0.12: dependencies: tmpl: 1.0.5 @@ -15287,6 +15955,8 @@ snapshots: nanoid@3.3.11: {} + nanoid@5.1.6: {} + natural-compare-lite@1.4.0: {} natural-compare@1.4.0: {} @@ -16925,7 +17595,7 @@ snapshots: adjust-sourcemap-loader: 4.0.0 convert-source-map: 1.9.0 loader-utils: 2.0.4 - postcss: 8.4.31 + postcss: 8.5.6 source-map: 0.6.1 resolve@1.22.11: @@ -18090,7 +18760,7 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - vite@4.5.2(@types/node@17.0.45)(less@4.1.3)(lightningcss@1.22.1)(sass@1.54.0)(terser@5.44.1): + vite@4.5.2(@types/node@17.0.45)(less@4.4.2)(lightningcss@1.22.1)(sass@1.54.0)(terser@5.44.1): dependencies: esbuild: 0.18.20 postcss: 8.5.6 @@ -18098,7 +18768,7 @@ snapshots: optionalDependencies: '@types/node': 17.0.45 fsevents: 2.3.3 - less: 4.1.3 + less: 4.4.2 lightningcss: 1.22.1 sass: 1.54.0 terser: 5.44.1