create-vitnode-app 0.1.5 → 1.2.0-canary.0
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.
- package/{templates → copy-of-vitnode-app}/eslint/.prettierrc.mjs +1 -1
- package/{templates/eslint/apps/frontend → copy-of-vitnode-app/eslint}/eslint.config.mjs +1 -2
- package/copy-of-vitnode-app/root/next.config.ts +11 -0
- package/copy-of-vitnode-app/root/src/vitnode.api.config.ts +5 -0
- package/dist/src/create/create-vitnode.js +26 -0
- package/dist/src/helpers/get-available-package-managers.js +24 -0
- package/dist/src/helpers/get-package-json.js +2 -0
- package/dist/src/helpers/is-folder-empty.js +49 -0
- package/dist/src/helpers/is-writeable.js +11 -0
- package/dist/src/helpers/packages-json.js +1 -0
- package/dist/src/helpers/validate-pkg.js +14 -0
- package/dist/src/index.js +65 -0
- package/dist/src/plugin/index.js +18 -0
- package/dist/src/prepare/prepare.js +16 -0
- package/dist/src/questions.js +46 -0
- package/dist/src/validation.js +40 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +17 -27
- package/README.md +0 -40
- package/dist/index.cjs +0 -49
- package/templates/basic/.env.template +0 -16
- package/templates/basic/.gitignore_template +0 -58
- package/templates/basic/README.md +0 -44
- package/templates/basic/apps/backend/drizzle.config.ts +0 -9
- package/templates/basic/apps/backend/nest-cli.json +0 -15
- package/templates/basic/apps/backend/src/app.module.ts +0 -24
- package/templates/basic/apps/backend/src/database/config.ts +0 -16
- package/templates/basic/apps/backend/src/database/database.module.ts +0 -17
- package/templates/basic/apps/backend/src/database/database.service.ts +0 -9
- package/templates/basic/apps/backend/src/main.ts +0 -13
- package/templates/basic/apps/backend/src/plugins/plugins.module.ts +0 -8
- package/templates/basic/apps/backend/src/plugins/welcome/admin/admin.module.ts +0 -4
- package/templates/basic/apps/backend/src/plugins/welcome/admin/database/index.ts +0 -1
- package/templates/basic/apps/backend/src/plugins/welcome/config.json +0 -12
- package/templates/basic/apps/backend/src/plugins/welcome/welcome.module.ts +0 -8
- package/templates/basic/apps/backend/tsconfig.build.json +0 -4
- package/templates/basic/apps/backend/tsconfig.json +0 -15
- package/templates/basic/apps/backend/uploads/index.html +0 -0
- package/templates/basic/apps/backend/uploads/private/index.html +0 -0
- package/templates/basic/apps/backend/uploads/public/index.html +0 -0
- package/templates/basic/apps/backend/uploads/temp/index.html +0 -0
- package/templates/basic/apps/frontend/global.d.ts +0 -11
- package/templates/basic/apps/frontend/next.config.ts +0 -6
- package/templates/basic/apps/frontend/postcss.config.mjs +0 -9
- package/templates/basic/apps/frontend/public/favicon.ico +0 -0
- package/templates/basic/apps/frontend/public/sw.js +0 -3
- package/templates/basic/apps/frontend/src/app/[locale]/(main)/[...slug]/page.tsx +0 -10
- package/templates/basic/apps/frontend/src/app/[locale]/(main)/footer.tsx +0 -18
- package/templates/basic/apps/frontend/src/app/[locale]/(main)/layout.tsx +0 -12
- package/templates/basic/apps/frontend/src/app/[locale]/(main)/not-found.tsx +0 -5
- package/templates/basic/apps/frontend/src/app/[locale]/(main)/page.tsx +0 -9
- package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/[...slug]/page.tsx +0 -12
- package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/error.tsx +0 -9
- package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/layout.tsx +0 -13
- package/templates/basic/apps/frontend/src/app/[locale]/admin/(auth)/not-found.tsx +0 -5
- package/templates/basic/apps/frontend/src/app/[locale]/admin/page.tsx +0 -5
- package/templates/basic/apps/frontend/src/app/[locale]/layout.tsx +0 -13
- package/templates/basic/apps/frontend/src/app/global.css +0 -94
- package/templates/basic/apps/frontend/src/app/layout.tsx +0 -9
- package/templates/basic/apps/frontend/src/app/not-found.tsx +0 -8
- package/templates/basic/apps/frontend/src/app/robots.ts +0 -9
- package/templates/basic/apps/frontend/src/app/sitemap.ts +0 -9
- package/templates/basic/apps/frontend/src/i18n.ts +0 -13
- package/templates/basic/apps/frontend/src/middleware.ts +0 -8
- package/templates/basic/apps/frontend/src/plugins/admin/langs/en.json +0 -710
- package/templates/basic/apps/frontend/src/plugins/core/langs/en.json +0 -408
- package/templates/basic/apps/frontend/src/plugins/welcome/langs/en.json +0 -15
- package/templates/basic/apps/frontend/src/plugins/welcome/templates/default-page.tsx +0 -40
- package/templates/basic/apps/frontend/tailwind.config.ts +0 -16
- package/templates/basic/apps/frontend/tsconfig.json +0 -33
- package/templates/basic/apps/shared/plugins/welcome/example.dto.ts +0 -0
- package/templates/basic/apps/shared/tsconfig.json +0 -15
- package/templates/basic/turbo.json +0 -34
- package/templates/docker/apps/backend/DockerFile +0 -31
- package/templates/docker/apps/frontend/DockerFile +0 -38
- package/templates/docker/deploy.sh +0 -213
- package/templates/docker/docker-compose-dev.yml +0 -35
- package/templates/docker/docker-compose.yml +0 -56
- package/templates/eslint/apps/backend/eslint.config.mjs +0 -4
- package/templates/eslint/apps/shared/eslint.config.mjs +0 -4
- package/templates/pnpm/pnpm-workspace.yaml +0 -2
|
@@ -1,408 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"core": {
|
|
3
|
-
"global": {
|
|
4
|
-
"sidebar": {
|
|
5
|
-
"title": "Sidebar",
|
|
6
|
-
"desc": "Manage your sidebar settings.",
|
|
7
|
-
"toggle": "Toggle Sidebar"
|
|
8
|
-
},
|
|
9
|
-
"loading": "Loading...",
|
|
10
|
-
"optional": "Optional",
|
|
11
|
-
"yes": "Yes",
|
|
12
|
-
"no": "No",
|
|
13
|
-
"default": "Default",
|
|
14
|
-
"pick_date": "Pick a date",
|
|
15
|
-
"are_you_sure": "Are you sure?",
|
|
16
|
-
"are_you_absolutely_sure": "Are you absolutely sure?",
|
|
17
|
-
"cancel": "Cancel",
|
|
18
|
-
"confirm": "Confirm",
|
|
19
|
-
"are_you_sure_want_to_leave_form": "Are you sure you want to leave the form? Your changes may not be saved.",
|
|
20
|
-
"checked_number": "Checked: {count}",
|
|
21
|
-
"close": "Close",
|
|
22
|
-
"save": "Save",
|
|
23
|
-
"search": "Search",
|
|
24
|
-
"search_placeholder": "Search...",
|
|
25
|
-
"delete": "Delete",
|
|
26
|
-
"edit": "Edit",
|
|
27
|
-
"create": "Create",
|
|
28
|
-
"upload": "Upload",
|
|
29
|
-
"previous": "Previous",
|
|
30
|
-
"next": "Next",
|
|
31
|
-
"more_actions": "More Actions",
|
|
32
|
-
"saved_success": "Saved successfully.",
|
|
33
|
-
"unlimited": "Unlimited",
|
|
34
|
-
"selected": "{count, plural, =0 {No items} =1 {1 item} other {# items}} selected",
|
|
35
|
-
"or": "or",
|
|
36
|
-
"results": "Results",
|
|
37
|
-
"no_results": "No results found.",
|
|
38
|
-
"search_results": "Search Results",
|
|
39
|
-
"select_option": "Select an option",
|
|
40
|
-
"select_options": "Select options",
|
|
41
|
-
"go_back": "Go Back",
|
|
42
|
-
"clear": "Clear",
|
|
43
|
-
"download": "Download",
|
|
44
|
-
"none": "None",
|
|
45
|
-
"remove": "Remove",
|
|
46
|
-
"rows_per_page": "Rows per page",
|
|
47
|
-
"total_count": "Total Count: {count}",
|
|
48
|
-
"files": {
|
|
49
|
-
"title": "Upload file",
|
|
50
|
-
"drop_here": "Drop here to upload",
|
|
51
|
-
"extensions": "Allowed extensions: <extensions></extensions>",
|
|
52
|
-
"allow_size_per_file": "(max {size} MB per file)",
|
|
53
|
-
"errors": {
|
|
54
|
-
"extension": "The file {file} have an invalid extension.",
|
|
55
|
-
"max_size": "The file {file} is too large."
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
"errors": {
|
|
59
|
-
"title": "Oops! Something went wrong",
|
|
60
|
-
"reload_page": "Reload Page",
|
|
61
|
-
"code": "Error code: <code></code>",
|
|
62
|
-
"no_connection_api": "No connection to the API",
|
|
63
|
-
"no_connection_api_dev": "This happens when the API makes some changes in your code or when the API is down.",
|
|
64
|
-
"access_denied": "Access denied",
|
|
65
|
-
"internal_server_error": "Internal server error.",
|
|
66
|
-
"captcha_empty": "Captcha is empty.",
|
|
67
|
-
"captcha_failed": "Captcha is invalid. Please try again. If you can't see the captcha, please refresh the page.",
|
|
68
|
-
"required": "This field is required.",
|
|
69
|
-
"min_length": "This field must be at least {length} characters.",
|
|
70
|
-
"max_length": "This field must be less than {length} characters.",
|
|
71
|
-
"403": "Access denied",
|
|
72
|
-
"404": "Page not found",
|
|
73
|
-
"500": "Internal server error",
|
|
74
|
-
"invalid_email": "Invalid email address.",
|
|
75
|
-
"actions": {
|
|
76
|
-
"back_home": "Home Page",
|
|
77
|
-
"contact": "Contact with Us"
|
|
78
|
-
},
|
|
79
|
-
"clear_cache_and_reload": "Clear Cache and Reload"
|
|
80
|
-
},
|
|
81
|
-
"dark_light_switcher": "Toggle Theme",
|
|
82
|
-
"language_change": "Change Language",
|
|
83
|
-
"user-bar": {
|
|
84
|
-
"sign_in": "Login",
|
|
85
|
-
"sign_up": "Register",
|
|
86
|
-
"log_out": "Log out",
|
|
87
|
-
"my_profile": "My Profile",
|
|
88
|
-
"settings": "Settings",
|
|
89
|
-
"admin_cp": "Admin Panel"
|
|
90
|
-
},
|
|
91
|
-
"mobile_nav": {
|
|
92
|
-
"home": "Home",
|
|
93
|
-
"back": "Back",
|
|
94
|
-
"search": "Search",
|
|
95
|
-
"menu": "Menu",
|
|
96
|
-
"desc": "Mobile Menu with navigation and user settings."
|
|
97
|
-
},
|
|
98
|
-
"icon_picker": {
|
|
99
|
-
"title": "Choose an icon",
|
|
100
|
-
"remove": "Remove Icon",
|
|
101
|
-
"icons": {
|
|
102
|
-
"title": "Icons",
|
|
103
|
-
"placeholder": "Search icon...",
|
|
104
|
-
"not_found": "No icons found."
|
|
105
|
-
},
|
|
106
|
-
"emojis": {
|
|
107
|
-
"title": "Emojis",
|
|
108
|
-
"placeholder": "Search emoji...",
|
|
109
|
-
"not_found": "No emojis found."
|
|
110
|
-
}
|
|
111
|
-
},
|
|
112
|
-
"editor": {
|
|
113
|
-
"extra_tools": "Extra Tools",
|
|
114
|
-
"text_align": "Text Align",
|
|
115
|
-
"horizontal_rule": "Horizontal Rule",
|
|
116
|
-
"more": "More",
|
|
117
|
-
"align": "Align",
|
|
118
|
-
"upload_files": "Upload Files",
|
|
119
|
-
"link": {
|
|
120
|
-
"title": "Link",
|
|
121
|
-
"text": "Text",
|
|
122
|
-
"href": "URL",
|
|
123
|
-
"delete": "Delete Link",
|
|
124
|
-
"insert": "Insert Link"
|
|
125
|
-
},
|
|
126
|
-
"heading": {
|
|
127
|
-
"h1": "Heading H1",
|
|
128
|
-
"h2": "Heading H2",
|
|
129
|
-
"h3": "Heading H3",
|
|
130
|
-
"h4": "Heading H4",
|
|
131
|
-
"h5": "Heading H5",
|
|
132
|
-
"h6": "Heading H6",
|
|
133
|
-
"paragraph": "Paragraph",
|
|
134
|
-
"code_block": {
|
|
135
|
-
"title": "Code Block",
|
|
136
|
-
"auto": "Auto",
|
|
137
|
-
"search": "Search..."
|
|
138
|
-
}
|
|
139
|
-
},
|
|
140
|
-
"color_text": "Text Color",
|
|
141
|
-
"change_language": "Change Language",
|
|
142
|
-
"emoji": {
|
|
143
|
-
"title": "Emoji",
|
|
144
|
-
"categories": {
|
|
145
|
-
"all": "All",
|
|
146
|
-
"frequent": "Frequently Used",
|
|
147
|
-
"people": "Smileys & People",
|
|
148
|
-
"nature": "Animals & Nature",
|
|
149
|
-
"foods": "Food & Drink",
|
|
150
|
-
"activity": "Activity",
|
|
151
|
-
"places": "Travel & Places",
|
|
152
|
-
"objects": "Objects",
|
|
153
|
-
"symbols": "Symbols",
|
|
154
|
-
"flags": "Flags",
|
|
155
|
-
"customs": "Customs"
|
|
156
|
-
},
|
|
157
|
-
"skin": {
|
|
158
|
-
"title": "Skin Tone",
|
|
159
|
-
"skin_0": "Default",
|
|
160
|
-
"skin_1": "Light",
|
|
161
|
-
"skin_2": "Medium-Light",
|
|
162
|
-
"skin_3": "Medium",
|
|
163
|
-
"skin_4": "Medium-Dark",
|
|
164
|
-
"skin_5": "Dark"
|
|
165
|
-
}
|
|
166
|
-
},
|
|
167
|
-
"files": {
|
|
168
|
-
"state": {
|
|
169
|
-
"loading": "Uploading...",
|
|
170
|
-
"error": "Oops! Something went wrong. {error}"
|
|
171
|
-
},
|
|
172
|
-
"insert": "Insert",
|
|
173
|
-
"access_denied_download": "You don't have permission to download this file.",
|
|
174
|
-
"images_videos": "Images & Videos",
|
|
175
|
-
"images": "Images",
|
|
176
|
-
"errors": {
|
|
177
|
-
"max_storage_extended": "Max storage exceeded. Max storage is {size}.",
|
|
178
|
-
"invalid_file_type": "Invalid file type! Allowed types: {types}."
|
|
179
|
-
}
|
|
180
|
-
},
|
|
181
|
-
"remove_formatting": "Remove Formatting"
|
|
182
|
-
}
|
|
183
|
-
},
|
|
184
|
-
"settings": {
|
|
185
|
-
"title": "Settings",
|
|
186
|
-
"open_sheet": "Open Menu",
|
|
187
|
-
"open_sheet_desc": "You can change your account settings here.",
|
|
188
|
-
"overview": {
|
|
189
|
-
"title": "Overview",
|
|
190
|
-
"change_avatar": {
|
|
191
|
-
"title": "Change Avatar",
|
|
192
|
-
"desc": "Show your personality with a new avatar.",
|
|
193
|
-
"submit": "Change Avatar",
|
|
194
|
-
"success": "Your avatar has been changed.",
|
|
195
|
-
"types": {
|
|
196
|
-
"upload": "Upload a new avatar",
|
|
197
|
-
"delete": "Delete avatar"
|
|
198
|
-
}
|
|
199
|
-
},
|
|
200
|
-
"basic_info": {
|
|
201
|
-
"title": "Basic Information",
|
|
202
|
-
"email": "Email",
|
|
203
|
-
"joined_at": "Joined at"
|
|
204
|
-
}
|
|
205
|
-
},
|
|
206
|
-
"files": {
|
|
207
|
-
"title": "My Files",
|
|
208
|
-
"desc": "Manage your files.",
|
|
209
|
-
"search": "Search files by name...",
|
|
210
|
-
"temp_file": "Temporary File will be deleted soon",
|
|
211
|
-
"storage_usage": "{used} of {total} ({percent}%) storage used",
|
|
212
|
-
"name": "Name",
|
|
213
|
-
"created": "Created",
|
|
214
|
-
"table": {
|
|
215
|
-
"file_size": "File Size",
|
|
216
|
-
"count_uses": "Count Uses",
|
|
217
|
-
"user": "User"
|
|
218
|
-
}
|
|
219
|
-
},
|
|
220
|
-
"devices": {
|
|
221
|
-
"title": "Devices",
|
|
222
|
-
"desc": "Manage your devices where you are logged in.",
|
|
223
|
-
"last_active": "Last Active: <time></time>",
|
|
224
|
-
"browser": "Browser",
|
|
225
|
-
"session_expires": "Session Expires",
|
|
226
|
-
"current_device": "Current Device",
|
|
227
|
-
"ip_address": "IP Address"
|
|
228
|
-
}
|
|
229
|
-
},
|
|
230
|
-
"sign_in": {
|
|
231
|
-
"title": "Login",
|
|
232
|
-
"desc": "You don't have an account? <link></link>.",
|
|
233
|
-
"or": "or",
|
|
234
|
-
"sign_up": "Sign Up",
|
|
235
|
-
"email": "Email",
|
|
236
|
-
"password": "Password",
|
|
237
|
-
"submit": "Log In",
|
|
238
|
-
"sso_first_login": {
|
|
239
|
-
"title": "Almost there!",
|
|
240
|
-
"desc": "Please complete your registration by entering your name."
|
|
241
|
-
},
|
|
242
|
-
"error": {
|
|
243
|
-
"title": "Invalid credentials",
|
|
244
|
-
"desc": "The email address or password was incorrect. Please try again (make sure your caps lock is off)."
|
|
245
|
-
},
|
|
246
|
-
"not_verified": {
|
|
247
|
-
"title": "Email is not verified",
|
|
248
|
-
"desc": "Please check your inbox and click the link to activate your account.",
|
|
249
|
-
"resend": "To resend the verification email you have to sign in again. We'll send you a new email if the previous has 10 minutes or more."
|
|
250
|
-
},
|
|
251
|
-
"forgot_password": {
|
|
252
|
-
"title": "Forgot Password?",
|
|
253
|
-
"desc": "Don't worry! We'll help you reset your password.",
|
|
254
|
-
"email": "Email",
|
|
255
|
-
"go_back_login": "Go back to login",
|
|
256
|
-
"send": "Send Email",
|
|
257
|
-
"success": {
|
|
258
|
-
"title": "Email Sent!",
|
|
259
|
-
"desc": "We've sent a password reset email to <email></email>.",
|
|
260
|
-
"warning": "Please check your inbox and follow the instructions."
|
|
261
|
-
},
|
|
262
|
-
"change_password": {
|
|
263
|
-
"title": "Change Password",
|
|
264
|
-
"desc": "Almost done!",
|
|
265
|
-
"new_password": "New Password",
|
|
266
|
-
"error": "We can't reset your password. Please check the link or try again.",
|
|
267
|
-
"success": {
|
|
268
|
-
"title": "Password Changed!",
|
|
269
|
-
"desc": "Your password has been changed successfully!",
|
|
270
|
-
"sign_in": "Go to Sign In"
|
|
271
|
-
}
|
|
272
|
-
},
|
|
273
|
-
"content_email": {
|
|
274
|
-
"subject": "Reset your password",
|
|
275
|
-
"preview": "You're receiving this email because you requested a password reset for your account.",
|
|
276
|
-
"p": "Someone recently requested a password change for your account. If this was you, you can set a new password here:",
|
|
277
|
-
"button": "Reset Password",
|
|
278
|
-
"security": "This link will expire in 15 minutes. If you don't want to change your password or didn't request this, just ignore and delete this message."
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
},
|
|
282
|
-
"sign_up": {
|
|
283
|
-
"title": "Register",
|
|
284
|
-
"desc": "You already have an account? <link></link>.",
|
|
285
|
-
"sign_in": "Sign In",
|
|
286
|
-
"email_invalid": "This email address is invalid.",
|
|
287
|
-
"name": {
|
|
288
|
-
"label": "Nickname",
|
|
289
|
-
"desc": "You can use letters, numbers and special characters: @.-_.",
|
|
290
|
-
"already_exists": "This nickname is already in use.",
|
|
291
|
-
"invalid": "This nickname is invalid.",
|
|
292
|
-
"your_id": "Your ID: <id></id>"
|
|
293
|
-
},
|
|
294
|
-
"email": {
|
|
295
|
-
"label": "Email",
|
|
296
|
-
"already_exists": "This email address is already in use."
|
|
297
|
-
},
|
|
298
|
-
"password": {
|
|
299
|
-
"label": "Password",
|
|
300
|
-
"desc": "Password must have:",
|
|
301
|
-
"min_length": "At least 8 characters",
|
|
302
|
-
"uppercase": "At least one uppercase letter",
|
|
303
|
-
"number": "At least one number",
|
|
304
|
-
"special_char": "At least one special character"
|
|
305
|
-
},
|
|
306
|
-
"terms": {
|
|
307
|
-
"label": "Accept terms and conditions",
|
|
308
|
-
"desc": "You agree to our <link>Legal documents & Policies</link>.",
|
|
309
|
-
"empty": "You must agree to the Terms of Service."
|
|
310
|
-
},
|
|
311
|
-
"newsletter": {
|
|
312
|
-
"label": "Newsletter",
|
|
313
|
-
"desc": "Receive information about new features, updates and events related to the application."
|
|
314
|
-
},
|
|
315
|
-
"submit": "Sign Up",
|
|
316
|
-
"success": {
|
|
317
|
-
"title": "Account Created!",
|
|
318
|
-
"desc": "We've sent a verification email to <email></email>. Please check your inbox and click the link to activate your account.",
|
|
319
|
-
"desc_without_email": "Your account has been created successfully. You can now log in.",
|
|
320
|
-
"sign_in": "Sign In"
|
|
321
|
-
},
|
|
322
|
-
"confirm_email": {
|
|
323
|
-
"title": "Confirmation Successful",
|
|
324
|
-
"desc": "Thank you for confirming your email address. You can now access to our platform.",
|
|
325
|
-
"sign_in": "Sign In",
|
|
326
|
-
"mail": {
|
|
327
|
-
"subject": "Confirm your email address",
|
|
328
|
-
"preview": "You're receiving this email because you created an account on our platform.",
|
|
329
|
-
"welcome": "Thank you for signing up!",
|
|
330
|
-
"desc": "To complete your registration, please confirm your email address by clicking the link below:",
|
|
331
|
-
"ignore": "If you didn't create an account, you can ignore this email.",
|
|
332
|
-
"button": "Confirm Email"
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
},
|
|
336
|
-
"reset_password": {
|
|
337
|
-
"title": "Reset Password",
|
|
338
|
-
"preview_text": "You're receiving this email because you requested a password reset for your account.",
|
|
339
|
-
"email": {
|
|
340
|
-
"title": "Someone recently requested a password change for your account. If this was you, you can set a new password here:",
|
|
341
|
-
"button": "Reset Password",
|
|
342
|
-
"desc": "If you don't want to change your password or didn't request this, just ignore and delete this message."
|
|
343
|
-
}
|
|
344
|
-
},
|
|
345
|
-
"legal": {
|
|
346
|
-
"title": "Legal & Policies",
|
|
347
|
-
"title_page": "Legal documents and Policies",
|
|
348
|
-
"last_updated": "Last updated: <date></date>",
|
|
349
|
-
"empty": "No documents found."
|
|
350
|
-
}
|
|
351
|
-
},
|
|
352
|
-
"admin_core": {
|
|
353
|
-
"nav": {
|
|
354
|
-
"title": "Core",
|
|
355
|
-
"dashboard": "Dashboard",
|
|
356
|
-
"settings": "Settings",
|
|
357
|
-
"settings_main": "Main",
|
|
358
|
-
"settings_metadata": "Metadata",
|
|
359
|
-
"settings_email": "Email",
|
|
360
|
-
"settings_authorization": "Authorization",
|
|
361
|
-
"settings_legal": "Legal & Policies",
|
|
362
|
-
"plugins": "Plugins",
|
|
363
|
-
"styles": "Styles",
|
|
364
|
-
"styles_theme-editor": "Theme Editor",
|
|
365
|
-
"styles_nav": "Navigation",
|
|
366
|
-
"langs": "Languages",
|
|
367
|
-
"advanced": "Advanced",
|
|
368
|
-
"advanced_files": "Files",
|
|
369
|
-
"advanced_cron": "Cron Jobs"
|
|
370
|
-
},
|
|
371
|
-
"admin_permissions": {
|
|
372
|
-
"dashboard": "Dashboard",
|
|
373
|
-
"can_manage_diagnostic_tools": "Can manage diagnostic tools?",
|
|
374
|
-
"settings": "Settings",
|
|
375
|
-
"can_manage_settings_main": "Can manage main settings?",
|
|
376
|
-
"can_manage_settings_metadata": "Can manage metadata settings?",
|
|
377
|
-
"can_manage_settings_email": "Can manage email settings?",
|
|
378
|
-
"can_manage_settings_authorization": "Can manage authorization settings?",
|
|
379
|
-
"can_manage_settings_legal": "Can manage legal settings?",
|
|
380
|
-
"can_manage_plugins": "Can manage plugins?",
|
|
381
|
-
"styles": "Styles",
|
|
382
|
-
"can_manage_styles_theme-editor": "Can manage theme editor?",
|
|
383
|
-
"can_manage_styles_nav": "Can manage navigation?",
|
|
384
|
-
"can_manage_styles_editor": "Can manage editor?",
|
|
385
|
-
"can_manage_langs": "Can manage languages?",
|
|
386
|
-
"advanced": "Advanced",
|
|
387
|
-
"can_manage_advanced_files": "Can manage files?",
|
|
388
|
-
"can_manage_advanced_cron": "Can manage cron jobs?"
|
|
389
|
-
}
|
|
390
|
-
},
|
|
391
|
-
"admin_members": {
|
|
392
|
-
"nav": {
|
|
393
|
-
"title": "Members",
|
|
394
|
-
"users": "Users List",
|
|
395
|
-
"groups": "Groups",
|
|
396
|
-
"staff": "Staff",
|
|
397
|
-
"staff_mod": "Moderators",
|
|
398
|
-
"staff_admin": "Administrators"
|
|
399
|
-
},
|
|
400
|
-
"admin_permissions": {
|
|
401
|
-
"users": "Users",
|
|
402
|
-
"can_manage_users": "Can manage users?",
|
|
403
|
-
"can_manage_groups": "Can manage groups?",
|
|
404
|
-
"staff": "Staff",
|
|
405
|
-
"can_manage_staff_admin": "Can manage administrators?"
|
|
406
|
-
}
|
|
407
|
-
}
|
|
408
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"welcome": {
|
|
3
|
-
"home": {
|
|
4
|
-
"title": "Ready to build?",
|
|
5
|
-
"desc": "Dive in. Create or install your first plugin!",
|
|
6
|
-
"go_to_admin_cp": "Go to AdminCP",
|
|
7
|
-
"read_our_docs": "Read our Docs"
|
|
8
|
-
}
|
|
9
|
-
},
|
|
10
|
-
"admin_welcome": {
|
|
11
|
-
"nav": {
|
|
12
|
-
"title": "Welcome"
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { useTranslations } from 'next-intl';
|
|
2
|
-
import { LogoVitNode } from 'vitnode-frontend/components/logo-vitnode';
|
|
3
|
-
import { Button } from 'vitnode-frontend/components/ui/button';
|
|
4
|
-
import { Link } from 'vitnode-frontend/navigation';
|
|
5
|
-
|
|
6
|
-
export default function DefaultPage() {
|
|
7
|
-
const t = useTranslations('welcome.home');
|
|
8
|
-
|
|
9
|
-
return (
|
|
10
|
-
<main className="container flex max-w-5xl flex-wrap items-center justify-between gap-8 px-8 py-10">
|
|
11
|
-
<div className="max-w-md space-y-4">
|
|
12
|
-
<h1 className="text-balance text-3xl font-bold tracking-tight md:text-4xl">
|
|
13
|
-
{t('title')}
|
|
14
|
-
</h1>
|
|
15
|
-
|
|
16
|
-
<p className="text-muted-foreground text-pretty">{t('desc')}</p>
|
|
17
|
-
|
|
18
|
-
<div className="flex flex-wrap items-center gap-2 md:gap-4">
|
|
19
|
-
<Button asChild>
|
|
20
|
-
<Link href="/admin" target="_blank">
|
|
21
|
-
{t('go_to_admin_cp')}
|
|
22
|
-
</Link>
|
|
23
|
-
</Button>
|
|
24
|
-
|
|
25
|
-
<Button asChild variant="ghost">
|
|
26
|
-
<Link
|
|
27
|
-
href="https://vitnode.com/docs"
|
|
28
|
-
rel="noopener noreferrer"
|
|
29
|
-
target="_blank"
|
|
30
|
-
>
|
|
31
|
-
{t('read_our_docs')}
|
|
32
|
-
</Link>
|
|
33
|
-
</Button>
|
|
34
|
-
</div>
|
|
35
|
-
</div>
|
|
36
|
-
|
|
37
|
-
<LogoVitNode className="w-60" />
|
|
38
|
-
</main>
|
|
39
|
-
);
|
|
40
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Config } from 'tailwindcss';
|
|
2
|
-
import vitnodeConfig from 'vitnode-frontend/tailwind.config';
|
|
3
|
-
|
|
4
|
-
const config = {
|
|
5
|
-
presets: [vitnodeConfig],
|
|
6
|
-
content: [
|
|
7
|
-
'./node_modules/vitnode-frontend/src/components/**/*.tsx',
|
|
8
|
-
'./node_modules/vitnode-frontend/src/views/**/*.tsx',
|
|
9
|
-
'./src/components/**/*.tsx',
|
|
10
|
-
'./src/app/**/*.tsx',
|
|
11
|
-
'./src/plugins/**/templates/**/*.tsx',
|
|
12
|
-
'./src/plugins/**/components/**/*.tsx',
|
|
13
|
-
],
|
|
14
|
-
} satisfies Config;
|
|
15
|
-
|
|
16
|
-
export default config;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "ES2017",
|
|
4
|
-
"lib": ["dom", "dom.iterable", "esnext"],
|
|
5
|
-
"allowJs": true,
|
|
6
|
-
"skipLibCheck": true,
|
|
7
|
-
"strict": true,
|
|
8
|
-
"noEmit": true,
|
|
9
|
-
"esModuleInterop": true,
|
|
10
|
-
"module": "esnext",
|
|
11
|
-
"moduleResolution": "bundler",
|
|
12
|
-
"resolveJsonModule": true,
|
|
13
|
-
"isolatedModules": true,
|
|
14
|
-
"jsx": "preserve",
|
|
15
|
-
"incremental": true,
|
|
16
|
-
"plugins": [
|
|
17
|
-
{
|
|
18
|
-
"name": "next"
|
|
19
|
-
}
|
|
20
|
-
],
|
|
21
|
-
"paths": {
|
|
22
|
-
"@/*": ["./src/*"]
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
"include": [
|
|
26
|
-
"next-env.d.ts",
|
|
27
|
-
"**/*.ts",
|
|
28
|
-
"**/*.tsx",
|
|
29
|
-
".next/types/**/*.ts",
|
|
30
|
-
"public/sw.js"
|
|
31
|
-
],
|
|
32
|
-
"exclude": ["node_modules"]
|
|
33
|
-
}
|
|
File without changes
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://json.schemastore.org/tsconfig",
|
|
3
|
-
"extends": "eslint-config-typescript-vitnode/tsconfig.nest.json",
|
|
4
|
-
"compilerOptions": {
|
|
5
|
-
"target": "ESNext",
|
|
6
|
-
"module": "Node16",
|
|
7
|
-
"moduleResolution": "Node16",
|
|
8
|
-
"outDir": "./dist",
|
|
9
|
-
"rootDir": "./plugins",
|
|
10
|
-
"esModuleInterop": true,
|
|
11
|
-
"declaration": true,
|
|
12
|
-
"tsBuildInfoFile": "./dist/tsconfig.tsbuildinfo"
|
|
13
|
-
},
|
|
14
|
-
"include": ["plugins/**/*"]
|
|
15
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://turbo.build/schema.json",
|
|
3
|
-
"ui": "tui",
|
|
4
|
-
"globalDependencies": [".env"],
|
|
5
|
-
"tasks": {
|
|
6
|
-
"build": {
|
|
7
|
-
"outputs": [".next/**", "!.next/cache/**", "dist/**"],
|
|
8
|
-
"dependsOn": ["^build"]
|
|
9
|
-
},
|
|
10
|
-
"start": {
|
|
11
|
-
"outputs": [".next/**", "!.next/cache/**", "dist/**"],
|
|
12
|
-
"dependsOn": ["^start"],
|
|
13
|
-
"persistent": true
|
|
14
|
-
},
|
|
15
|
-
"lint": {
|
|
16
|
-
"dependsOn": ["^lint"]
|
|
17
|
-
},
|
|
18
|
-
"lint:fix": {
|
|
19
|
-
"dependsOn": ["^lint:fix"]
|
|
20
|
-
},
|
|
21
|
-
"config:init": {
|
|
22
|
-
"dependsOn": ["^config:init"],
|
|
23
|
-
"cache": false
|
|
24
|
-
},
|
|
25
|
-
"db": {
|
|
26
|
-
"dependsOn": ["^db"],
|
|
27
|
-
"cache": false
|
|
28
|
-
},
|
|
29
|
-
"dev": {
|
|
30
|
-
"cache": false,
|
|
31
|
-
"persistent": true
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
FROM node:22-alpine AS base
|
|
2
|
-
RUN apk update
|
|
3
|
-
RUN apk add --no-cache libc6-compat
|
|
4
|
-
RUN npm i -g pnpm
|
|
5
|
-
|
|
6
|
-
FROM base AS builder
|
|
7
|
-
WORKDIR /app
|
|
8
|
-
RUN npm i -g turbo@^2
|
|
9
|
-
COPY . .
|
|
10
|
-
RUN turbo telemetry disable
|
|
11
|
-
RUN turbo prune backend --docker
|
|
12
|
-
|
|
13
|
-
FROM base AS installer
|
|
14
|
-
WORKDIR /app
|
|
15
|
-
COPY --from=builder /app/out/json/ .
|
|
16
|
-
RUN pnpm i
|
|
17
|
-
COPY --from=builder /app/out/full/ .
|
|
18
|
-
RUN pnpm config:init -- --skip-database
|
|
19
|
-
RUN pnpm turbo build --filter=backend...
|
|
20
|
-
|
|
21
|
-
FROM base AS runner
|
|
22
|
-
WORKDIR /app
|
|
23
|
-
RUN addgroup --system --gid 1001 nodejs
|
|
24
|
-
RUN adduser --system --uid 1001 nestjs
|
|
25
|
-
USER nestjs
|
|
26
|
-
|
|
27
|
-
COPY --from=installer --chown=nestjs:nodejs /app/ ./
|
|
28
|
-
|
|
29
|
-
EXPOSE 8080
|
|
30
|
-
ENV PORT 8080
|
|
31
|
-
ENV HOSTNAME "0.0.0.0"
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
FROM node:22-alpine AS base
|
|
2
|
-
RUN apk update
|
|
3
|
-
RUN apk add --no-cache libc6-compat
|
|
4
|
-
RUN npm i -g pnpm
|
|
5
|
-
|
|
6
|
-
FROM base AS builder
|
|
7
|
-
WORKDIR /app
|
|
8
|
-
RUN npm i -g turbo@^2
|
|
9
|
-
COPY . .
|
|
10
|
-
RUN turbo prune frontend --docker
|
|
11
|
-
|
|
12
|
-
FROM base AS installer
|
|
13
|
-
WORKDIR /app
|
|
14
|
-
COPY --from=builder /app/out/json/ .
|
|
15
|
-
RUN pnpm i --ignore-scripts
|
|
16
|
-
COPY --from=builder /app/out/full/ .
|
|
17
|
-
COPY --from=builder /app/.prettierrc.mjs ./
|
|
18
|
-
|
|
19
|
-
ARG NEXT_PUBLIC_BACKEND_URL
|
|
20
|
-
ENV NEXT_PUBLIC_BACKEND_URL=${NEXT_PUBLIC_BACKEND_URL}
|
|
21
|
-
ARG NEXT_PUBLIC_BACKEND_CLIENT_URL
|
|
22
|
-
ENV NEXT_PUBLIC_BACKEND_CLIENT_URL=${NEXT_PUBLIC_BACKEND_CLIENT_URL}
|
|
23
|
-
ARG NEXT_PUBLIC_FRONTEND_URL
|
|
24
|
-
ENV NEXT_PUBLIC_FRONTEND_URL=${NEXT_PUBLIC_FRONTEND_URL}
|
|
25
|
-
|
|
26
|
-
RUN pnpm turbo run build --filter=frontend...
|
|
27
|
-
|
|
28
|
-
FROM base AS runner
|
|
29
|
-
WORKDIR /app
|
|
30
|
-
RUN addgroup --system --gid 1001 nodejs
|
|
31
|
-
RUN adduser --system --uid 1001 nextjs
|
|
32
|
-
USER nextjs
|
|
33
|
-
|
|
34
|
-
COPY --from=installer --chown=nextjs:nodejs /app/apps/frontend/.next/standalone ./
|
|
35
|
-
COPY --from=installer --chown=nextjs:nodejs /app/apps/frontend/.next/static ./apps/frontend/.next/static
|
|
36
|
-
COPY --from=installer --chown=nextjs:nodejs /app/apps/frontend/public ./apps/frontend/public
|
|
37
|
-
|
|
38
|
-
CMD node apps/frontend/server.js
|