jettask 0.2.1__py3-none-any.whl → 0.2.4__py3-none-any.whl

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 (89) hide show
  1. jettask/constants.py +213 -0
  2. jettask/core/app.py +525 -205
  3. jettask/core/cli.py +193 -185
  4. jettask/core/consumer_manager.py +126 -34
  5. jettask/core/context.py +3 -0
  6. jettask/core/enums.py +137 -0
  7. jettask/core/event_pool.py +501 -168
  8. jettask/core/message.py +147 -0
  9. jettask/core/offline_worker_recovery.py +181 -114
  10. jettask/core/task.py +10 -174
  11. jettask/core/task_batch.py +153 -0
  12. jettask/core/unified_manager_base.py +243 -0
  13. jettask/core/worker_scanner.py +54 -54
  14. jettask/executors/asyncio.py +184 -64
  15. jettask/webui/backend/config.py +51 -0
  16. jettask/webui/backend/data_access.py +2083 -92
  17. jettask/webui/backend/data_api.py +3294 -0
  18. jettask/webui/backend/dependencies.py +261 -0
  19. jettask/webui/backend/init_meta_db.py +158 -0
  20. jettask/webui/backend/main.py +1358 -69
  21. jettask/webui/backend/main_unified.py +78 -0
  22. jettask/webui/backend/main_v2.py +394 -0
  23. jettask/webui/backend/namespace_api.py +295 -0
  24. jettask/webui/backend/namespace_api_old.py +294 -0
  25. jettask/webui/backend/namespace_data_access.py +611 -0
  26. jettask/webui/backend/queue_backlog_api.py +727 -0
  27. jettask/webui/backend/queue_stats_v2.py +521 -0
  28. jettask/webui/backend/redis_monitor_api.py +476 -0
  29. jettask/webui/backend/unified_api_router.py +1601 -0
  30. jettask/webui/db_init.py +204 -32
  31. jettask/webui/frontend/package-lock.json +492 -1
  32. jettask/webui/frontend/package.json +4 -1
  33. jettask/webui/frontend/src/App.css +105 -7
  34. jettask/webui/frontend/src/App.jsx +49 -20
  35. jettask/webui/frontend/src/components/NamespaceSelector.jsx +166 -0
  36. jettask/webui/frontend/src/components/QueueBacklogChart.jsx +298 -0
  37. jettask/webui/frontend/src/components/QueueBacklogTrend.jsx +638 -0
  38. jettask/webui/frontend/src/components/QueueDetailsTable.css +65 -0
  39. jettask/webui/frontend/src/components/QueueDetailsTable.jsx +487 -0
  40. jettask/webui/frontend/src/components/QueueDetailsTableV2.jsx +465 -0
  41. jettask/webui/frontend/src/components/ScheduledTaskFilter.jsx +423 -0
  42. jettask/webui/frontend/src/components/TaskFilter.jsx +425 -0
  43. jettask/webui/frontend/src/components/TimeRangeSelector.css +21 -0
  44. jettask/webui/frontend/src/components/TimeRangeSelector.jsx +160 -0
  45. jettask/webui/frontend/src/components/layout/AppLayout.css +95 -0
  46. jettask/webui/frontend/src/components/layout/AppLayout.jsx +49 -0
  47. jettask/webui/frontend/src/components/layout/Header.css +34 -10
  48. jettask/webui/frontend/src/components/layout/Header.jsx +31 -23
  49. jettask/webui/frontend/src/components/layout/SideMenu.css +137 -0
  50. jettask/webui/frontend/src/components/layout/SideMenu.jsx +209 -0
  51. jettask/webui/frontend/src/components/layout/TabsNav.css +244 -0
  52. jettask/webui/frontend/src/components/layout/TabsNav.jsx +206 -0
  53. jettask/webui/frontend/src/components/layout/UserInfo.css +197 -0
  54. jettask/webui/frontend/src/components/layout/UserInfo.jsx +197 -0
  55. jettask/webui/frontend/src/contexts/NamespaceContext.jsx +72 -0
  56. jettask/webui/frontend/src/contexts/TabsContext.backup.jsx +245 -0
  57. jettask/webui/frontend/src/main.jsx +1 -0
  58. jettask/webui/frontend/src/pages/Alerts.jsx +684 -0
  59. jettask/webui/frontend/src/pages/Dashboard.jsx +1330 -0
  60. jettask/webui/frontend/src/pages/QueueDetail.jsx +1109 -10
  61. jettask/webui/frontend/src/pages/QueueMonitor.jsx +236 -115
  62. jettask/webui/frontend/src/pages/Queues.jsx +5 -1
  63. jettask/webui/frontend/src/pages/ScheduledTasks.jsx +809 -0
  64. jettask/webui/frontend/src/pages/Settings.jsx +800 -0
  65. jettask/webui/frontend/src/services/api.js +7 -5
  66. jettask/webui/frontend/src/utils/suppressWarnings.js +22 -0
  67. jettask/webui/frontend/src/utils/userPreferences.js +154 -0
  68. jettask/webui/multi_namespace_consumer.py +543 -0
  69. jettask/webui/pg_consumer.py +983 -246
  70. jettask/webui/static/dist/assets/index-7129cfe1.css +1 -0
  71. jettask/webui/static/dist/assets/index-8d1935cc.js +774 -0
  72. jettask/webui/static/dist/index.html +2 -2
  73. jettask/webui/task_center.py +216 -0
  74. jettask/webui/task_center_client.py +150 -0
  75. jettask/webui/unified_consumer_manager.py +193 -0
  76. {jettask-0.2.1.dist-info → jettask-0.2.4.dist-info}/METADATA +1 -1
  77. jettask-0.2.4.dist-info/RECORD +134 -0
  78. jettask/webui/pg_consumer_slow.py +0 -1099
  79. jettask/webui/pg_consumer_test.py +0 -678
  80. jettask/webui/static/dist/assets/index-823408e8.css +0 -1
  81. jettask/webui/static/dist/assets/index-9968b0b8.js +0 -543
  82. jettask/webui/test_pg_consumer_recovery.py +0 -547
  83. jettask/webui/test_recovery_simple.py +0 -492
  84. jettask/webui/test_self_recovery.py +0 -467
  85. jettask-0.2.1.dist-info/RECORD +0 -91
  86. {jettask-0.2.1.dist-info → jettask-0.2.4.dist-info}/WHEEL +0 -0
  87. {jettask-0.2.1.dist-info → jettask-0.2.4.dist-info}/entry_points.txt +0 -0
  88. {jettask-0.2.1.dist-info → jettask-0.2.4.dist-info}/licenses/LICENSE +0 -0
  89. {jettask-0.2.1.dist-info → jettask-0.2.4.dist-info}/top_level.txt +0 -0
@@ -13,12 +13,15 @@
13
13
  "@ant-design/cssinjs": "^1.24.0",
14
14
  "@ant-design/icons": "^5.0.1",
15
15
  "@ant-design/plots": "^2.6.3",
16
+ "@ant-design/pro-components": "^2.8.10",
17
+ "@ant-design/pro-table": "^3.21.0",
16
18
  "antd": "^5.4.0",
17
19
  "axios": "^1.3.4",
18
20
  "dayjs": "^1.11.7",
19
21
  "react": "^18.2.0",
20
22
  "react-dom": "^18.2.0",
21
- "react-router-dom": "^6.8.2"
23
+ "react-router-dom": "^6.8.2",
24
+ "uuid": "^11.1.0"
22
25
  },
23
26
  "devDependencies": {
24
27
  "@vitejs/plugin-react": "^3.1.0",
@@ -185,6 +188,281 @@
185
188
  "react-dom": ">=16.8.4"
186
189
  }
187
190
  },
191
+ "node_modules/@ant-design/pro-card": {
192
+ "version": "2.10.0",
193
+ "resolved": "https://registry.npmjs.org/@ant-design/pro-card/-/pro-card-2.10.0.tgz",
194
+ "integrity": "sha512-sLONn1odmE0Wkbse8pol4WiaEzBV8JU5s3FAMflPpycfUcbSaa1ktXzQ7LCo2SAvOS7gkfmpFjBPtrfbigKh4g==",
195
+ "dependencies": {
196
+ "@ant-design/cssinjs": "^1.21.1",
197
+ "@ant-design/icons": "^5.0.0",
198
+ "@ant-design/pro-provider": "2.16.2",
199
+ "@ant-design/pro-utils": "2.18.0",
200
+ "@babel/runtime": "^7.18.0",
201
+ "classnames": "^2.3.2",
202
+ "rc-resize-observer": "^1.0.0",
203
+ "rc-util": "^5.4.0"
204
+ },
205
+ "peerDependencies": {
206
+ "antd": "^4.24.15 || ^5.11.2",
207
+ "react": ">=17.0.0"
208
+ }
209
+ },
210
+ "node_modules/@ant-design/pro-components": {
211
+ "version": "2.8.10",
212
+ "resolved": "https://registry.npmjs.org/@ant-design/pro-components/-/pro-components-2.8.10.tgz",
213
+ "integrity": "sha512-QHnnIXdmC5GTAtm6i8eeJy5yT9npPlFyxpDm+duiDrTRKRFaAQBduArxlH3DA/hoRCCypzPONxfK9BQNIhIyZA==",
214
+ "dependencies": {
215
+ "@ant-design/pro-card": "2.10.0",
216
+ "@ant-design/pro-descriptions": "2.6.10",
217
+ "@ant-design/pro-field": "3.1.0",
218
+ "@ant-design/pro-form": "2.32.0",
219
+ "@ant-design/pro-layout": "7.22.7",
220
+ "@ant-design/pro-list": "2.6.10",
221
+ "@ant-design/pro-provider": "2.16.2",
222
+ "@ant-design/pro-skeleton": "2.2.1",
223
+ "@ant-design/pro-table": "3.21.0",
224
+ "@ant-design/pro-utils": "2.18.0",
225
+ "@babel/runtime": "^7.16.3"
226
+ },
227
+ "peerDependencies": {
228
+ "antd": "^4.24.15 || ^5.11.2",
229
+ "react": ">=17.0.0",
230
+ "react-dom": ">=17.0.0"
231
+ }
232
+ },
233
+ "node_modules/@ant-design/pro-descriptions": {
234
+ "version": "2.6.10",
235
+ "resolved": "https://registry.npmjs.org/@ant-design/pro-descriptions/-/pro-descriptions-2.6.10.tgz",
236
+ "integrity": "sha512-+4MbiOfumnWlW0Awm4m8JML5o3lR649FD24AaivCmr8BQvIAAXdTITnDMXEg8BqvdP4KOvNsStZrvYfqoev33A==",
237
+ "dependencies": {
238
+ "@ant-design/pro-field": "3.1.0",
239
+ "@ant-design/pro-form": "2.32.0",
240
+ "@ant-design/pro-provider": "2.16.2",
241
+ "@ant-design/pro-skeleton": "2.2.1",
242
+ "@ant-design/pro-utils": "2.18.0",
243
+ "@babel/runtime": "^7.18.0",
244
+ "rc-resize-observer": "^0.2.3",
245
+ "rc-util": "^5.0.6"
246
+ },
247
+ "peerDependencies": {
248
+ "antd": "^4.24.15 || ^5.11.2",
249
+ "react": ">=17.0.0"
250
+ }
251
+ },
252
+ "node_modules/@ant-design/pro-descriptions/node_modules/rc-resize-observer": {
253
+ "version": "0.2.6",
254
+ "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-0.2.6.tgz",
255
+ "integrity": "sha512-YX6nYnd6fk7zbuvT6oSDMKiZjyngjHoy+fz+vL3Tez38d/G5iGdaDJa2yE7345G6sc4Mm1IGRUIwclvltddhmA==",
256
+ "dependencies": {
257
+ "@babel/runtime": "^7.10.1",
258
+ "classnames": "^2.2.1",
259
+ "rc-util": "^5.0.0",
260
+ "resize-observer-polyfill": "^1.5.1"
261
+ },
262
+ "peerDependencies": {
263
+ "react": ">=16.9.0",
264
+ "react-dom": ">=16.9.0"
265
+ }
266
+ },
267
+ "node_modules/@ant-design/pro-field": {
268
+ "version": "3.1.0",
269
+ "resolved": "https://registry.npmjs.org/@ant-design/pro-field/-/pro-field-3.1.0.tgz",
270
+ "integrity": "sha512-+Dgp31WjD+iwg9KIRAMgNkfQivkJKMcYBrIBmho1e8ep/O0HgWSp48g70tBIWi/Lfem/Ky2schF7O8XCFouczw==",
271
+ "dependencies": {
272
+ "@ant-design/icons": "^5.0.0",
273
+ "@ant-design/pro-provider": "2.16.2",
274
+ "@ant-design/pro-utils": "2.18.0",
275
+ "@babel/runtime": "^7.18.0",
276
+ "@chenshuai2144/sketch-color": "^1.0.8",
277
+ "classnames": "^2.3.2",
278
+ "dayjs": "^1.11.10",
279
+ "lodash": "^4.17.21",
280
+ "lodash-es": "^4.17.21",
281
+ "rc-util": "^5.4.0",
282
+ "swr": "^2.0.0"
283
+ },
284
+ "peerDependencies": {
285
+ "antd": "^4.24.15 || ^5.11.2",
286
+ "react": ">=17.0.0"
287
+ }
288
+ },
289
+ "node_modules/@ant-design/pro-form": {
290
+ "version": "2.32.0",
291
+ "resolved": "https://registry.npmjs.org/@ant-design/pro-form/-/pro-form-2.32.0.tgz",
292
+ "integrity": "sha512-GZnVAMeYv+YHJb17lJ7rX5PYuQPvEA6EotQnPbHi9tGLN3PfexcAd21rqzuO+OrulU2x7TEMDIxtY9MzvvOGbg==",
293
+ "dependencies": {
294
+ "@ant-design/icons": "^5.0.0",
295
+ "@ant-design/pro-field": "3.1.0",
296
+ "@ant-design/pro-provider": "2.16.2",
297
+ "@ant-design/pro-utils": "2.18.0",
298
+ "@babel/runtime": "^7.18.0",
299
+ "@chenshuai2144/sketch-color": "^1.0.7",
300
+ "@umijs/use-params": "^1.0.9",
301
+ "classnames": "^2.3.2",
302
+ "dayjs": "^1.11.10",
303
+ "lodash": "^4.17.21",
304
+ "lodash-es": "^4.17.21",
305
+ "rc-resize-observer": "^1.1.0",
306
+ "rc-util": "^5.0.6"
307
+ },
308
+ "peerDependencies": {
309
+ "antd": "^4.24.15 || ^5.11.2",
310
+ "rc-field-form": ">=1.22.0",
311
+ "react": ">=17.0.0",
312
+ "react-dom": ">=17.0.0"
313
+ }
314
+ },
315
+ "node_modules/@ant-design/pro-layout": {
316
+ "version": "7.22.7",
317
+ "resolved": "https://registry.npmjs.org/@ant-design/pro-layout/-/pro-layout-7.22.7.tgz",
318
+ "integrity": "sha512-fvmtNA1r9SaasVIQIQt611VSlNxtVxDbQ3e+1GhYQza3tVJi/3gCZuDyfMfTnbLmf3PaW/YvLkn7MqDbzAzoLA==",
319
+ "dependencies": {
320
+ "@ant-design/cssinjs": "^1.21.1",
321
+ "@ant-design/icons": "^5.0.0",
322
+ "@ant-design/pro-provider": "2.16.2",
323
+ "@ant-design/pro-utils": "2.18.0",
324
+ "@babel/runtime": "^7.18.0",
325
+ "@umijs/route-utils": "^4.0.0",
326
+ "@umijs/use-params": "^1.0.9",
327
+ "classnames": "^2.3.2",
328
+ "lodash": "^4.17.21",
329
+ "lodash-es": "^4.17.21",
330
+ "path-to-regexp": "8.2.0",
331
+ "rc-resize-observer": "^1.1.0",
332
+ "rc-util": "^5.0.6",
333
+ "swr": "^2.0.0",
334
+ "warning": "^4.0.3"
335
+ },
336
+ "peerDependencies": {
337
+ "antd": "^4.24.15 || ^5.11.2",
338
+ "react": ">=17.0.0",
339
+ "react-dom": ">=17.0.0"
340
+ }
341
+ },
342
+ "node_modules/@ant-design/pro-list": {
343
+ "version": "2.6.10",
344
+ "resolved": "https://registry.npmjs.org/@ant-design/pro-list/-/pro-list-2.6.10.tgz",
345
+ "integrity": "sha512-xSWwnqCr+hPEYR4qY7nFUaxO5RQBxNlFaPNmobP2i+Im31slk9JuAusgWeIYO0mNhLJuLbxd8CCma2AZij3fBQ==",
346
+ "dependencies": {
347
+ "@ant-design/cssinjs": "^1.21.1",
348
+ "@ant-design/icons": "^5.0.0",
349
+ "@ant-design/pro-card": "2.10.0",
350
+ "@ant-design/pro-field": "3.1.0",
351
+ "@ant-design/pro-table": "3.21.0",
352
+ "@ant-design/pro-utils": "2.18.0",
353
+ "@babel/runtime": "^7.18.0",
354
+ "classnames": "^2.3.2",
355
+ "dayjs": "^1.11.10",
356
+ "rc-resize-observer": "^1.0.0",
357
+ "rc-util": "^4.19.0"
358
+ },
359
+ "peerDependencies": {
360
+ "antd": "^4.24.15 || ^5.11.2",
361
+ "react": ">=17.0.0",
362
+ "react-dom": ">=17.0.0"
363
+ }
364
+ },
365
+ "node_modules/@ant-design/pro-list/node_modules/rc-util": {
366
+ "version": "4.21.1",
367
+ "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-4.21.1.tgz",
368
+ "integrity": "sha512-Z+vlkSQVc1l8O2UjR3WQ+XdWlhj5q9BMQNLk2iOBch75CqPfrJyGtcWMcnhRlNuDu0Ndtt4kLVO8JI8BrABobg==",
369
+ "dependencies": {
370
+ "add-dom-event-listener": "^1.1.0",
371
+ "prop-types": "^15.5.10",
372
+ "react-is": "^16.12.0",
373
+ "react-lifecycles-compat": "^3.0.4",
374
+ "shallowequal": "^1.1.0"
375
+ }
376
+ },
377
+ "node_modules/@ant-design/pro-list/node_modules/react-is": {
378
+ "version": "16.13.1",
379
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
380
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
381
+ },
382
+ "node_modules/@ant-design/pro-provider": {
383
+ "version": "2.16.2",
384
+ "resolved": "https://registry.npmjs.org/@ant-design/pro-provider/-/pro-provider-2.16.2.tgz",
385
+ "integrity": "sha512-0KmCH1EaOND787Jz6VRMYtLNZmqfT0JPjdUfxhyOxFfnBRfrjyfZgIa6CQoAJLEUMWv57PccWS8wRHVUUk2Yiw==",
386
+ "dependencies": {
387
+ "@ant-design/cssinjs": "^1.21.1",
388
+ "@babel/runtime": "^7.18.0",
389
+ "@ctrl/tinycolor": "^3.4.0",
390
+ "dayjs": "^1.11.10",
391
+ "rc-util": "^5.0.1",
392
+ "swr": "^2.0.0"
393
+ },
394
+ "peerDependencies": {
395
+ "antd": "^4.24.15 || ^5.11.2",
396
+ "react": ">=17.0.0",
397
+ "react-dom": ">=17.0.0"
398
+ }
399
+ },
400
+ "node_modules/@ant-design/pro-skeleton": {
401
+ "version": "2.2.1",
402
+ "resolved": "https://registry.npmjs.org/@ant-design/pro-skeleton/-/pro-skeleton-2.2.1.tgz",
403
+ "integrity": "sha512-3M2jNOZQZWEDR8pheY00OkHREfb0rquvFZLCa6DypGmiksiuuYuR9Y4iA82ZF+mva2FmpHekdwbje/GpbxqBeg==",
404
+ "dependencies": {
405
+ "@babel/runtime": "^7.18.0"
406
+ },
407
+ "peerDependencies": {
408
+ "antd": "^4.24.15 || ^5.11.2",
409
+ "react": ">=17.0.0",
410
+ "react-dom": ">=17.0.0"
411
+ }
412
+ },
413
+ "node_modules/@ant-design/pro-table": {
414
+ "version": "3.21.0",
415
+ "resolved": "https://registry.npmjs.org/@ant-design/pro-table/-/pro-table-3.21.0.tgz",
416
+ "integrity": "sha512-sI81d3FYRv5sXamUc+M5CsHZ9CchuUQgOAPzo5H4oPAVL5h+mkYGRsBzPsxQX7khTNpWjrAtPoRm5ipx3vvWog==",
417
+ "dependencies": {
418
+ "@ant-design/cssinjs": "^1.21.1",
419
+ "@ant-design/icons": "^5.0.0",
420
+ "@ant-design/pro-card": "2.10.0",
421
+ "@ant-design/pro-field": "3.1.0",
422
+ "@ant-design/pro-form": "2.32.0",
423
+ "@ant-design/pro-provider": "2.16.2",
424
+ "@ant-design/pro-utils": "2.18.0",
425
+ "@babel/runtime": "^7.18.0",
426
+ "@dnd-kit/core": "^6.0.8",
427
+ "@dnd-kit/modifiers": "^6.0.1",
428
+ "@dnd-kit/sortable": "^7.0.2",
429
+ "@dnd-kit/utilities": "^3.2.1",
430
+ "classnames": "^2.3.2",
431
+ "dayjs": "^1.11.10",
432
+ "lodash": "^4.17.21",
433
+ "lodash-es": "^4.17.21",
434
+ "rc-resize-observer": "^1.0.0",
435
+ "rc-util": "^5.0.1"
436
+ },
437
+ "peerDependencies": {
438
+ "antd": "^4.24.15 || ^5.11.2",
439
+ "rc-field-form": ">=1.22.0",
440
+ "react": ">=17.0.0",
441
+ "react-dom": ">=17.0.0"
442
+ }
443
+ },
444
+ "node_modules/@ant-design/pro-utils": {
445
+ "version": "2.18.0",
446
+ "resolved": "https://registry.npmjs.org/@ant-design/pro-utils/-/pro-utils-2.18.0.tgz",
447
+ "integrity": "sha512-8+ikyrN8L8a8Ph4oeHTOJEiranTj18+9+WHCHjKNdEfukI7Rjn8xpYdLJWb2AUJkb9d4eoAqjd5+k+7w81Df0w==",
448
+ "dependencies": {
449
+ "@ant-design/icons": "^5.0.0",
450
+ "@ant-design/pro-provider": "2.16.2",
451
+ "@babel/runtime": "^7.18.0",
452
+ "classnames": "^2.3.2",
453
+ "dayjs": "^1.11.10",
454
+ "lodash": "^4.17.21",
455
+ "lodash-es": "^4.17.21",
456
+ "rc-util": "^5.0.6",
457
+ "safe-stable-stringify": "^2.4.3",
458
+ "swr": "^2.0.0"
459
+ },
460
+ "peerDependencies": {
461
+ "antd": "^4.24.15 || ^5.11.2",
462
+ "react": ">=17.0.0",
463
+ "react-dom": ">=17.0.0"
464
+ }
465
+ },
188
466
  "node_modules/@ant-design/react-slick": {
189
467
  "version": "1.1.2",
190
468
  "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.1.2.tgz",
@@ -913,6 +1191,88 @@
913
1191
  "node": ">=6.9.0"
914
1192
  }
915
1193
  },
1194
+ "node_modules/@chenshuai2144/sketch-color": {
1195
+ "version": "1.0.9",
1196
+ "resolved": "https://registry.npmjs.org/@chenshuai2144/sketch-color/-/sketch-color-1.0.9.tgz",
1197
+ "integrity": "sha512-obzSy26cb7Pm7OprWyVpgMpIlrZpZ0B7vbrU0RMbvRg0YAI890S5Xy02Aj1Nhl4+KTbi1lVYHt6HQP8Hm9s+1w==",
1198
+ "dependencies": {
1199
+ "reactcss": "^1.2.3",
1200
+ "tinycolor2": "^1.4.2"
1201
+ },
1202
+ "peerDependencies": {
1203
+ "react": ">=16.12.0"
1204
+ }
1205
+ },
1206
+ "node_modules/@ctrl/tinycolor": {
1207
+ "version": "3.6.1",
1208
+ "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz",
1209
+ "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==",
1210
+ "engines": {
1211
+ "node": ">=10"
1212
+ }
1213
+ },
1214
+ "node_modules/@dnd-kit/accessibility": {
1215
+ "version": "3.1.1",
1216
+ "resolved": "https://registry.npmjs.org/@dnd-kit/accessibility/-/accessibility-3.1.1.tgz",
1217
+ "integrity": "sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==",
1218
+ "dependencies": {
1219
+ "tslib": "^2.0.0"
1220
+ },
1221
+ "peerDependencies": {
1222
+ "react": ">=16.8.0"
1223
+ }
1224
+ },
1225
+ "node_modules/@dnd-kit/core": {
1226
+ "version": "6.3.1",
1227
+ "resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.3.1.tgz",
1228
+ "integrity": "sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==",
1229
+ "dependencies": {
1230
+ "@dnd-kit/accessibility": "^3.1.1",
1231
+ "@dnd-kit/utilities": "^3.2.2",
1232
+ "tslib": "^2.0.0"
1233
+ },
1234
+ "peerDependencies": {
1235
+ "react": ">=16.8.0",
1236
+ "react-dom": ">=16.8.0"
1237
+ }
1238
+ },
1239
+ "node_modules/@dnd-kit/modifiers": {
1240
+ "version": "6.0.1",
1241
+ "resolved": "https://registry.npmjs.org/@dnd-kit/modifiers/-/modifiers-6.0.1.tgz",
1242
+ "integrity": "sha512-rbxcsg3HhzlcMHVHWDuh9LCjpOVAgqbV78wLGI8tziXY3+qcMQ61qVXIvNKQFuhj75dSfD+o+PYZQ/NUk2A23A==",
1243
+ "dependencies": {
1244
+ "@dnd-kit/utilities": "^3.2.1",
1245
+ "tslib": "^2.0.0"
1246
+ },
1247
+ "peerDependencies": {
1248
+ "@dnd-kit/core": "^6.0.6",
1249
+ "react": ">=16.8.0"
1250
+ }
1251
+ },
1252
+ "node_modules/@dnd-kit/sortable": {
1253
+ "version": "7.0.2",
1254
+ "resolved": "https://registry.npmjs.org/@dnd-kit/sortable/-/sortable-7.0.2.tgz",
1255
+ "integrity": "sha512-wDkBHHf9iCi1veM834Gbk1429bd4lHX4RpAwT0y2cHLf246GAvU2sVw/oxWNpPKQNQRQaeGXhAVgrOl1IT+iyA==",
1256
+ "dependencies": {
1257
+ "@dnd-kit/utilities": "^3.2.0",
1258
+ "tslib": "^2.0.0"
1259
+ },
1260
+ "peerDependencies": {
1261
+ "@dnd-kit/core": "^6.0.7",
1262
+ "react": ">=16.8.0"
1263
+ }
1264
+ },
1265
+ "node_modules/@dnd-kit/utilities": {
1266
+ "version": "3.2.2",
1267
+ "resolved": "https://registry.npmjs.org/@dnd-kit/utilities/-/utilities-3.2.2.tgz",
1268
+ "integrity": "sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==",
1269
+ "dependencies": {
1270
+ "tslib": "^2.0.0"
1271
+ },
1272
+ "peerDependencies": {
1273
+ "react": ">=16.8.0"
1274
+ }
1275
+ },
916
1276
  "node_modules/@emotion/hash": {
917
1277
  "version": "0.8.0",
918
1278
  "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz",
@@ -1646,6 +2006,19 @@
1646
2006
  "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.5.tgz",
1647
2007
  "integrity": "sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw=="
1648
2008
  },
2009
+ "node_modules/@umijs/route-utils": {
2010
+ "version": "4.0.1",
2011
+ "resolved": "https://registry.npmjs.org/@umijs/route-utils/-/route-utils-4.0.1.tgz",
2012
+ "integrity": "sha512-+1ixf1BTOLuH+ORb4x8vYMPeIt38n9q0fJDwhv9nSxrV46mxbLF0nmELIo9CKQB2gHfuC4+hww6xejJ6VYnBHQ=="
2013
+ },
2014
+ "node_modules/@umijs/use-params": {
2015
+ "version": "1.0.9",
2016
+ "resolved": "https://registry.npmjs.org/@umijs/use-params/-/use-params-1.0.9.tgz",
2017
+ "integrity": "sha512-QlN0RJSBVQBwLRNxbxjQ5qzqYIGn+K7USppMoIOVlf7fxXHsnQZ2bEsa6Pm74bt6DVQxpUE8HqvdStn6Y9FV1w==",
2018
+ "peerDependencies": {
2019
+ "react": "*"
2020
+ }
2021
+ },
1649
2022
  "node_modules/@vitejs/plugin-react": {
1650
2023
  "version": "3.1.0",
1651
2024
  "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-3.1.0.tgz",
@@ -1847,6 +2220,14 @@
1847
2220
  "acorn": "^8.14.0"
1848
2221
  }
1849
2222
  },
2223
+ "node_modules/add-dom-event-listener": {
2224
+ "version": "1.1.0",
2225
+ "resolved": "https://registry.npmjs.org/add-dom-event-listener/-/add-dom-event-listener-1.1.0.tgz",
2226
+ "integrity": "sha512-WCxx1ixHT0GQU9hb0KI/mhgRQhnU+U3GvwY6ZvVjYq8rsihIGoaIOUbY0yMPBxLH5MDtr0kz3fisWGNcbWW7Jw==",
2227
+ "dependencies": {
2228
+ "object-assign": "4.x"
2229
+ }
2230
+ },
1850
2231
  "node_modules/ajv": {
1851
2232
  "version": "8.17.1",
1852
2233
  "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
@@ -2457,6 +2838,14 @@
2457
2838
  "node": ">=0.4.0"
2458
2839
  }
2459
2840
  },
2841
+ "node_modules/dequal": {
2842
+ "version": "2.0.3",
2843
+ "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
2844
+ "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
2845
+ "engines": {
2846
+ "node": ">=6"
2847
+ }
2848
+ },
2460
2849
  "node_modules/dunder-proto": {
2461
2850
  "version": "1.0.1",
2462
2851
  "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
@@ -2980,6 +3369,11 @@
2980
3369
  "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
2981
3370
  "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
2982
3371
  },
3372
+ "node_modules/lodash-es": {
3373
+ "version": "4.17.21",
3374
+ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
3375
+ "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
3376
+ },
2983
3377
  "node_modules/loose-envify": {
2984
3378
  "version": "1.4.0",
2985
3379
  "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
@@ -3114,6 +3508,22 @@
3114
3508
  "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
3115
3509
  "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw=="
3116
3510
  },
3511
+ "node_modules/object-assign": {
3512
+ "version": "4.1.1",
3513
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
3514
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
3515
+ "engines": {
3516
+ "node": ">=0.10.0"
3517
+ }
3518
+ },
3519
+ "node_modules/path-to-regexp": {
3520
+ "version": "8.2.0",
3521
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz",
3522
+ "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==",
3523
+ "engines": {
3524
+ "node": ">=16"
3525
+ }
3526
+ },
3117
3527
  "node_modules/pdfast": {
3118
3528
  "version": "0.2.0",
3119
3529
  "resolved": "https://registry.npmjs.org/pdfast/-/pdfast-0.2.0.tgz",
@@ -3157,6 +3567,21 @@
3157
3567
  "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
3158
3568
  "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
3159
3569
  },
3570
+ "node_modules/prop-types": {
3571
+ "version": "15.8.1",
3572
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
3573
+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
3574
+ "dependencies": {
3575
+ "loose-envify": "^1.4.0",
3576
+ "object-assign": "^4.1.1",
3577
+ "react-is": "^16.13.1"
3578
+ }
3579
+ },
3580
+ "node_modules/prop-types/node_modules/react-is": {
3581
+ "version": "16.13.1",
3582
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
3583
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
3584
+ },
3160
3585
  "node_modules/proxy-from-env": {
3161
3586
  "version": "1.1.0",
3162
3587
  "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
@@ -3784,6 +4209,11 @@
3784
4209
  "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
3785
4210
  "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="
3786
4211
  },
4212
+ "node_modules/react-lifecycles-compat": {
4213
+ "version": "3.0.4",
4214
+ "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
4215
+ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
4216
+ },
3787
4217
  "node_modules/react-refresh": {
3788
4218
  "version": "0.14.2",
3789
4219
  "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz",
@@ -3823,6 +4253,14 @@
3823
4253
  "react-dom": ">=16.8"
3824
4254
  }
3825
4255
  },
4256
+ "node_modules/reactcss": {
4257
+ "version": "1.2.3",
4258
+ "resolved": "https://registry.npmjs.org/reactcss/-/reactcss-1.2.3.tgz",
4259
+ "integrity": "sha512-KiwVUcFu1RErkI97ywr8nvx8dNOpT03rbnma0SSalTYjkrPYaEajR4a/MRt6DZ46K6arDRbWMNHF+xH7G7n/8A==",
4260
+ "dependencies": {
4261
+ "lodash": "^4.0.1"
4262
+ }
4263
+ },
3826
4264
  "node_modules/require-from-string": {
3827
4265
  "version": "2.0.2",
3828
4266
  "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
@@ -3862,6 +4300,14 @@
3862
4300
  ],
3863
4301
  "peer": true
3864
4302
  },
4303
+ "node_modules/safe-stable-stringify": {
4304
+ "version": "2.5.0",
4305
+ "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz",
4306
+ "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==",
4307
+ "engines": {
4308
+ "node": ">=10"
4309
+ }
4310
+ },
3865
4311
  "node_modules/safer-buffer": {
3866
4312
  "version": "2.1.2",
3867
4313
  "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
@@ -4059,6 +4505,18 @@
4059
4505
  "resolved": "https://registry.npmjs.org/svg-path-parser/-/svg-path-parser-1.1.0.tgz",
4060
4506
  "integrity": "sha512-jGCUqcQyXpfe38R7RFfhrMyfXcBmpMNJI/B+4CE9/Unkh98UporAc461GTthv+TVDuZXsBx7/WiwJb1Oh4tt4A=="
4061
4507
  },
4508
+ "node_modules/swr": {
4509
+ "version": "2.3.6",
4510
+ "resolved": "https://registry.npmjs.org/swr/-/swr-2.3.6.tgz",
4511
+ "integrity": "sha512-wfHRmHWk/isGNMwlLGlZX5Gzz/uTgo0o2IRuTMcf4CPuPFJZlq0rDaKUx+ozB5nBOReNV1kiOyzMfj+MBMikLw==",
4512
+ "dependencies": {
4513
+ "dequal": "^2.0.3",
4514
+ "use-sync-external-store": "^1.4.0"
4515
+ },
4516
+ "peerDependencies": {
4517
+ "react": "^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
4518
+ }
4519
+ },
4062
4520
  "node_modules/tapable": {
4063
4521
  "version": "2.2.2",
4064
4522
  "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz",
@@ -4134,6 +4592,11 @@
4134
4592
  "node": ">=12.22"
4135
4593
  }
4136
4594
  },
4595
+ "node_modules/tinycolor2": {
4596
+ "version": "1.6.0",
4597
+ "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz",
4598
+ "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw=="
4599
+ },
4137
4600
  "node_modules/toggle-selection": {
4138
4601
  "version": "1.0.6",
4139
4602
  "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz",
@@ -4179,6 +4642,26 @@
4179
4642
  "browserslist": ">= 4.21.0"
4180
4643
  }
4181
4644
  },
4645
+ "node_modules/use-sync-external-store": {
4646
+ "version": "1.5.0",
4647
+ "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz",
4648
+ "integrity": "sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==",
4649
+ "peerDependencies": {
4650
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
4651
+ }
4652
+ },
4653
+ "node_modules/uuid": {
4654
+ "version": "11.1.0",
4655
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz",
4656
+ "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==",
4657
+ "funding": [
4658
+ "https://github.com/sponsors/broofa",
4659
+ "https://github.com/sponsors/ctavan"
4660
+ ],
4661
+ "bin": {
4662
+ "uuid": "dist/esm/bin/uuid"
4663
+ }
4664
+ },
4182
4665
  "node_modules/vite": {
4183
4666
  "version": "4.5.14",
4184
4667
  "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.14.tgz",
@@ -4250,6 +4733,14 @@
4250
4733
  "fsevents": "~2.3.2"
4251
4734
  }
4252
4735
  },
4736
+ "node_modules/warning": {
4737
+ "version": "4.0.3",
4738
+ "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
4739
+ "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
4740
+ "dependencies": {
4741
+ "loose-envify": "^1.0.0"
4742
+ }
4743
+ },
4253
4744
  "node_modules/watchpack": {
4254
4745
  "version": "2.4.4",
4255
4746
  "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz",
@@ -8,12 +8,15 @@
8
8
  "@ant-design/cssinjs": "^1.24.0",
9
9
  "@ant-design/icons": "^5.0.1",
10
10
  "@ant-design/plots": "^2.6.3",
11
+ "@ant-design/pro-components": "^2.8.10",
12
+ "@ant-design/pro-table": "^3.21.0",
11
13
  "antd": "^5.4.0",
12
14
  "axios": "^1.3.4",
13
15
  "dayjs": "^1.11.7",
14
16
  "react": "^18.2.0",
15
17
  "react-dom": "^18.2.0",
16
- "react-router-dom": "^6.8.2"
18
+ "react-router-dom": "^6.8.2",
19
+ "uuid": "^11.1.0"
17
20
  },
18
21
  "devDependencies": {
19
22
  "@vitejs/plugin-react": "^3.1.0",