create-fullstack-scaffold 0.4.9 → 0.4.10

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 (127) hide show
  1. package/dist/cli/index.js +499 -100
  2. package/dist/cli/index.js.map +1 -1
  3. package/package.json +2 -2
  4. package/template/CLAUDE.md +18 -6
  5. package/template/drizzle/0004_add_merchants_products.sql +30 -0
  6. package/template/drizzle/meta/_journal.json +7 -0
  7. package/template/eslint-rules/module-boundary.js +6 -2
  8. package/template/eslint-rules/no-cross-module-service-import.js +105 -0
  9. package/template/eslint-rules/no-disable-type-safe-client.js +5 -0
  10. package/template/eslint.config.js +9 -0
  11. package/template/lint-scripts/config/project.config.ts +21 -0
  12. package/template/lint-scripts/validate-all.ts +48 -12
  13. package/template/lint-scripts/validators/index.ts +29 -0
  14. package/template/lint-scripts/validators/module-public-api.validator.ts +103 -0
  15. package/template/lint-scripts/validators/schema-uniqueness.validator.ts +147 -0
  16. package/template/modules.config.ts +2 -0
  17. package/template/package.json +2 -0
  18. package/template/playwright.config.ts +14 -0
  19. package/template/src/admin/App.tsx +40 -3
  20. package/template/src/admin/components/LanguageSwitcher.tsx +22 -0
  21. package/template/src/admin/components/NotificationDrawer.tsx +108 -38
  22. package/template/src/admin/components/StatsCard.tsx +3 -1
  23. package/template/src/admin/components/ThemeToggle.tsx +28 -0
  24. package/template/src/admin/hooks/useRoles.ts +2 -2
  25. package/template/src/admin/i18n/index.ts +18 -0
  26. package/template/src/admin/i18n/locales/en-US.json +381 -0
  27. package/template/src/admin/i18n/locales/zh-CN.json +381 -0
  28. package/template/src/admin/i18n/useLanguage.ts +21 -0
  29. package/template/src/admin/layouts/Header.tsx +37 -16
  30. package/template/src/admin/layouts/Layout.tsx +7 -3
  31. package/template/src/admin/layouts/Sidebar.tsx +70 -68
  32. package/template/src/admin/main.tsx +1 -0
  33. package/template/src/admin/pages/ContentPage.tsx +68 -56
  34. package/template/src/admin/pages/DashboardPage.tsx +82 -76
  35. package/template/src/admin/pages/DisputesPage.tsx +61 -53
  36. package/template/src/admin/pages/LoginPage.tsx +41 -33
  37. package/template/src/admin/pages/OrdersPage.tsx +69 -64
  38. package/template/src/admin/pages/PermissionsPage.tsx +10 -8
  39. package/template/src/admin/pages/PluginDashboardPage.tsx +3 -1
  40. package/template/src/admin/pages/PluginManagementPage.tsx +3 -1
  41. package/template/src/admin/pages/RegisterPage.tsx +18 -16
  42. package/template/src/admin/pages/RolesPage.tsx +51 -49
  43. package/template/src/admin/pages/SettingsPage.tsx +22 -22
  44. package/template/src/admin/pages/SystemLogsPage.tsx +32 -30
  45. package/template/src/admin/pages/TicketsPage.tsx +67 -59
  46. package/template/src/admin/pages/UsersPage.tsx +63 -53
  47. package/template/src/admin/pages/__tests__/RolesPage.test.tsx +2 -2
  48. package/template/src/admin/stores/themeStore.ts +32 -0
  49. package/template/src/client/index.css +73 -0
  50. package/template/src/merchant/App.tsx +2 -0
  51. package/template/src/merchant/components/MerchantGuard.tsx +2 -6
  52. package/template/src/merchant/components/__tests__/MerchantGuard.test.tsx +117 -0
  53. package/template/src/merchant/layouts/Header.tsx +2 -2
  54. package/template/src/merchant/pages/DashboardPage.tsx +2 -2
  55. package/template/src/merchant/pages/DisputesPage.tsx +14 -10
  56. package/template/src/merchant/pages/LoginPage.tsx +49 -0
  57. package/template/src/merchant/pages/OrdersPage.tsx +17 -10
  58. package/template/src/merchant/pages/ProductsPage.tsx +31 -8
  59. package/template/src/merchant/pages/SettingsPage.tsx +3 -7
  60. package/template/src/merchant/stores/__tests__/merchantStore.test.ts +317 -0
  61. package/template/src/merchant/stores/merchantStore.ts +24 -27
  62. package/template/src/server/db/schema/index.ts +2 -0
  63. package/template/src/server/db/schema/merchants.ts +26 -0
  64. package/template/src/server/db/schema/products.ts +25 -0
  65. package/template/src/server/db/test-setup.ts +237 -0
  66. package/template/src/server/middleware/__tests__/audit-log.test.ts +144 -0
  67. package/template/src/server/middleware/__tests__/cors.test.ts +84 -0
  68. package/template/src/server/middleware/__tests__/logger.test.ts +117 -0
  69. package/template/src/server/middleware/__tests__/rate-limit.test.ts +73 -0
  70. package/template/src/server/middleware/__tests__/realtime-env.test.ts +56 -0
  71. package/template/src/server/middleware/__tests__/tenant-isolation.test.ts +150 -0
  72. package/template/src/server/module-admin/__tests__/admin-routes.test.ts +1 -1
  73. package/template/src/server/module-admin/module.ts +4 -0
  74. package/template/src/server/module-admin/routes/admin-notification-routes.ts +3 -3
  75. package/template/src/server/module-admin/routes/user-management-routes.ts +2 -2
  76. package/template/src/server/module-auth/__tests__/auth-routes.test.ts +315 -0
  77. package/template/src/server/module-auth/__tests__/profile-routes.test.ts +83 -0
  78. package/template/src/server/module-auth/module.ts +2 -0
  79. package/template/src/server/module-content/module.ts +1 -0
  80. package/template/src/server/module-content/routes/content-routes.ts +2 -2
  81. package/template/src/server/module-dispute/module.ts +1 -0
  82. package/template/src/server/module-dispute/routes/dispute-routes.ts +2 -2
  83. package/template/src/server/module-merchant/__tests__/merchant-routes.test.ts +218 -0
  84. package/template/src/server/module-merchant/__tests__/merchant-service.test.ts +183 -0
  85. package/template/src/server/module-merchant/index.ts +10 -0
  86. package/template/src/server/module-merchant/module.ts +33 -0
  87. package/template/src/server/module-merchant/routes/merchant-routes.ts +138 -0
  88. package/template/src/server/module-merchant/services/merchant-service.ts +292 -0
  89. package/template/src/server/module-notifications/index.ts +18 -0
  90. package/template/src/server/module-notifications/module.ts +2 -0
  91. package/template/src/server/module-order/module.ts +1 -0
  92. package/template/src/server/module-order/routes/order-routes.ts +2 -2
  93. package/template/src/server/module-permission/routes/role-routes.ts +3 -3
  94. package/template/src/server/module-plugin/__tests__/admin-category-service.test.ts +181 -0
  95. package/template/src/server/module-plugin/__tests__/admin-plugin-service.test.ts +277 -0
  96. package/template/src/server/module-plugin/__tests__/admin-stats-service.test.ts +170 -0
  97. package/template/src/server/module-plugin/__tests__/plugin-review-service.test.ts +260 -0
  98. package/template/src/server/module-plugin/__tests__/plugin-seed-service.test.ts +170 -0
  99. package/template/src/server/module-plugin/module.ts +3 -0
  100. package/template/src/server/module-tenant/__tests__/tenant-routes.test.ts +142 -0
  101. package/template/src/server/module-tenant/__tests__/tenant-service.test.ts +152 -0
  102. package/template/src/server/module-tenant/module.ts +1 -0
  103. package/template/src/server/module-tenant/services/tenant-service.ts +1 -37
  104. package/template/src/server/module-ticket/module.ts +1 -0
  105. package/template/src/server/module-ticket/routes/ticket-routes.ts +2 -2
  106. package/template/src/server/module-todos/module.ts +3 -0
  107. package/template/src/server/route-registry.ts +4 -0
  108. package/template/src/server/utils/__tests__/date.test.ts +130 -0
  109. package/template/src/server/utils/__tests__/env.test.ts +25 -0
  110. package/template/src/server/utils/__tests__/generate.test.ts +82 -0
  111. package/template/src/server/utils/__tests__/id-helpers.test.ts +29 -0
  112. package/template/src/server/utils/__tests__/json.test.ts +49 -0
  113. package/template/src/server/utils/__tests__/permission-utils.test.ts +26 -0
  114. package/template/src/server/utils/__tests__/uuid.test.ts +25 -0
  115. package/template/src/shared/core/module-manifest.ts +15 -0
  116. package/template/src/shared/modules/admin/schemas.ts +1 -1
  117. package/template/src/shared/modules/content/schemas.ts +2 -2
  118. package/template/src/shared/modules/dispute/schemas.ts +2 -2
  119. package/template/src/shared/modules/index.ts +181 -1
  120. package/template/src/shared/modules/merchant/index.ts +12 -0
  121. package/template/src/shared/modules/merchant/schemas.ts +63 -0
  122. package/template/src/shared/modules/order/schemas.ts +2 -2
  123. package/template/src/shared/modules/permission/index.ts +1 -1
  124. package/template/src/shared/modules/permission/schemas.ts +1 -1
  125. package/template/src/shared/modules/role/schemas.ts +2 -2
  126. package/template/src/shared/modules/ticket/schemas.ts +2 -2
  127. package/template/src/shared/schemas/index.ts +74 -2
@@ -0,0 +1,381 @@
1
+ {
2
+ "common": {
3
+ "confirm": "Confirm",
4
+ "cancel": "Cancel",
5
+ "save": "Save",
6
+ "delete": "Delete",
7
+ "edit": "Edit",
8
+ "create": "Create",
9
+ "search": "Search",
10
+ "reset": "Reset",
11
+ "refresh": "Refresh",
12
+ "loading": "Loading...",
13
+ "success": "Operation successful",
14
+ "error": "Operation failed",
15
+ "noData": "No data",
16
+ "view": "View",
17
+ "detail": "Detail",
18
+ "status": "Status",
19
+ "actions": "Actions",
20
+ "createdAt": "Created At",
21
+ "close": "Close",
22
+ "back": "Back",
23
+ "submit": "Submit",
24
+ "yes": "Yes",
25
+ "no": "No",
26
+ "enabled": "Enabled",
27
+ "disabled": "Disabled",
28
+ "total": "{{count}} items",
29
+ "totalRecords": "{{count}} records",
30
+ "vsLastMonth": "vs last month"
31
+ },
32
+ "sidebar": {
33
+ "dashboard": "Dashboard",
34
+ "content": "Content Management",
35
+ "contentList": "Content List",
36
+ "categories": "Categories",
37
+ "usersOrders": "Users & Orders",
38
+ "users": "Users",
39
+ "orders": "Orders",
40
+ "tickets": "Tickets",
41
+ "disputes": "Disputes",
42
+ "system": "System",
43
+ "roles": "Roles & Permissions",
44
+ "settings": "Settings",
45
+ "logs": "System Logs",
46
+ "permissions": "Permissions"
47
+ },
48
+ "header": {
49
+ "home": "Home",
50
+ "dashboard": "Dashboard",
51
+ "profile": "Profile",
52
+ "settings": "Settings",
53
+ "logout": "Logout",
54
+ "superAdmin": "Super Admin",
55
+ "moderator": "Moderator",
56
+ "operator": "Operator"
57
+ },
58
+ "login": {
59
+ "title": "Admin Login",
60
+ "username": "Username",
61
+ "password": "Password",
62
+ "submit": "Login",
63
+ "noAccount": "Don't have an account? ",
64
+ "register": "Register",
65
+ "success": "Login successful!",
66
+ "failed": "Login failed!",
67
+ "quickLogin": "Quick Login",
68
+ "quickLoginAs": "Logged in as {{role}}!",
69
+ "usernameRequired": "Please enter username!",
70
+ "passwordRequired": "Please enter password!",
71
+ "superAdmin": "Super Admin",
72
+ "customerService": "Customer Service",
73
+ "normalUser": "User"
74
+ },
75
+ "register": {
76
+ "title": "Admin Registration",
77
+ "username": "Username",
78
+ "email": "Email",
79
+ "password": "Password",
80
+ "confirmPassword": "Confirm Password",
81
+ "submit": "Register",
82
+ "hasAccount": "Already have an account? ",
83
+ "loginLink": "Login",
84
+ "success": "Registration successful! Please login.",
85
+ "failed": "Registration failed!",
86
+ "usernameRequired": "Please input username!",
87
+ "emailRequired": "Please input valid email!",
88
+ "passwordMin": "Password must be at least 6 characters!",
89
+ "confirmRequired": "Please confirm password!",
90
+ "passwordMismatch": "Passwords do not match!"
91
+ },
92
+ "dashboard": {
93
+ "title": "Dashboard",
94
+ "totalTodos": "Total Todos",
95
+ "pending": "Pending",
96
+ "completed": "Completed",
97
+ "lastUpdated": "Last Updated",
98
+ "loading": "Loading...",
99
+ "loadFailed": "Failed to load stats",
100
+ "testNotification": "Test Notification",
101
+ "testNotificationDesc": "Send test notifications to all connected clients. Error and warning types will trigger antd notification popups, while info and success types only appear in the bell icon list.",
102
+ "sendTest": "Send Test Notification",
103
+ "sent": "Test notification sent ({{type}})",
104
+ "sendFailed": "Send failed",
105
+ "notificationInfo": "Info",
106
+ "notificationSuccess": "Success",
107
+ "notificationWarning": "Warning",
108
+ "notificationError": "Error",
109
+ "info": "Info",
110
+ "success": "Success",
111
+ "warning": "Warning",
112
+ "error": "Error"
113
+ },
114
+ "settings": {
115
+ "title": "Settings",
116
+ "general": "General Settings",
117
+ "siteName": "Site Name",
118
+ "siteNamePlaceholder": "Enter site name",
119
+ "siteDescription": "Site Description",
120
+ "siteDescriptionPlaceholder": "Enter site description",
121
+ "notification": "Notification Settings",
122
+ "emailNotifications": "Email Notifications",
123
+ "emailNotificationsDesc": "Receive email notifications for important updates",
124
+ "pushNotifications": "Push Notifications",
125
+ "pushNotificationsDesc": "Receive push notifications in browser",
126
+ "security": "Security Settings",
127
+ "currentPassword": "Current Password",
128
+ "currentPasswordPlaceholder": "Enter current password",
129
+ "newPassword": "New Password",
130
+ "newPasswordPlaceholder": "Enter new password",
131
+ "confirmNewPassword": "Confirm New Password",
132
+ "confirmNewPasswordPlaceholder": "Confirm new password",
133
+ "saveChanges": "Save Changes",
134
+ "saved": "Settings saved successfully!"
135
+ },
136
+ "roles": {
137
+ "title": "Role Management",
138
+ "createRole": "Create Role",
139
+ "editRole": "Edit Role",
140
+ "roleCode": "Role Code",
141
+ "roleName": "Role Name",
142
+ "displayName": "Display Name",
143
+ "description": "Description",
144
+ "isSystem": "System Role",
145
+ "roleCodePlaceholder": "Enter role code, e.g.: manager",
146
+ "roleNamePlaceholder": "Enter role name",
147
+ "displayNamePlaceholder": "Enter display name",
148
+ "descriptionPlaceholder": "Enter role description",
149
+ "roleCodeRequired": "Please enter role code",
150
+ "roleNameRequired": "Please enter role name",
151
+ "displayNameRequired": "Please enter display name",
152
+ "permissions": "Permissions",
153
+ "managePermissions": "Manage Role Permissions - {{name}}",
154
+ "deleteConfirm": "Are you sure you want to delete this role?",
155
+ "created": "Role created successfully",
156
+ "updated": "Role updated successfully",
157
+ "deleted": "Role deleted successfully",
158
+ "permissionUpdated": "Permissions updated successfully",
159
+ "permissionValidationFailed": "Permission dependency validation failed",
160
+ "permissionValidationErrors": "The following permission configurations have issues:",
161
+ "treeView": "Tree View",
162
+ "jsonView": "JSON Editor"
163
+ },
164
+ "users": {
165
+ "title": "User Management",
166
+ "createUser": "Create User",
167
+ "editUser": "Edit User",
168
+ "username": "Username",
169
+ "email": "Email",
170
+ "password": "Password",
171
+ "role": "Role",
172
+ "status": "Status",
173
+ "active": "Active",
174
+ "inactive": "Inactive",
175
+ "locked": "Locked",
176
+ "usernamePlaceholder": "Enter username",
177
+ "emailPlaceholder": "Enter email",
178
+ "passwordPlaceholder": "Enter password",
179
+ "rolePlaceholder": "Select role",
180
+ "statusPlaceholder": "Select status",
181
+ "usernameRequired": "Please enter username",
182
+ "emailRequired": "Please enter email",
183
+ "emailInvalid": "Please enter a valid email address",
184
+ "passwordRequired": "Please enter password",
185
+ "roleRequired": "Please select a role",
186
+ "statusRequired": "Please select status",
187
+ "superAdmin": "Super Admin",
188
+ "customerService": "Customer Service",
189
+ "normalUser": "User",
190
+ "lock": "Lock",
191
+ "unlock": "Unlock",
192
+ "deleteConfirm": "Are you sure you want to delete this user?",
193
+ "loading": "Loading users...",
194
+ "updating": "Updating...",
195
+ "creating": "Creating...",
196
+ "deleting": "Deleting...",
197
+ "created": "User created successfully",
198
+ "updated": "User updated successfully",
199
+ "deleted": "User deleted",
200
+ "userLocked": "User locked",
201
+ "userUnlocked": "User unlocked"
202
+ },
203
+ "orders": {
204
+ "title": "Order Management",
205
+ "subtitle": "Manage and process all orders",
206
+ "orderNo": "Order No.",
207
+ "customer": "Customer",
208
+ "product": "Product",
209
+ "amount": "Amount",
210
+ "status": "Status",
211
+ "filterStatus": "Filter Status",
212
+ "totalOrders": "Total Orders",
213
+ "pending": "Pending",
214
+ "processing": "Processing",
215
+ "completed": "Completed",
216
+ "cancelled": "Cancelled",
217
+ "disputed": "Disputed",
218
+ "process": "Process",
219
+ "cancelOrder": "Cancel",
220
+ "confirmCancel": "Confirm Cancel",
221
+ "confirmCancelContent": "Are you sure you want to cancel this order?",
222
+ "orderProcessed": "Order processing started",
223
+ "orderCancelled": "Order cancelled",
224
+ "processFailed": "Failed to process order",
225
+ "cancelFailed": "Failed to cancel order",
226
+ "loadFailed": "Failed to load orders",
227
+ "detail": "Order Details",
228
+ "customerName": "Customer Name",
229
+ "customerEmail": "Customer Email",
230
+ "productName": "Product Name",
231
+ "orderAmount": "Order Amount",
232
+ "orderStatus": "Order Status",
233
+ "updatedAt": "Updated At"
234
+ },
235
+ "tickets": {
236
+ "title": "Customer Service",
237
+ "subtitle": "Handle customer tickets and inquiries",
238
+ "ticketNo": "Ticket No.",
239
+ "subject": "Subject",
240
+ "customer": "Customer",
241
+ "priority": "Priority",
242
+ "customerName": "Customer Name",
243
+ "customerEmail": "Customer Email",
244
+ "assignedTo": "Assigned To",
245
+ "unassigned": "Unassigned",
246
+ "description": "Description",
247
+ "replies": "Replies",
248
+ "totalTickets": "Total Tickets",
249
+ "pending": "Pending",
250
+ "urgent": "Urgent",
251
+ "resolved": "Resolved",
252
+ "priorityLow": "Low",
253
+ "priorityMedium": "Medium",
254
+ "priorityHigh": "High",
255
+ "priorityUrgent": "Urgent",
256
+ "statusOpen": "Open",
257
+ "statusInProgress": "In Progress",
258
+ "statusWaitingCustomer": "Waiting Customer",
259
+ "statusResolved": "Resolved",
260
+ "statusClosed": "Closed",
261
+ "confirmClose": "Confirm Close",
262
+ "confirmCloseContent": "Are you sure you want to close this ticket?",
263
+ "ticketClosed": "Ticket closed",
264
+ "closeFailed": "Failed to close ticket",
265
+ "loadFailed": "Failed to load tickets",
266
+ "detail": "Ticket Details"
267
+ },
268
+ "disputes": {
269
+ "title": "Dispute Resolution",
270
+ "subtitle": "Handle order disputes and customer complaints",
271
+ "disputeNo": "Dispute No.",
272
+ "orderNo": "Order No.",
273
+ "customer": "Customer",
274
+ "type": "Type",
275
+ "amount": "Amount",
276
+ "totalDisputes": "Total Disputes",
277
+ "pending": "Pending",
278
+ "resolved": "Resolved",
279
+ "typeRefund": "Refund Dispute",
280
+ "typeProductQuality": "Product Quality",
281
+ "typeServiceQuality": "Service Quality",
282
+ "typeDelivery": "Delivery Issue",
283
+ "typeOther": "Other",
284
+ "statusPending": "Pending",
285
+ "statusInvestigating": "Investigating",
286
+ "statusResolved": "Resolved",
287
+ "statusRejected": "Rejected",
288
+ "resolve": "Resolve",
289
+ "resolveDispute": "Resolve Dispute",
290
+ "confirmResolve": "Are you sure you want to resolve this dispute?",
291
+ "amountLabel": "Amount: ¥{{amount}}",
292
+ "disputeResolved": "Dispute resolved",
293
+ "resolveFailed": "Failed to resolve dispute",
294
+ "loadFailed": "Failed to load disputes",
295
+ "detail": "Dispute Details",
296
+ "resolution": "Resolution"
297
+ },
298
+ "content": {
299
+ "title": "Content Management",
300
+ "subtitle": "Manage articles, announcements and tutorials",
301
+ "createContent": "Create Content",
302
+ "editContent": "Edit Content",
303
+ "titleCol": "Title",
304
+ "category": "Category",
305
+ "author": "Author",
306
+ "viewsLikes": "Views/Likes",
307
+ "titlePlaceholder": "Enter title",
308
+ "categoryPlaceholder": "Select category",
309
+ "contentPlaceholder": "Enter content",
310
+ "tagsPlaceholder": "Type tag and press Enter",
311
+ "titleRequired": "Please enter title",
312
+ "categoryRequired": "Please select category",
313
+ "contentRequired": "Please enter content",
314
+ "catArticle": "Article",
315
+ "catAnnouncement": "Announcement",
316
+ "catTutorial": "Tutorial",
317
+ "catNews": "News",
318
+ "catPolicy": "Policy",
319
+ "statusDraft": "Draft",
320
+ "statusPublished": "Published",
321
+ "statusArchived": "Archived",
322
+ "confirmDelete": "Confirm Delete",
323
+ "confirmDeleteContent": "Are you sure you want to delete this content?",
324
+ "deleted": "Content deleted",
325
+ "deleteFailed": "Delete failed",
326
+ "updated": "Content updated",
327
+ "created": "Content created",
328
+ "loadFailed": "Failed to load content",
329
+ "contentLabel": "Content",
330
+ "tags": "Tags"
331
+ },
332
+ "permissions": {
333
+ "title": "Permission Management",
334
+ "roleList": "Role List",
335
+ "permissionCount": "Permissions: {{count}}",
336
+ "permissionMatrix": "Permission Matrix",
337
+ "permission": "Permission",
338
+ "superAdmin": "Super Admin",
339
+ "customerService": "Customer Service",
340
+ "normalUser": "User"
341
+ },
342
+ "systemLogs": {
343
+ "title": "System Logs",
344
+ "time": "Time",
345
+ "userId": "User ID",
346
+ "action": "Action",
347
+ "resourceType": "Resource Type",
348
+ "resourceId": "Resource ID",
349
+ "ipAddress": "IP Address",
350
+ "actionType": "Action Type",
351
+ "resourceTypePlaceholder": "Resource Type",
352
+ "search": "Search",
353
+ "reset": "Reset",
354
+ "detail": "Log Details",
355
+ "logId": "Log ID",
356
+ "userAgent": "User Agent",
357
+ "oldValue": "Old Value",
358
+ "newValue": "New Value"
359
+ },
360
+ "notification": {
361
+ "justNow": "Just now",
362
+ "minutesAgo": "{{count}}m ago",
363
+ "hoursAgo": "{{count}}h ago",
364
+ "daysAgo": "{{count}}d ago",
365
+ "all": "All",
366
+ "unread": "Unread",
367
+ "read": "Read",
368
+ "noNotifications": "No notifications",
369
+ "noUnread": "No unread notifications",
370
+ "noRead": "No read notifications",
371
+ "center": "Notifications",
372
+ "markAllRead": "Mark all read"
373
+ },
374
+ "theme": {
375
+ "toggleDark": "Switch to dark mode",
376
+ "toggleLight": "Switch to light mode"
377
+ },
378
+ "monitor": {
379
+ "comingSoon": "Coming Soon"
380
+ }
381
+ }