@emeryld/rrroutes-openapi 2.6.2 → 2.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/dist/index.cjs +1 -0
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.mjs +1 -0
  4. package/dist/index.mjs.map +1 -1
  5. package/dist/public/assets/Add.js +1 -0
  6. package/dist/public/assets/Autocomplete.js +1 -0
  7. package/dist/public/assets/BaseFilterBar.js +1 -0
  8. package/dist/public/assets/BentoGrid.js +1 -0
  9. package/dist/public/assets/CacheLogsPage.js +1 -0
  10. package/dist/public/assets/DeleteOutline.js +1 -0
  11. package/dist/public/assets/DiffPage.js +7 -0
  12. package/dist/public/assets/Download.js +1 -0
  13. package/dist/public/assets/EndpointDetailPage.js +1 -0
  14. package/dist/public/assets/EndpointDetailPanel.js +1 -0
  15. package/dist/public/assets/EndpointPlaygroundPage.js +1 -0
  16. package/dist/public/assets/ExpandLess.js +1 -0
  17. package/dist/public/assets/ExportButton.js +2 -0
  18. package/dist/public/assets/FlowBuilderPage.js +20 -0
  19. package/dist/public/assets/HistoryPage.js +1 -0
  20. package/dist/public/assets/LogsPage.js +1 -0
  21. package/dist/public/assets/PageContainer.js +3 -0
  22. package/dist/public/assets/PlayArrow.js +1 -0
  23. package/dist/public/assets/PresetsPage.js +4 -0
  24. package/dist/public/assets/RoutesPage.js +1 -0
  25. package/dist/public/assets/SchedulingPage.js +1 -0
  26. package/dist/public/assets/SchemaTreeView.js +1 -0
  27. package/dist/public/assets/SettingsPage.js +1 -0
  28. package/dist/public/assets/SocketsPage.js +1 -0
  29. package/dist/public/assets/docs.css +1 -1
  30. package/dist/public/assets/docs.js +95 -177
  31. package/dist/public/assets/filterTypes.js +1 -0
  32. package/dist/public/assets/getValidReactChildren.js +1 -0
  33. package/dist/public/assets/kvRowAdapters.js +1 -0
  34. package/dist/public/assets/schemaDefaults.js +1 -0
  35. package/dist/public/assets/useEndpointOptions.js +1 -0
  36. package/dist/public/assets/useQueryState.js +1 -0
  37. package/dist/public/assets/vendor-recharts.js +99 -0
  38. package/dist/public/assets/vendor-xyflow.js +15 -0
  39. package/dist/web/v2/AppShell.d.ts +1 -3
  40. package/dist/web/v2/components/diff/DiffViewer.d.ts +7 -0
  41. package/dist/web/v2/components/diff/RequestDiffSelector.d.ts +15 -0
  42. package/dist/web/v2/components/diff/SchemaDiffViewer.d.ts +7 -0
  43. package/dist/web/v2/components/feedback/CopyAsMenu.d.ts +10 -0
  44. package/dist/web/v2/components/feedback/CopySnackbar.d.ts +1 -0
  45. package/dist/web/v2/components/flows/FlowCanvas.d.ts +13 -0
  46. package/dist/web/v2/components/flows/FlowNodeEditor.d.ts +8 -0
  47. package/dist/web/v2/components/flows/FlowRunProgress.d.ts +7 -0
  48. package/dist/web/v2/components/flows/FlowVariablePanel.d.ts +7 -0
  49. package/dist/web/v2/components/flows/nodes/ConditionNode.d.ts +7 -0
  50. package/dist/web/v2/components/flows/nodes/DelayNode.d.ts +7 -0
  51. package/dist/web/v2/components/flows/nodes/ExtractNode.d.ts +8 -0
  52. package/dist/web/v2/components/flows/nodes/RequestNode.d.ts +10 -0
  53. package/dist/web/v2/components/layout/ActivityBar.d.ts +1 -0
  54. package/dist/web/v2/components/layout/BentoGrid.d.ts +17 -0
  55. package/dist/web/v2/components/layout/ContentArea.d.ts +1 -0
  56. package/dist/web/v2/components/layout/PanelRegistry.d.ts +17 -0
  57. package/dist/web/v2/components/request/LastRunPanel.d.ts +5 -0
  58. package/dist/web/v2/components/request/TimingBreakdown.d.ts +11 -0
  59. package/dist/web/v2/components/requests/timeline/TimelinePhaseBar.d.ts +13 -0
  60. package/dist/web/v2/components/requests/timeline/TimelineWaterfall.d.ts +12 -0
  61. package/dist/web/v2/hooks/useLeafEndpoint.d.ts +2 -2
  62. package/dist/web/v2/pages/DiffPage.d.ts +1 -0
  63. package/dist/web/v2/pages/FlowBuilderPage.d.ts +1 -0
  64. package/dist/web/v2/stores/flowStore.d.ts +70 -0
  65. package/dist/web/v2/stores/layoutStore.d.ts +13 -0
  66. package/dist/web/v2/stores/playgroundSettingsStore.d.ts +10 -0
  67. package/dist/web/v2/stores/snackbarStore.d.ts +17 -0
  68. package/dist/web/v2/types/types.cacheLog.d.ts +135 -49
  69. package/dist/web/v2/types/types.endpoint.d.ts +195 -139
  70. package/dist/web/v2/types/types.log.d.ts +48 -19
  71. package/dist/web/v2/types/types.preset.d.ts +168 -84
  72. package/dist/web/v2/types/types.requestLog.d.ts +135 -90
  73. package/dist/web/v2/types/types.scheduling.d.ts +87 -37
  74. package/dist/web/v2/types/types.socket.d.ts +69 -33
  75. package/dist/web/v2/utils/codeGeneration.d.ts +12 -0
  76. package/dist/web/v2/utils/diffUtils.d.ts +11 -0
  77. package/dist/web/v2/utils/flowRunner.d.ts +17 -0
  78. package/dist/web/v2/utils/templateResolver.d.ts +4 -0
  79. package/package.json +15 -12
@@ -166,27 +166,55 @@ export declare const schedulingLeaves: readonly [{
166
166
  totalCount: z.ZodOptional<z.ZodNumber>;
167
167
  nextCursor: z.ZodOptional<z.ZodString>;
168
168
  }, z.core.$strip>;
169
- }>> & {
170
- outputSchema: z.ZodObject<{
171
- out: z.ZodArray<z.ZodObject<{
172
- id: z.ZodString;
173
- name: z.ZodString;
174
- description: z.ZodOptional<z.ZodString>;
175
- groupId: z.ZodOptional<z.ZodString>;
176
- tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
177
- createdAt: z.ZodNumber;
178
- updatedAt: z.ZodNumber;
179
- scheduledAt: z.ZodNumber;
180
- startedAt: z.ZodOptional<z.ZodNumber>;
181
- completedAt: z.ZodOptional<z.ZodNumber>;
182
- status: z.ZodString;
183
- }, z.core.$strip>>;
184
- meta: z.ZodObject<{
185
- totalCount: z.ZodOptional<z.ZodNumber>;
186
- nextCursor: z.ZodOptional<z.ZodString>;
187
- }, z.core.$strip>;
169
+ }>> & import("@emeryld/rrroutes-contract").OutputField<import("@emeryld/rrroutes-contract").Prettify<Omit<{
170
+ feed: true;
171
+ outputSchema: z.ZodArray<z.ZodObject<{
172
+ id: z.ZodString;
173
+ name: z.ZodString;
174
+ description: z.ZodOptional<z.ZodString>;
175
+ groupId: z.ZodOptional<z.ZodString>;
176
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
177
+ createdAt: z.ZodNumber;
178
+ updatedAt: z.ZodNumber;
179
+ scheduledAt: z.ZodNumber;
180
+ startedAt: z.ZodOptional<z.ZodNumber>;
181
+ completedAt: z.ZodOptional<z.ZodNumber>;
182
+ status: z.ZodString;
183
+ }, z.core.$strip>>;
184
+ querySchema: z.ZodObject<{
185
+ beforeDate: z.ZodOptional<z.ZodString>;
186
+ afterDate: z.ZodOptional<z.ZodString>;
187
+ orderBy: z.ZodOptional<z.ZodString>;
188
+ orderDirection: z.ZodOptional<z.ZodEnum<{
189
+ asc: "asc";
190
+ desc: "desc";
191
+ }>>;
192
+ searchQuery: z.ZodOptional<z.ZodString>;
193
+ groupsInclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
194
+ groupsExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
195
+ tagsInclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
196
+ tagsExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
197
+ statusesInclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
198
+ statusesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
188
199
  }, z.core.$strip>;
189
- } & {
200
+ outputMetaSchema: z.ZodObject<{
201
+ totalCount: z.ZodOptional<z.ZodNumber>;
202
+ nextCursor: z.ZodOptional<z.ZodString>;
203
+ }, z.core.$strip>;
204
+ queryExtensionSchema: z.ZodObject<{
205
+ cursor: z.ZodOptional<z.ZodString>;
206
+ pageSize: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
207
+ }, z.core.$strip>;
208
+ }, "queryExtensionSchema" | "outputMetaSchema"> & {
209
+ queryExtensionSchema: z.ZodObject<{
210
+ cursor: z.ZodOptional<z.ZodString>;
211
+ pageSize: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
212
+ }, z.core.$strip>;
213
+ outputMetaSchema: z.ZodObject<{
214
+ totalCount: z.ZodOptional<z.ZodNumber>;
215
+ nextCursor: z.ZodOptional<z.ZodString>;
216
+ }, z.core.$strip>;
217
+ }>> & {
190
218
  paramsSchema: undefined;
191
219
  }>, "outputMetaSchema" | "bodySchema" | "querySchema" | "paramsSchema" | "outputSchema"> & {
192
220
  bodySchema: import("@emeryld/rrroutes-contract").RouteSchema<unknown, unknown> | undefined;
@@ -354,18 +382,33 @@ export declare const schedulingLeaves: readonly [{
354
382
  totalCount: z.ZodOptional<z.ZodNumber>;
355
383
  nextCursor: z.ZodOptional<z.ZodString>;
356
384
  }, z.core.$strip>;
357
- }>> & {
358
- outputSchema: z.ZodObject<{
359
- out: z.ZodArray<z.ZodObject<{
360
- name: z.ZodString;
361
- payload: z.ZodString;
362
- }, z.core.$strip>>;
363
- meta: z.ZodObject<{
364
- totalCount: z.ZodOptional<z.ZodNumber>;
365
- nextCursor: z.ZodOptional<z.ZodString>;
366
- }, z.core.$strip>;
385
+ }>> & import("@emeryld/rrroutes-contract").OutputField<import("@emeryld/rrroutes-contract").Prettify<Omit<{
386
+ feed: true;
387
+ outputSchema: z.ZodArray<z.ZodObject<{
388
+ name: z.ZodString;
389
+ payload: z.ZodString;
390
+ }, z.core.$strip>>;
391
+ querySchema: z.ZodObject<{
392
+ name: z.ZodOptional<z.ZodString>;
367
393
  }, z.core.$strip>;
368
- } & {
394
+ outputMetaSchema: z.ZodObject<{
395
+ totalCount: z.ZodOptional<z.ZodNumber>;
396
+ nextCursor: z.ZodOptional<z.ZodString>;
397
+ }, z.core.$strip>;
398
+ queryExtensionSchema: z.ZodObject<{
399
+ cursor: z.ZodOptional<z.ZodString>;
400
+ pageSize: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
401
+ }, z.core.$strip>;
402
+ }, "queryExtensionSchema" | "outputMetaSchema"> & {
403
+ queryExtensionSchema: z.ZodObject<{
404
+ cursor: z.ZodOptional<z.ZodString>;
405
+ pageSize: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
406
+ }, z.core.$strip>;
407
+ outputMetaSchema: z.ZodObject<{
408
+ totalCount: z.ZodOptional<z.ZodNumber>;
409
+ nextCursor: z.ZodOptional<z.ZodString>;
410
+ }, z.core.$strip>;
411
+ }>> & {
369
412
  paramsSchema: undefined;
370
413
  }>, "outputMetaSchema" | "bodySchema" | "querySchema" | "paramsSchema" | "outputSchema"> & {
371
414
  bodySchema: import("@emeryld/rrroutes-contract").RouteSchema<unknown, unknown> | undefined;
@@ -471,14 +514,21 @@ export declare const schedulingLeaves: readonly [{
471
514
  feed?: boolean;
472
515
  } & {
473
516
  querySchema?: undefined;
474
- } & {
517
+ } & import("@emeryld/rrroutes-contract").OutputField<import("@emeryld/rrroutes-contract").Prettify<Omit<import("@emeryld/rrroutes-contract").Prettify<Omit<{
518
+ bodySchema: z.ZodObject<{
519
+ name: z.ZodString;
520
+ payload: z.ZodAny;
521
+ runAt: z.ZodCoercedDate<unknown>;
522
+ }, z.core.$strip>;
475
523
  outputSchema: z.ZodObject<{
476
- out: z.ZodObject<{
477
- success: z.ZodBoolean;
478
- }, z.core.$strip>;
479
- meta: z.ZodOptional<z.ZodString>;
524
+ success: z.ZodBoolean;
480
525
  }, z.core.$strip>;
481
- } & {
526
+ }, "feed"> & {
527
+ feed: false;
528
+ }>, "queryExtensionSchema" | "outputMetaSchema"> & {
529
+ queryExtensionSchema: undefined;
530
+ outputMetaSchema: undefined;
531
+ }>> & {
482
532
  paramsSchema: undefined;
483
533
  }>, "outputMetaSchema" | "bodySchema" | "querySchema" | "paramsSchema" | "outputSchema"> & {
484
534
  bodySchema: import("@emeryld/rrroutes-contract").RouteSchema<{
@@ -192,33 +192,62 @@ export declare const socketLeaves: readonly [{
192
192
  totalCount: z.ZodOptional<z.ZodNumber>;
193
193
  nextCursor: z.ZodOptional<z.ZodString>;
194
194
  }, z.core.$strip>;
195
- }>> & {
196
- outputSchema: z.ZodObject<{
197
- out: z.ZodArray<z.ZodObject<{
198
- id: z.ZodString;
199
- description: z.ZodOptional<z.ZodString>;
200
- groupId: z.ZodOptional<z.ZodString>;
201
- tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
202
- createdAt: z.ZodNumber;
203
- updatedAt: z.ZodNumber;
204
- name: z.ZodString;
205
- message: z.ZodOptional<z.ZodAny>;
206
- origin: z.ZodUnion<readonly [z.ZodLiteral<"server">, z.ZodString]>;
207
- direction: z.ZodEnum<{
208
- incoming: "incoming";
209
- outgoing: "outgoing";
210
- broadcast: "broadcast";
211
- }>;
212
- socketId: z.ZodOptional<z.ZodString>;
213
- rooms: z.ZodOptional<z.ZodArray<z.ZodString>>;
214
- except: z.ZodOptional<z.ZodArray<z.ZodString>>;
215
- }, z.core.$strip>>;
216
- meta: z.ZodObject<{
217
- totalCount: z.ZodOptional<z.ZodNumber>;
218
- nextCursor: z.ZodOptional<z.ZodString>;
219
- }, z.core.$strip>;
195
+ }>> & import("@emeryld/rrroutes-contract").OutputField<import("@emeryld/rrroutes-contract").Prettify<Omit<{
196
+ feed: true;
197
+ outputSchema: z.ZodArray<z.ZodObject<{
198
+ id: z.ZodString;
199
+ description: z.ZodOptional<z.ZodString>;
200
+ groupId: z.ZodOptional<z.ZodString>;
201
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
202
+ createdAt: z.ZodNumber;
203
+ updatedAt: z.ZodNumber;
204
+ name: z.ZodString;
205
+ message: z.ZodOptional<z.ZodAny>;
206
+ origin: z.ZodUnion<readonly [z.ZodLiteral<"server">, z.ZodString]>;
207
+ direction: z.ZodEnum<{
208
+ incoming: "incoming";
209
+ outgoing: "outgoing";
210
+ broadcast: "broadcast";
211
+ }>;
212
+ socketId: z.ZodOptional<z.ZodString>;
213
+ rooms: z.ZodOptional<z.ZodArray<z.ZodString>>;
214
+ except: z.ZodOptional<z.ZodArray<z.ZodString>>;
215
+ }, z.core.$strip>>;
216
+ querySchema: z.ZodObject<{
217
+ beforeDate: z.ZodOptional<z.ZodString>;
218
+ afterDate: z.ZodOptional<z.ZodString>;
219
+ orderBy: z.ZodOptional<z.ZodString>;
220
+ orderDirection: z.ZodOptional<z.ZodEnum<{
221
+ asc: "asc";
222
+ desc: "desc";
223
+ }>>;
224
+ searchQuery: z.ZodOptional<z.ZodString>;
225
+ groupsInclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
226
+ groupsExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
227
+ tagsInclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
228
+ tagsExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
229
+ eventName: z.ZodOptional<z.ZodString>;
230
+ roomsInclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
231
+ roomsExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
220
232
  }, z.core.$strip>;
221
- } & {
233
+ outputMetaSchema: z.ZodObject<{
234
+ totalCount: z.ZodOptional<z.ZodNumber>;
235
+ nextCursor: z.ZodOptional<z.ZodString>;
236
+ }, z.core.$strip>;
237
+ queryExtensionSchema: z.ZodObject<{
238
+ cursor: z.ZodOptional<z.ZodString>;
239
+ pageSize: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
240
+ }, z.core.$strip>;
241
+ }, "queryExtensionSchema" | "outputMetaSchema"> & {
242
+ queryExtensionSchema: z.ZodObject<{
243
+ cursor: z.ZodOptional<z.ZodString>;
244
+ pageSize: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
245
+ }, z.core.$strip>;
246
+ outputMetaSchema: z.ZodObject<{
247
+ totalCount: z.ZodOptional<z.ZodNumber>;
248
+ nextCursor: z.ZodOptional<z.ZodString>;
249
+ }, z.core.$strip>;
250
+ }>> & {
222
251
  paramsSchema: undefined;
223
252
  }>, "outputMetaSchema" | "bodySchema" | "querySchema" | "paramsSchema" | "outputSchema"> & {
224
253
  bodySchema: import("@emeryld/rrroutes-contract").RouteSchema<unknown, unknown> | undefined;
@@ -367,15 +396,22 @@ export declare const socketLeaves: readonly [{
367
396
  feed?: boolean;
368
397
  } & {
369
398
  querySchema?: undefined;
370
- } & {
399
+ } & import("@emeryld/rrroutes-contract").OutputField<import("@emeryld/rrroutes-contract").Prettify<Omit<import("@emeryld/rrroutes-contract").Prettify<Omit<{
400
+ bodySchema: z.ZodObject<{
401
+ eventName: z.ZodString;
402
+ message: z.ZodOptional<z.ZodJSONSchema>;
403
+ toRoomId: z.ZodNullable<z.ZodArray<z.ZodString>>;
404
+ }, z.core.$strip>;
371
405
  outputSchema: z.ZodObject<{
372
- out: z.ZodObject<{
373
- success: z.ZodBoolean;
374
- eventId: z.ZodOptional<z.ZodString>;
375
- }, z.core.$strip>;
376
- meta: z.ZodOptional<z.ZodString>;
406
+ success: z.ZodBoolean;
407
+ eventId: z.ZodOptional<z.ZodString>;
377
408
  }, z.core.$strip>;
378
- } & {
409
+ }, "feed"> & {
410
+ feed: false;
411
+ }>, "queryExtensionSchema" | "outputMetaSchema"> & {
412
+ queryExtensionSchema: undefined;
413
+ outputMetaSchema: undefined;
414
+ }>> & {
379
415
  paramsSchema: undefined;
380
416
  }>, "outputMetaSchema" | "bodySchema" | "querySchema" | "paramsSchema" | "outputSchema"> & {
381
417
  bodySchema: import("@emeryld/rrroutes-contract").RouteSchema<{
@@ -0,0 +1,12 @@
1
+ type RequestSpec = {
2
+ method: string;
3
+ url: string;
4
+ headers?: Record<string, string>;
5
+ body?: string;
6
+ queryParams?: Record<string, string>;
7
+ };
8
+ export declare function generateCurl(spec: RequestSpec): string;
9
+ export declare function generateFetch(spec: RequestSpec): string;
10
+ export declare function generateAxios(spec: RequestSpec): string;
11
+ export declare function generatePython(spec: RequestSpec): string;
12
+ export {};
@@ -0,0 +1,11 @@
1
+ import { type Change } from 'diff';
2
+ import type { SerializableSchema } from '../types/types.endpoint.js';
3
+ export type DiffChange = Change;
4
+ export declare function diffJson(a: unknown, b: unknown): DiffChange[];
5
+ export type ValidationSeverity = 'valid' | 'missing' | 'extra' | 'typeMismatch';
6
+ export type ValidationEntry = {
7
+ path: string;
8
+ severity: ValidationSeverity;
9
+ message: string;
10
+ };
11
+ export declare function validateAgainstSchema(data: unknown, schema: SerializableSchema, basePath?: string): ValidationEntry[];
@@ -0,0 +1,17 @@
1
+ import type { FlowDefinition, FlowRunState } from '../stores/flowStore.js';
2
+ export type FlowRunnerOptions = {
3
+ flow: FlowDefinition;
4
+ variables: Record<string, unknown>;
5
+ fetchFn: (method: string, path: string, options: {
6
+ headers?: Record<string, string>;
7
+ body?: string;
8
+ queryParams?: Record<string, string>;
9
+ }) => Promise<{
10
+ status: number;
11
+ data: unknown;
12
+ headers: Record<string, string>;
13
+ }>;
14
+ onProgress: (state: Partial<FlowRunState>) => void;
15
+ signal?: AbortSignal;
16
+ };
17
+ export declare function runFlow(options: FlowRunnerOptions): Promise<FlowRunState>;
@@ -0,0 +1,4 @@
1
+ export declare function resolveTemplateString(template: string, variables: Record<string, unknown>): string;
2
+ export declare function resolveTemplateObject<T>(obj: T, variables: Record<string, unknown>): T;
3
+ export declare function hasTemplateVariables(text: string): boolean;
4
+ export declare function extractTemplateVariables(text: string): string[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@emeryld/rrroutes-openapi",
3
- "version": "2.6.2",
3
+ "version": "2.6.3",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",
@@ -17,31 +17,34 @@
17
17
  "dist"
18
18
  ],
19
19
  "dependencies": {
20
- "@emeryld/rrroutes-client": "^2.5.4",
21
- "@emeryld/rrroutes-contract": "^2.5.4",
20
+ "@emeryld/rrroutes-client": "^2.7.13",
21
+ "@emeryld/rrroutes-contract": "^2.6.6",
22
22
  "@emotion/cache": "^11.14.0",
23
23
  "@emotion/react": "^11.14.0",
24
24
  "@emotion/styled": "^11.14.1",
25
- "@mui/icons-material": "^7.3.6",
26
- "@mui/material": "^7.3.6",
27
- "@tanstack/react-query": "^5.90.16",
25
+ "@mui/icons-material": "^7.3.9",
26
+ "@mui/material": "^7.3.9",
27
+ "@tanstack/react-query": "^5.96.2",
28
+ "@xyflow/react": "^12.10.2",
29
+ "diff": "^8.0.4",
28
30
  "react": "^18.3.1",
29
31
  "react-dom": "^18.3.1",
30
- "react-router-dom": "^7.11.0",
31
- "recharts": "^3.6.0",
32
+ "react-router-dom": "^7.14.0",
33
+ "recharts": "^3.8.1",
32
34
  "socket.io-client": "^4.8.3",
33
- "zod": "^4.2.1"
35
+ "zod": "^4.3.6"
34
36
  },
35
37
  "peerDependencies": {
36
38
  "express": "^5.1.0"
37
39
  },
38
40
  "devDependencies": {
39
- "@jest/globals": "^30.2.0",
41
+ "@jest/globals": "^30.3.0",
42
+ "@types/diff": "^8.0.0",
40
43
  "@types/express": "^5.0.6",
41
- "@types/react": "^18.3.27",
44
+ "@types/react": "^18.3.28",
42
45
  "@types/react-dom": "^18.3.7",
43
46
  "vite": "^6.4.1",
44
- "vite-plugin-terminal": "^1.3.0"
47
+ "vite-plugin-terminal": "^1.4.0"
45
48
  },
46
49
  "repository": {
47
50
  "type": "git",