Skip to content

Commit 49623c2

Browse files
committed
feat(scanner): enhance scanning functionality with configurable options and post-scan callbacks
1 parent 35d6469 commit 49623c2

File tree

22 files changed

+717
-519
lines changed

22 files changed

+717
-519
lines changed

.claude/settings.local.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
"Bash(pnpm eslint:*)",
2121
"Read(//workspaces/cosy/settings/**)",
2222
"Bash(go doc:*)",
23-
"Bash(pnpm exec eslint:*)"
23+
"Bash(pnpm exec eslint:*)",
24+
"Bash(go:*)"
2425
],
2526
"deny": []
2627
}

app/components.d.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ declare module 'vue' {
1010
export interface GlobalComponents {
1111
AAlert: typeof import('ant-design-vue/es')['Alert']
1212
AApp: typeof import('ant-design-vue/es')['App']
13+
AAutoComplete: typeof import('ant-design-vue/es')['AutoComplete']
1314
AAvatar: typeof import('ant-design-vue/es')['Avatar']
1415
ABadge: typeof import('ant-design-vue/es')['Badge']
1516
ABreadcrumb: typeof import('ant-design-vue/es')['Breadcrumb']
@@ -19,14 +20,19 @@ declare module 'vue' {
1920
ACheckbox: typeof import('ant-design-vue/es')['Checkbox']
2021
ACheckboxGroup: typeof import('ant-design-vue/es')['CheckboxGroup']
2122
ACol: typeof import('ant-design-vue/es')['Col']
23+
ACollapse: typeof import('ant-design-vue/es')['Collapse']
24+
ACollapsePanel: typeof import('ant-design-vue/es')['CollapsePanel']
25+
AComment: typeof import('ant-design-vue/es')['Comment']
2226
AConfigProvider: typeof import('ant-design-vue/es')['ConfigProvider']
2327
ADivider: typeof import('ant-design-vue/es')['Divider']
2428
ADrawer: typeof import('ant-design-vue/es')['Drawer']
29+
ADropdown: typeof import('ant-design-vue/es')['Dropdown']
2530
AEmpty: typeof import('ant-design-vue/es')['Empty']
2631
AForm: typeof import('ant-design-vue/es')['Form']
2732
AFormItem: typeof import('ant-design-vue/es')['FormItem']
2833
AInput: typeof import('ant-design-vue/es')['Input']
2934
AInputGroup: typeof import('ant-design-vue/es')['InputGroup']
35+
AInputNumber: typeof import('ant-design-vue/es')['InputNumber']
3036
ALayout: typeof import('ant-design-vue/es')['Layout']
3137
ALayoutContent: typeof import('ant-design-vue/es')['LayoutContent']
3238
ALayoutFooter: typeof import('ant-design-vue/es')['LayoutFooter']
@@ -36,23 +42,28 @@ declare module 'vue' {
3642
AListItem: typeof import('ant-design-vue/es')['ListItem']
3743
AListItemMeta: typeof import('ant-design-vue/es')['ListItemMeta']
3844
AMenu: typeof import('ant-design-vue/es')['Menu']
45+
AMenuDivider: typeof import('ant-design-vue/es')['MenuDivider']
3946
AMenuItem: typeof import('ant-design-vue/es')['MenuItem']
4047
AModal: typeof import('ant-design-vue/es')['Modal']
4148
APopconfirm: typeof import('ant-design-vue/es')['Popconfirm']
4249
APopover: typeof import('ant-design-vue/es')['Popover']
4350
AppProviderAppProvider: typeof import('./src/components/AppProvider/AppProvider.vue')['default']
4451
AProgress: typeof import('ant-design-vue/es')['Progress']
52+
ARadio: typeof import('ant-design-vue/es')['Radio']
53+
ARadioGroup: typeof import('ant-design-vue/es')['RadioGroup']
4554
ARow: typeof import('ant-design-vue/es')['Row']
4655
ASelect: typeof import('ant-design-vue/es')['Select']
4756
ASelectOption: typeof import('ant-design-vue/es')['SelectOption']
4857
ASpace: typeof import('ant-design-vue/es')['Space']
58+
ASpin: typeof import('ant-design-vue/es')['Spin']
4959
AStatistic: typeof import('ant-design-vue/es')['Statistic']
5060
ASubMenu: typeof import('ant-design-vue/es')['SubMenu']
5161
ASwitch: typeof import('ant-design-vue/es')['Switch']
5262
ATable: typeof import('ant-design-vue/es')['Table']
5363
ATabPane: typeof import('ant-design-vue/es')['TabPane']
5464
ATabs: typeof import('ant-design-vue/es')['Tabs']
5565
ATag: typeof import('ant-design-vue/es')['Tag']
66+
ATextarea: typeof import('ant-design-vue/es')['Textarea']
5667
ATooltip: typeof import('ant-design-vue/es')['Tooltip']
5768
ATypographyText: typeof import('ant-design-vue/es')['TypographyText']
5869
AutoCertFormAutoCertForm: typeof import('./src/components/AutoCertForm/AutoCertForm.vue')['default']

app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,4 +92,4 @@
9292
"vite-svg-loader": "^5.1.0",
9393
"vue-tsc": "^3.1.0"
9494
}
95-
}
95+
}

app/src/language/ar/app.po

Lines changed: 27 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -402,7 +402,7 @@ msgstr "هل أنت متأكد أنك تريد الحذف نهائيًا؟"
402402
msgid "Are you sure you want to delete?"
403403
msgstr "هل أنت متأكد أنك تريد الحذف؟"
404404

405-
#: src/components/NamespaceTabs/NamespaceTabs.vue:142
405+
#: src/components/NamespaceTabs/NamespaceTabs.vue:134
406406
msgid "Are you sure you want to reload Nginx on the following sync nodes?"
407407
msgstr "هل أنت متأكد أنك تريد إعادة تحميل Nginx على عقد المزامنة التالية؟"
408408

@@ -418,7 +418,7 @@ msgstr "هل أنت متأكد أنك تريد إزالة هذا العنصر؟"
418418
msgid "Are you sure you want to remove this location?"
419419
msgstr "هل أنت متأكد أنك تريد إزالة هذا المكان؟"
420420

421-
#: src/components/NamespaceTabs/NamespaceTabs.vue:154
421+
#: src/components/NamespaceTabs/NamespaceTabs.vue:146
422422
msgid "Are you sure you want to restart Nginx on the following sync nodes?"
423423
msgstr "هل أنت متأكد أنك تريد إعادة تشغيل Nginx على عقد المزامنة التالية؟"
424424

@@ -1752,7 +1752,7 @@ msgstr "محتوى ملف الهضم فارغ"
17521752
msgid "DingTalk"
17531753
msgstr "دينجتوك"
17541754

1755-
#: src/views/upstream/SocketList.vue:31
1755+
#: src/views/upstream/SocketList.vue:30
17561756
msgid "Direct"
17571757
msgstr "مباشر"
17581758

@@ -3082,7 +3082,7 @@ msgstr "مستوى ضغط GZIP"
30823082
msgid "GZIP Min Length"
30833083
msgstr "الحد الأدنى لطول GZIP"
30843084

3085-
#: src/views/upstream/SocketList.vue:61
3085+
#: src/views/upstream/SocketList.vue:60
30863086
msgid "Health Check"
30873087
msgstr "فحص الصحة"
30883088

@@ -3098,7 +3098,7 @@ msgstr "تم حفظ تكوين فحص الصحة"
30983098
msgid "Health check configuration saved successfully"
30993099
msgstr "تم حفظ تكوين فحص الصحة بنجاح"
31003100

3101-
#: src/views/upstream/SocketList.vue:37
3101+
#: src/views/upstream/SocketList.vue:36
31023102
msgid "Health Status"
31033103
msgstr "حالة الصحة"
31043104

@@ -3536,7 +3536,7 @@ msgstr "حالة النسخ الاحتياطي الأخيرة"
35363536
msgid "Last Backup Time"
35373537
msgstr "وقت آخر نسخة احتياطية"
35383538

3539-
#: src/views/upstream/SocketList.vue:52
3539+
#: src/views/upstream/SocketList.vue:51
35403540
msgid "Last Check"
35413541
msgstr "آخر التحقق"
35423542

@@ -3670,7 +3670,7 @@ msgstr "جارٍ تحميل البيانات..."
36703670
msgid "Loading..."
36713671
msgstr "جاري التحميل..."
36723672

3673-
#: src/components/NamespaceTabs/NamespaceTabs.vue:124
3673+
#: src/components/NamespaceTabs/NamespaceTabs.vue:116
36743674
#: src/components/NodeIndicator/NodeIndicator.vue:38
36753675
#: src/components/NodeSelector/NodeSelector.vue:61 src/constants/index.ts:42
36763676
#: src/constants/index.ts:48 src/views/backup/AutoBackup/AutoBackup.vue:74
@@ -4349,8 +4349,8 @@ msgid "Nginx.conf includes streams-enabled directory"
43494349
msgstr "يتضمن Nginx.conf دليل streams-enabled"
43504350

43514351
#: src/components/LLM/ChatMessageInput.vue:61
4352-
#: src/components/NamespaceTabs/NamespaceTabs.vue:144
4353-
#: src/components/NamespaceTabs/NamespaceTabs.vue:156
4352+
#: src/components/NamespaceTabs/NamespaceTabs.vue:136
4353+
#: src/components/NamespaceTabs/NamespaceTabs.vue:148
43544354
#: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:102
43554355
#: src/components/NgxConfigEditor/LocationEditor.vue:89
43564356
#: src/components/Notification/Notification.vue:109 src/language/curd.ts:40
@@ -4382,7 +4382,7 @@ msgstr "لا تتوفر بيانات جغرافية للصين"
43824382
msgid "No data"
43834383
msgstr "لا توجد بيانات"
43844384

4385-
#: src/views/upstream/SocketList.vue:42
4385+
#: src/views/upstream/SocketList.vue:41
43864386
msgid "No Data"
43874387
msgstr "لا بيانات"
43884388

@@ -4581,12 +4581,12 @@ msgstr "إيقاف"
45814581
msgid "Official Document"
45824582
msgstr "الوثيقة الرسمية"
45834583

4584-
#: src/components/NamespaceTabs/NamespaceTabs.vue:172
4584+
#: src/components/NamespaceTabs/NamespaceTabs.vue:164
45854585
#: src/components/NodeCard/NodeCard.vue:51
45864586
#: src/components/NodeSelector/NodeSelector.vue:84
45874587
#: src/components/UpstreamDetailModal/UpstreamDetailModal.vue:48
45884588
#: src/views/dashboard/Nodes.vue:159 src/views/node/nodeColumns.tsx:55
4589-
#: src/views/upstream/SocketList.vue:46
4589+
#: src/views/upstream/SocketList.vue:45
45904590
msgid "Offline"
45914591
msgstr "غير متصل"
45924592

@@ -4619,13 +4619,13 @@ msgstr "تشغيل"
46194619
msgid "Once the verification is complete, the records will be removed."
46204620
msgstr "بمجرد اكتمال التحقق، سيتم إزالة السجلات."
46214621

4622-
#: src/components/NamespaceTabs/NamespaceTabs.vue:172
4622+
#: src/components/NamespaceTabs/NamespaceTabs.vue:164
46234623
#: src/components/NodeCard/NodeCard.vue:51
46244624
#: src/components/NodeSelector/NodeSelector.vue:64
46254625
#: src/components/NodeSelector/NodeSelector.vue:78
46264626
#: src/components/UpstreamDetailModal/UpstreamDetailModal.vue:48
46274627
#: src/views/dashboard/Nodes.vue:152 src/views/node/nodeColumns.tsx:51
4628-
#: src/views/upstream/SocketList.vue:46
4628+
#: src/views/upstream/SocketList.vue:45
46294629
msgid "Online"
46304630
msgstr "متصل"
46314631

@@ -5305,7 +5305,7 @@ msgid "Reload"
53055305
msgstr "إعادة تحميل"
53065306

53075307
#: src/components/NamespaceRender/NamespaceRender.vue:44
5308-
#: src/components/NamespaceTabs/NamespaceTabs.vue:149 src/constants/index.ts:38
5308+
#: src/components/NamespaceTabs/NamespaceTabs.vue:141 src/constants/index.ts:38
53095309
#: src/views/node/Node.vue:208 src/views/node/Node.vue:216
53105310
msgid "Reload Nginx"
53115311
msgstr "إعادة تحميل Nginx"
@@ -5330,7 +5330,7 @@ msgstr "خطأ في إعادة تحميل Nginx البعيد"
53305330
msgid "Reload Remote Nginx Success"
53315331
msgstr "إعادة تحميل Nginx البعيد بنجاح"
53325332

5333-
#: src/components/NamespaceTabs/NamespaceTabs.vue:93
5333+
#: src/components/NamespaceTabs/NamespaceTabs.vue:85
53345334
msgid "Reload request failed, please check your network connection"
53355335
msgstr "فشل طلب إعادة التحميل، يرجى التحقق من اتصال الشبكة لديك"
53365336

@@ -5517,7 +5517,7 @@ msgstr "الردود"
55175517
msgid "Restart"
55185518
msgstr "إعادة تشغيل"
55195519

5520-
#: src/components/NamespaceTabs/NamespaceTabs.vue:161
5520+
#: src/components/NamespaceTabs/NamespaceTabs.vue:153
55215521
#: src/views/node/Node.vue:229 src/views/node/Node.vue:237
55225522
msgid "Restart Nginx"
55235523
msgstr "إعادة تشغيل Nginx"
@@ -5538,7 +5538,7 @@ msgstr "خطأ في إعادة تشغيل Nginx البعيد"
55385538
msgid "Restart Remote Nginx Success"
55395539
msgstr "إعادة تشغيل Nginx البعيد بنجاح"
55405540

5541-
#: src/components/NamespaceTabs/NamespaceTabs.vue:113
5541+
#: src/components/NamespaceTabs/NamespaceTabs.vue:105
55425542
msgid "Restart request failed, please check your network connection"
55435543
msgstr "فشل طلب إعادة التشغيل، يرجى التحقق من اتصال الشبكة لديك"
55445544

@@ -6393,7 +6393,7 @@ msgid "Sync Config Success"
63936393
msgstr "تمت مزامنة التكوين بنجاح"
63946394

63956395
#: src/components/NamespaceRender/NamespaceRender.vue:53
6396-
#: src/components/NamespaceTabs/NamespaceTabs.vue:135
6396+
#: src/components/NamespaceTabs/NamespaceTabs.vue:127
63976397
#: src/views/namespace/columns.ts:17 src/views/namespace/Namespace.vue:31
63986398
msgid "Sync Nodes"
63996399
msgstr "مزامنة العقد"
@@ -6892,6 +6892,10 @@ msgstr "أفضل 10 عناوين URL"
68926892
msgid "Total"
68936893
msgstr "الإجمالي"
68946894

6895+
#: src/views/upstream/SocketList.vue:149
6896+
msgid "Total %{total} items"
6897+
msgstr "إجمالي %{total} عنصر"
6898+
68956899
#: src/views/system/Licenses.vue:107
68966900
msgid "Total Components"
68976901
msgstr "إجمالي المكونات"
@@ -7102,15 +7106,15 @@ msgid "Upload Folders"
71027106
msgstr "تحميل المجلدات"
71037107

71047108
#: src/composables/useUpstreamStatus.ts:132 src/routes/modules/upstream.ts:10
7105-
#: src/views/upstream/SocketList.vue:25
7109+
#: src/views/upstream/SocketList.vue:24
71067110
msgid "Upstream"
71077111
msgstr "أعلى التيار"
71087112

71097113
#: src/components/NgxConfigEditor/NgxUpstream.vue:125
71107114
msgid "Upstream Name"
71117115
msgstr "اسم المنبع"
71127116

7113-
#: src/views/upstream/SocketList.vue:134
7117+
#: src/views/upstream/SocketList.vue:133
71147118
msgid "Upstream Sockets"
71157119
msgstr "المآخذ العلوية"
71167120

@@ -7406,8 +7410,8 @@ msgstr "كتابة مفتاح الشهادة الخاص إلى القرص"
74067410
msgid "Writing certificate to disk"
74077411
msgstr "كتابة الشهادة إلى القرص"
74087412

7409-
#: src/components/NamespaceTabs/NamespaceTabs.vue:143
7410-
#: src/components/NamespaceTabs/NamespaceTabs.vue:155
7413+
#: src/components/NamespaceTabs/NamespaceTabs.vue:135
7414+
#: src/components/NamespaceTabs/NamespaceTabs.vue:147
74117415
#: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:101
74127416
#: src/components/NgxConfigEditor/LocationEditor.vue:88
74137417
#: src/views/nginx_log/indexing/IndexManagement.vue:31

0 commit comments

Comments
 (0)