odac 0.9.0 → 1.0.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/.github/workflows/auto-pr-description.yml +0 -2
- package/.github/workflows/codeql.yml +46 -0
- package/.github/workflows/release.yml +13 -6
- package/.github/workflows/test-coverage.yml +10 -9
- package/.releaserc.js +9 -6
- package/CHANGELOG.md +62 -150
- package/CODE_OF_CONDUCT.md +1 -1
- package/CONTRIBUTING.md +8 -8
- package/LICENSE +21 -661
- package/README.md +12 -12
- package/SECURITY.md +4 -4
- package/bin/odac.js +101 -0
- package/{framework/web/candy.js → client/odac.js} +310 -44
- package/docs/backend/01-overview/{01-whats-in-the-candy-box.md → 01-whats-in-the-odac-box.md} +4 -2
- package/docs/backend/01-overview/02-super-handy-helper-functions.md +29 -1
- package/docs/backend/01-overview/03-development-server.md +11 -11
- package/docs/backend/02-structure/01-typical-project-layout.md +4 -4
- package/docs/backend/03-config/00-configuration-overview.md +6 -6
- package/docs/backend/03-config/01-database-connection.md +1 -1
- package/docs/backend/03-config/02-static-route-mapping-optional.md +4 -4
- package/docs/backend/03-config/04-environment-variables.md +20 -20
- package/docs/backend/03-config/05-early-hints.md +4 -4
- package/docs/backend/04-routing/01-basic-page-routes.md +4 -4
- package/docs/backend/04-routing/02-controller-less-view-routes.md +5 -5
- package/docs/backend/04-routing/03-api-and-data-routes.md +3 -3
- package/docs/backend/04-routing/04-authentication-aware-routes.md +5 -5
- package/docs/backend/04-routing/05-advanced-routing.md +3 -3
- package/docs/backend/04-routing/06-error-pages.md +17 -17
- package/docs/backend/04-routing/07-cron-jobs.md +13 -13
- package/docs/backend/04-routing/08-middleware.md +214 -0
- package/docs/backend/04-routing/09-websocket-auth-middleware.md +292 -0
- package/docs/backend/04-routing/09-websocket-examples.md +381 -0
- package/docs/backend/04-routing/09-websocket-quick-reference.md +211 -0
- package/docs/backend/04-routing/09-websocket.md +298 -0
- package/docs/backend/05-controllers/01-how-to-build-a-controller.md +3 -3
- package/docs/backend/05-controllers/02-your-trusty-odac-assistant.md +41 -0
- package/docs/backend/05-controllers/03-controller-classes.md +19 -19
- package/docs/backend/05-forms/01-custom-forms.md +114 -114
- package/docs/backend/05-forms/02-automatic-database-insert.md +82 -82
- package/docs/backend/06-request-and-response/01-the-request-object-what-is-the-user-asking-for.md +26 -26
- package/docs/backend/06-request-and-response/02-sending-a-response-replying-to-the-user.md +10 -10
- package/docs/backend/07-views/01-the-view-directory.md +1 -1
- package/docs/backend/07-views/02-rendering-a-view.md +22 -22
- package/docs/backend/07-views/03-template-syntax.md +52 -52
- package/docs/backend/07-views/03-variables.md +84 -84
- package/docs/backend/07-views/04-request-data.md +57 -57
- package/docs/backend/07-views/05-conditionals.md +78 -78
- package/docs/backend/07-views/06-loops.md +114 -114
- package/docs/backend/07-views/07-translations.md +66 -66
- package/docs/backend/07-views/08-backend-javascript.md +103 -103
- package/docs/backend/07-views/09-comments.md +71 -71
- package/docs/backend/08-database/01-database-connection.md +8 -8
- package/docs/backend/08-database/02-using-mysql.md +49 -49
- package/docs/backend/09-validation/01-the-validator-service.md +38 -38
- package/docs/backend/10-authentication/01-user-logins-with-authjs.md +15 -15
- package/docs/backend/10-authentication/02-foiling-villains-with-csrf-protection.md +10 -10
- package/docs/backend/10-authentication/03-register.md +12 -12
- package/docs/backend/10-authentication/{04-candy-register-forms.md → 04-odac-register-forms.md} +141 -141
- package/docs/backend/10-authentication/05-session-management.md +10 -10
- package/docs/backend/10-authentication/{06-candy-login-forms.md → 06-odac-login-forms.md} +125 -125
- package/docs/backend/11-mail/01-the-mail-service.md +5 -5
- package/docs/backend/12-streaming/01-streaming-overview.md +96 -54
- package/docs/backend/13-utilities/{01-candy-var.md → 01-odac-var.md} +109 -109
- package/docs/frontend/01-overview/01-introduction.md +30 -30
- package/docs/frontend/02-ajax-navigation/01-quick-start.md +45 -45
- package/docs/frontend/02-ajax-navigation/02-configuration.md +14 -14
- package/docs/frontend/02-ajax-navigation/03-advanced-usage.md +36 -36
- package/docs/frontend/03-forms/01-form-handling.md +32 -32
- package/docs/frontend/04-api-requests/01-get-post.md +33 -33
- package/docs/frontend/05-streaming/01-client-streaming.md +15 -15
- package/docs/frontend/06-websocket/00-overview.md +76 -0
- package/docs/frontend/06-websocket/01-websocket-client.md +139 -0
- package/docs/frontend/06-websocket/02-shared-websocket.md +149 -0
- package/docs/index.json +49 -11
- package/eslint.config.mjs +6 -6
- package/{framework/index.js → index.js} +1 -1
- package/package.json +14 -39
- package/{framework/src → src}/Auth.js +59 -59
- package/{framework/src → src}/Config.js +3 -3
- package/{framework/src → src}/Lang.js +7 -7
- package/{framework/src → src}/Mail.js +5 -5
- package/{framework/src → src}/Mysql.js +42 -42
- package/src/Odac.js +112 -0
- package/{framework/src → src}/Request.js +38 -36
- package/{framework/src → src}/Route/Internal.js +116 -116
- package/src/Route/Middleware.js +75 -0
- package/src/Route.js +621 -0
- package/src/Server.js +22 -0
- package/{framework/src → src}/Stream.js +11 -3
- package/{framework/src → src}/Validator.js +21 -21
- package/{framework/src → src}/Var.js +5 -5
- package/{framework/src → src}/View/EarlyHints.js +1 -1
- package/{framework/src → src}/View/Form.js +69 -69
- package/{framework/src → src}/View.js +78 -81
- package/src/WebSocket.js +403 -0
- package/template/config.json +5 -0
- package/{web → template}/controller/page/about.js +6 -6
- package/{web → template}/controller/page/index.js +9 -9
- package/{web → template}/package.json +4 -5
- package/{web → template}/public/assets/css/style.css +4 -4
- package/{web → template}/public/assets/js/app.js +6 -6
- package/{web → template}/route/www.js +6 -6
- package/{web → template}/skeleton/main.html +1 -1
- package/{web → template}/view/content/about.html +5 -5
- package/{web → template}/view/content/home.html +12 -12
- package/template/view/footer/main.html +11 -0
- package/{web → template}/view/head/main.html +1 -1
- package/{web → template}/view/header/main.html +2 -2
- package/test/core/Candy.test.js +58 -58
- package/test/core/Commands.test.js +7 -7
- package/test/core/Config.test.js +82 -85
- package/test/core/Lang.test.js +2 -2
- package/test/core/Process.test.js +6 -6
- package/test/framework/Route.test.js +56 -37
- package/test/framework/View/EarlyHints.test.js +2 -2
- package/test/framework/WebSocket.test.js +100 -0
- package/test/framework/middleware.test.js +85 -0
- package/test/server/Api.test.js +31 -31
- package/test/server/DNS.test.js +11 -11
- package/test/server/Hub.test.js +497 -0
- package/test/server/Mail.account.test_.js +3 -3
- package/test/server/Mail.init.test_.js +10 -10
- package/test/server/Mail.test_.js +20 -20
- package/test/server/SSL.test_.js +54 -54
- package/test/server/Server.test.js +39 -39
- package/test/server/Service.test_.js +7 -7
- package/test/server/Subdomain.test.js +7 -7
- package/test/server/Web/Firewall.test.js +87 -87
- package/test/server/Web/Proxy.test.js +397 -0
- package/test/server/{Web.test_.js → Web.test.js} +137 -205
- package/test/server/__mocks__/fs.js +2 -2
- package/test/server/__mocks__/{globalCandy.js → globalOdac.js} +5 -5
- package/test/server/__mocks__/index.js +6 -6
- package/test/server/__mocks__/testFactories.js +1 -1
- package/test/server/__mocks__/testHelpers.js +7 -7
- package/.husky/pre-commit +0 -2
- package/.kiro/steering/code-style.md +0 -56
- package/.kiro/steering/product.md +0 -20
- package/.kiro/steering/structure.md +0 -77
- package/.kiro/steering/tech.md +0 -87
- package/AGENTS.md +0 -84
- package/bin/candy +0 -10
- package/bin/candypack +0 -10
- package/cli/index.js +0 -3
- package/cli/src/Cli.js +0 -348
- package/cli/src/Connector.js +0 -93
- package/cli/src/Monitor.js +0 -416
- package/core/Candy.js +0 -87
- package/core/Commands.js +0 -239
- package/core/Config.js +0 -1094
- package/core/Lang.js +0 -52
- package/core/Log.js +0 -43
- package/core/Process.js +0 -26
- package/docs/backend/05-controllers/02-your-trusty-candy-assistant.md +0 -20
- package/docs/server/01-installation/01-quick-install.md +0 -19
- package/docs/server/01-installation/02-manual-installation-via-npm.md +0 -9
- package/docs/server/02-get-started/01-core-concepts.md +0 -7
- package/docs/server/02-get-started/02-basic-commands.md +0 -57
- package/docs/server/02-get-started/03-cli-reference.md +0 -276
- package/docs/server/02-get-started/04-cli-quick-reference.md +0 -102
- package/docs/server/03-service/01-start-a-new-service.md +0 -57
- package/docs/server/03-service/02-delete-a-service.md +0 -48
- package/docs/server/04-web/01-create-a-website.md +0 -36
- package/docs/server/04-web/02-list-websites.md +0 -9
- package/docs/server/04-web/03-delete-a-website.md +0 -29
- package/docs/server/05-subdomain/01-create-a-subdomain.md +0 -32
- package/docs/server/05-subdomain/02-list-subdomains.md +0 -33
- package/docs/server/05-subdomain/03-delete-a-subdomain.md +0 -41
- package/docs/server/06-ssl/01-renew-an-ssl-certificate.md +0 -34
- package/docs/server/07-mail/01-create-a-mail-account.md +0 -23
- package/docs/server/07-mail/02-delete-a-mail-account.md +0 -20
- package/docs/server/07-mail/03-list-mail-accounts.md +0 -20
- package/docs/server/07-mail/04-change-account-password.md +0 -23
- package/framework/src/Candy.js +0 -81
- package/framework/src/Route.js +0 -455
- package/framework/src/Server.js +0 -15
- package/locale/de-DE.json +0 -80
- package/locale/en-US.json +0 -79
- package/locale/es-ES.json +0 -80
- package/locale/fr-FR.json +0 -80
- package/locale/pt-BR.json +0 -80
- package/locale/ru-RU.json +0 -80
- package/locale/tr-TR.json +0 -85
- package/locale/zh-CN.json +0 -80
- package/server/index.js +0 -5
- package/server/src/Api.js +0 -88
- package/server/src/DNS.js +0 -940
- package/server/src/Hub.js +0 -535
- package/server/src/Mail.js +0 -571
- package/server/src/SSL.js +0 -180
- package/server/src/Server.js +0 -27
- package/server/src/Service.js +0 -248
- package/server/src/Subdomain.js +0 -64
- package/server/src/Web/Firewall.js +0 -170
- package/server/src/Web/Proxy.js +0 -134
- package/server/src/Web.js +0 -451
- package/server/src/mail/imap.js +0 -1091
- package/server/src/mail/server.js +0 -32
- package/server/src/mail/smtp.js +0 -786
- package/test/server/Client.test.js +0 -338
- package/test/server/__mocks__/http-proxy.js +0 -105
- package/watchdog/index.js +0 -3
- package/watchdog/src/Watchdog.js +0 -156
- package/web/config.json +0 -5
- package/web/view/footer/main.html +0 -11
- /package/{framework/src → src}/Env.js +0 -0
- /package/{framework/src → src}/Route/Cron.js +0 -0
- /package/{framework/src → src}/Token.js +0 -0
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
## 🗑️ Delete a Service
|
|
2
|
-
|
|
3
|
-
This command removes a running service from CandyPack's monitoring and stops its execution.
|
|
4
|
-
|
|
5
|
-
### Interactive Usage
|
|
6
|
-
```bash
|
|
7
|
-
candy service delete
|
|
8
|
-
```
|
|
9
|
-
You will be prompted to enter the service ID or name that you want to delete.
|
|
10
|
-
|
|
11
|
-
### Single-Line Usage with Prefixes
|
|
12
|
-
```bash
|
|
13
|
-
# Specify service ID or name directly
|
|
14
|
-
candy service delete -i my-service
|
|
15
|
-
candy service delete -i /path/to/app/index.js
|
|
16
|
-
|
|
17
|
-
# Or use long form prefix
|
|
18
|
-
candy service delete --id my-service
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
### Available Prefixes
|
|
22
|
-
- `-i`, `--id`: Service ID or name to delete
|
|
23
|
-
|
|
24
|
-
### Finding Service Information
|
|
25
|
-
To find the service ID or name, use:
|
|
26
|
-
```bash
|
|
27
|
-
candy monit # Interactive monitoring view
|
|
28
|
-
candy # Quick status with service count
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
### Interactive Example
|
|
32
|
-
```bash
|
|
33
|
-
$ candy service delete
|
|
34
|
-
> Enter the Service ID or Name: my-api-service
|
|
35
|
-
✓ Service 'my-api-service' deleted successfully
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
### Single-Line Example
|
|
39
|
-
```bash
|
|
40
|
-
$ candy service delete -i my-api-service
|
|
41
|
-
✓ Service 'my-api-service' deleted successfully
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
### Important Notes
|
|
45
|
-
- Deleting a service stops its execution immediately
|
|
46
|
-
- The service will no longer be monitored or automatically restarted
|
|
47
|
-
- This does not delete the source code files, only removes the service from CandyPack
|
|
48
|
-
- You can restart the same service later using `candy run <file>`
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
## 🌐 Create a Website
|
|
2
|
-
This command helps you set up a new website on your server. CandyPack will ask for the domain name and the path to the website's files.
|
|
3
|
-
|
|
4
|
-
### Interactive Usage
|
|
5
|
-
```bash
|
|
6
|
-
candy web create
|
|
7
|
-
```
|
|
8
|
-
After running the command, you will be prompted to enter the following information:
|
|
9
|
-
- **Domain Name:** The primary domain for your website (e.g., `example.com`).
|
|
10
|
-
- **Path:** The absolute path to your website's root directory (e.g., `/var/www/example.com`). If you leave this blank, CandyPack will suggest a default path based on the domain name.
|
|
11
|
-
|
|
12
|
-
### Single-Line Usage with Prefixes
|
|
13
|
-
```bash
|
|
14
|
-
# Specify domain directly
|
|
15
|
-
candy web create -d example.com
|
|
16
|
-
|
|
17
|
-
# Or use long form prefix
|
|
18
|
-
candy web create --domain example.com
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
### Available Prefixes
|
|
22
|
-
- `-d`, `--domain`: Domain name for the new website
|
|
23
|
-
|
|
24
|
-
### Interactive Example
|
|
25
|
-
```bash
|
|
26
|
-
$ candy web create
|
|
27
|
-
> Enter the domain name: example.com
|
|
28
|
-
> Enter the path to the website (/home/user/example.com/):
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
### Single-Line Example
|
|
32
|
-
```bash
|
|
33
|
-
$ candy web create -d example.com
|
|
34
|
-
✓ Website created successfully for example.com
|
|
35
|
-
```
|
|
36
|
-
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
## 📋 List Websites
|
|
2
|
-
To see a list of all websites currently configured on your server, use the `list` command.
|
|
3
|
-
|
|
4
|
-
### Usage
|
|
5
|
-
```bash
|
|
6
|
-
candy web list
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
This command will output a table of your websites, showing their status and other relevant details. You can also monitor your websites in real-time with the `candy monit` command.
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
## 🗑️ Delete a Website
|
|
2
|
-
|
|
3
|
-
You can delete a website using the `web delete` command. This command will prompt you for the domain name of the website you want to delete.
|
|
4
|
-
|
|
5
|
-
### Interactive Usage
|
|
6
|
-
```bash
|
|
7
|
-
candy web delete
|
|
8
|
-
```
|
|
9
|
-
|
|
10
|
-
The command will then ask for the domain name:
|
|
11
|
-
```
|
|
12
|
-
Enter the domain name: my-website.com
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
### Single-Line Usage with Prefixes
|
|
16
|
-
```bash
|
|
17
|
-
# Specify domain directly
|
|
18
|
-
candy web delete -d my-website.com
|
|
19
|
-
|
|
20
|
-
# Or use long form prefix
|
|
21
|
-
candy web delete --domain my-website.com
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
### Available Prefixes
|
|
25
|
-
- `-d`, `--domain`: Domain name of the website to delete
|
|
26
|
-
|
|
27
|
-
### Important Note
|
|
28
|
-
|
|
29
|
-
This command only removes the server configuration for the website. It **does not** delete the website's source code directory. If you want to remove the source code as well, you must delete the directory manually.
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
## 🔗 Create a Subdomain
|
|
2
|
-
This command allows you to create a new subdomain. CandyPack will automatically configure it to point to a directory with the same name inside your main domain's root directory.
|
|
3
|
-
|
|
4
|
-
### Interactive Usage
|
|
5
|
-
```bash
|
|
6
|
-
candy subdomain create
|
|
7
|
-
```
|
|
8
|
-
After running the command, you will be prompted to enter the new subdomain name, including the main domain (e.g., `blog.example.com`).
|
|
9
|
-
|
|
10
|
-
### Single-Line Usage with Prefixes
|
|
11
|
-
```bash
|
|
12
|
-
# Specify subdomain directly
|
|
13
|
-
candy subdomain create -s blog.example.com
|
|
14
|
-
|
|
15
|
-
# Or use long form prefix
|
|
16
|
-
candy subdomain create --subdomain blog.example.com
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
### Available Prefixes
|
|
20
|
-
- `-s`, `--subdomain`: Full subdomain name (e.g., blog.example.com)
|
|
21
|
-
|
|
22
|
-
### Interactive Example
|
|
23
|
-
```bash
|
|
24
|
-
$ candy subdomain create
|
|
25
|
-
> Enter the subdomain name (subdomain.example.com): blog.example.com
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
### Single-Line Example
|
|
29
|
-
```bash
|
|
30
|
-
$ candy subdomain create -s blog.example.com
|
|
31
|
-
✓ Subdomain blog.example.com created successfully
|
|
32
|
-
```
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
## 📋 List Subdomains
|
|
2
|
-
To see a list of all subdomains configured for a specific domain, use the `list` command.
|
|
3
|
-
|
|
4
|
-
### Interactive Usage
|
|
5
|
-
```bash
|
|
6
|
-
candy subdomain list
|
|
7
|
-
```
|
|
8
|
-
This command will prompt you to enter the main domain name for which you want to list the subdomains.
|
|
9
|
-
|
|
10
|
-
### Single-Line Usage with Prefixes
|
|
11
|
-
```bash
|
|
12
|
-
# Specify domain directly
|
|
13
|
-
candy subdomain list -d example.com
|
|
14
|
-
|
|
15
|
-
# Or use long form prefix
|
|
16
|
-
candy subdomain list --domain example.com
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
### Available Prefixes
|
|
20
|
-
- `-d`, `--domain`: Domain name to list subdomains for
|
|
21
|
-
|
|
22
|
-
### Interactive Example
|
|
23
|
-
```bash
|
|
24
|
-
$ candy subdomain list
|
|
25
|
-
> Enter the domain name: example.com
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
### Single-Line Example
|
|
29
|
-
```bash
|
|
30
|
-
$ candy subdomain list -d example.com
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
This will display a list of all subdomains associated with `example.com`.
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
## 🗑️ Delete a Subdomain
|
|
2
|
-
|
|
3
|
-
This command removes a subdomain configuration from your server.
|
|
4
|
-
|
|
5
|
-
### Interactive Usage
|
|
6
|
-
```bash
|
|
7
|
-
candy subdomain delete
|
|
8
|
-
```
|
|
9
|
-
You will be prompted to enter the full subdomain name (including the main domain) that you want to delete.
|
|
10
|
-
|
|
11
|
-
### Single-Line Usage with Prefixes
|
|
12
|
-
```bash
|
|
13
|
-
# Specify subdomain directly
|
|
14
|
-
candy subdomain delete -s blog.example.com
|
|
15
|
-
|
|
16
|
-
# Or use long form prefix
|
|
17
|
-
candy subdomain delete --subdomain blog.example.com
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
### Available Prefixes
|
|
21
|
-
- `-s`, `--subdomain`: Full subdomain name to delete (e.g., blog.example.com)
|
|
22
|
-
|
|
23
|
-
### Interactive Example
|
|
24
|
-
```bash
|
|
25
|
-
$ candy subdomain delete
|
|
26
|
-
> Enter the subdomain name (subdomain.example.com): blog.example.com
|
|
27
|
-
✓ Subdomain 'blog.example.com' deleted successfully
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
### Single-Line Example
|
|
31
|
-
```bash
|
|
32
|
-
$ candy subdomain delete -s blog.example.com
|
|
33
|
-
✓ Subdomain 'blog.example.com' deleted successfully
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
### Important Notes
|
|
37
|
-
- This command only removes the server configuration for the subdomain
|
|
38
|
-
- It **does not** delete the subdomain's directory or files
|
|
39
|
-
- If you want to remove the files as well, you must delete the directory manually
|
|
40
|
-
- The subdomain will no longer be accessible after deletion
|
|
41
|
-
- SSL certificates associated with the subdomain may need to be renewed for the main domain
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
## 🔒 Renew an SSL Certificate
|
|
2
|
-
This command attempts to renew the SSL certificate for a given domain. This can be useful if a certificate is close to expiring and you want to force an early renewal.
|
|
3
|
-
|
|
4
|
-
### Interactive Usage
|
|
5
|
-
```bash
|
|
6
|
-
candy ssl renew
|
|
7
|
-
```
|
|
8
|
-
After running the command, you will be prompted to enter the domain name for which you want to renew the SSL certificate.
|
|
9
|
-
|
|
10
|
-
### Single-Line Usage with Prefixes
|
|
11
|
-
```bash
|
|
12
|
-
# Specify domain directly
|
|
13
|
-
candy ssl renew -d example.com
|
|
14
|
-
|
|
15
|
-
# Or use long form prefix
|
|
16
|
-
candy ssl renew --domain example.com
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
### Available Prefixes
|
|
20
|
-
- `-d`, `--domain`: Domain name to renew SSL certificate for
|
|
21
|
-
|
|
22
|
-
### Interactive Example
|
|
23
|
-
```bash
|
|
24
|
-
$ candy ssl renew
|
|
25
|
-
> Enter the domain name: example.com
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
### Single-Line Example
|
|
29
|
-
```bash
|
|
30
|
-
$ candy ssl renew -d example.com
|
|
31
|
-
✓ SSL certificate renewal initiated for example.com
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
CandyPack will then handle the process of validating your domain and renewing the certificate.
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
## ✉️ Create a Mail Account
|
|
2
|
-
This command allows you to create a new email account.
|
|
3
|
-
|
|
4
|
-
### Interactive Usage
|
|
5
|
-
```bash
|
|
6
|
-
candy mail create
|
|
7
|
-
```
|
|
8
|
-
You will be prompted to enter the new email address and a password for the account.
|
|
9
|
-
|
|
10
|
-
### Single-Line Usage with Prefixes
|
|
11
|
-
```bash
|
|
12
|
-
# Specify email and password directly
|
|
13
|
-
candy mail create -e user@example.com -p mypassword
|
|
14
|
-
|
|
15
|
-
# Or use long form prefixes
|
|
16
|
-
candy mail create --email user@example.com --password mypassword
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
### Available Prefixes
|
|
20
|
-
- `-e`, `--email`: Email address for the new account
|
|
21
|
-
- `-p`, `--password`: Password for the new account
|
|
22
|
-
|
|
23
|
-
**Note:** When using the `-p` prefix, you won't be prompted to confirm the password. In interactive mode, you'll need to enter the password twice for confirmation.
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
## 🗑️ Delete a Mail Account
|
|
2
|
-
This command removes an existing email account.
|
|
3
|
-
|
|
4
|
-
### Interactive Usage
|
|
5
|
-
```bash
|
|
6
|
-
candy mail delete
|
|
7
|
-
```
|
|
8
|
-
You will be prompted to enter the email address you wish to delete.
|
|
9
|
-
|
|
10
|
-
### Single-Line Usage with Prefixes
|
|
11
|
-
```bash
|
|
12
|
-
# Specify email directly
|
|
13
|
-
candy mail delete -e user@example.com
|
|
14
|
-
|
|
15
|
-
# Or use long form prefix
|
|
16
|
-
candy mail delete --email user@example.com
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
### Available Prefixes
|
|
20
|
-
- `-e`, `--email`: Email address to delete
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
## 📋 List Mail Accounts
|
|
2
|
-
This command lists all email accounts associated with a specific domain.
|
|
3
|
-
|
|
4
|
-
### Interactive Usage
|
|
5
|
-
```bash
|
|
6
|
-
candy mail list
|
|
7
|
-
```
|
|
8
|
-
You will be prompted to enter the domain name (e.g., `example.com`) to see all its email accounts.
|
|
9
|
-
|
|
10
|
-
### Single-Line Usage with Prefixes
|
|
11
|
-
```bash
|
|
12
|
-
# Specify domain directly
|
|
13
|
-
candy mail list -d example.com
|
|
14
|
-
|
|
15
|
-
# Or use long form prefix
|
|
16
|
-
candy mail list --domain example.com
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
### Available Prefixes
|
|
20
|
-
- `-d`, `--domain`: Domain name to list email accounts for
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
## 🔑 Change Account Password
|
|
2
|
-
This command allows you to change the password for an existing email account.
|
|
3
|
-
|
|
4
|
-
### Interactive Usage
|
|
5
|
-
```bash
|
|
6
|
-
candy mail password
|
|
7
|
-
```
|
|
8
|
-
You will be prompted to enter the email address and the new password.
|
|
9
|
-
|
|
10
|
-
### Single-Line Usage with Prefixes
|
|
11
|
-
```bash
|
|
12
|
-
# Specify email and new password directly
|
|
13
|
-
candy mail password -e user@example.com -p newpassword
|
|
14
|
-
|
|
15
|
-
# Or use long form prefixes
|
|
16
|
-
candy mail password --email user@example.com --password newpassword
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
### Available Prefixes
|
|
20
|
-
- `-e`, `--email`: Email address to change password for
|
|
21
|
-
- `-p`, `--password`: New password for the account
|
|
22
|
-
|
|
23
|
-
**Note:** When using the `-p` prefix, you won't be prompted to confirm the password. In interactive mode, you'll need to enter the password twice for confirmation.
|
package/framework/src/Candy.js
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
init: async function () {
|
|
3
|
-
global.Candy = this.instance()
|
|
4
|
-
await global.Candy.Env.init()
|
|
5
|
-
await global.Candy.Config.init()
|
|
6
|
-
await global.Candy.Mysql.init()
|
|
7
|
-
await global.Candy.Route.init()
|
|
8
|
-
await global.Candy.Server.init()
|
|
9
|
-
global.Candy.instance = this.instance
|
|
10
|
-
global.__ = value => {
|
|
11
|
-
return value
|
|
12
|
-
}
|
|
13
|
-
},
|
|
14
|
-
|
|
15
|
-
instance(id, req, res) {
|
|
16
|
-
let _candy = {}
|
|
17
|
-
|
|
18
|
-
_candy.Config = require('./Config.js')
|
|
19
|
-
_candy.Env = require('./Env.js')
|
|
20
|
-
_candy.Mail = (...args) => new (require('./Mail.js'))(...args)
|
|
21
|
-
_candy.Mysql = require('./Mysql.js')
|
|
22
|
-
_candy.Route = global.Candy?.Route ?? new (require('./Route.js'))()
|
|
23
|
-
_candy.Server = require('./Server.js')
|
|
24
|
-
_candy.Var = (...args) => new (require('./Var.js'))(...args)
|
|
25
|
-
|
|
26
|
-
if (req && res) {
|
|
27
|
-
_candy.Request = new (require('./Request.js'))(id, req, res, _candy)
|
|
28
|
-
_candy.Auth = new (require('./Auth.js'))(_candy.Request)
|
|
29
|
-
_candy.Token = new (require('./Token.js'))(_candy.Request)
|
|
30
|
-
_candy.Lang = new (require('./Lang.js'))(_candy)
|
|
31
|
-
_candy.View = new (require('./View.js'))(_candy)
|
|
32
|
-
|
|
33
|
-
if (global.Candy?.Route?.class) {
|
|
34
|
-
for (const name in global.Candy.Route.class) {
|
|
35
|
-
const Module = global.Candy.Route.class[name].module
|
|
36
|
-
_candy[name] = typeof Module === 'function' ? new Module(_candy) : Module
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
_candy.__ = function (...args) {
|
|
41
|
-
return _candy.Lang.get(...args)
|
|
42
|
-
}
|
|
43
|
-
_candy.abort = function (code) {
|
|
44
|
-
return _candy.Request.abort(code)
|
|
45
|
-
}
|
|
46
|
-
_candy.cookie = function (key, value, options) {
|
|
47
|
-
return _candy.Request.cookie(key, value, options)
|
|
48
|
-
}
|
|
49
|
-
_candy.direct = function (url) {
|
|
50
|
-
return _candy.Request.redirect(url)
|
|
51
|
-
}
|
|
52
|
-
_candy.env = function (key, defaultValue) {
|
|
53
|
-
return _candy.Env.get(key, defaultValue)
|
|
54
|
-
}
|
|
55
|
-
_candy.return = function (data) {
|
|
56
|
-
return _candy.Request.end(data)
|
|
57
|
-
}
|
|
58
|
-
_candy.request = function (key) {
|
|
59
|
-
return _candy.Request.request(key)
|
|
60
|
-
}
|
|
61
|
-
_candy.set = function (key, value) {
|
|
62
|
-
return _candy.Request.set(key, value)
|
|
63
|
-
}
|
|
64
|
-
_candy.token = function (hash) {
|
|
65
|
-
return hash ? _candy.Token.check(hash) : _candy.Token.generate()
|
|
66
|
-
}
|
|
67
|
-
_candy.validator = function () {
|
|
68
|
-
return new (require('./Validator.js'))(_candy.Request)
|
|
69
|
-
}
|
|
70
|
-
_candy.write = function (value) {
|
|
71
|
-
return _candy.Request.write(value)
|
|
72
|
-
}
|
|
73
|
-
_candy.stream = function (input) {
|
|
74
|
-
_candy.Request.clearTimeout()
|
|
75
|
-
return new (require('./Stream'))(_candy.Request.req, _candy.Request.res, input)
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
return _candy
|
|
80
|
-
}
|
|
81
|
-
}
|