odac 0.9.0 → 1.0.1

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 (208) hide show
  1. package/.github/workflows/auto-pr-description.yml +0 -2
  2. package/.github/workflows/codeql.yml +46 -0
  3. package/.github/workflows/release.yml +13 -6
  4. package/.github/workflows/test-coverage.yml +10 -9
  5. package/.releaserc.js +9 -6
  6. package/CHANGELOG.md +72 -150
  7. package/CODE_OF_CONDUCT.md +1 -1
  8. package/CONTRIBUTING.md +8 -8
  9. package/LICENSE +21 -661
  10. package/README.md +12 -12
  11. package/SECURITY.md +4 -4
  12. package/bin/odac.js +81 -0
  13. package/{framework/web/candy.js → client/odac.js} +310 -44
  14. package/docs/backend/01-overview/{01-whats-in-the-candy-box.md → 01-whats-in-the-odac-box.md} +4 -2
  15. package/docs/backend/01-overview/02-super-handy-helper-functions.md +29 -1
  16. package/docs/backend/01-overview/03-development-server.md +11 -11
  17. package/docs/backend/02-structure/01-typical-project-layout.md +4 -4
  18. package/docs/backend/03-config/00-configuration-overview.md +6 -6
  19. package/docs/backend/03-config/01-database-connection.md +1 -1
  20. package/docs/backend/03-config/02-static-route-mapping-optional.md +4 -4
  21. package/docs/backend/03-config/04-environment-variables.md +20 -20
  22. package/docs/backend/03-config/05-early-hints.md +4 -4
  23. package/docs/backend/04-routing/01-basic-page-routes.md +4 -4
  24. package/docs/backend/04-routing/02-controller-less-view-routes.md +5 -5
  25. package/docs/backend/04-routing/03-api-and-data-routes.md +3 -3
  26. package/docs/backend/04-routing/04-authentication-aware-routes.md +5 -5
  27. package/docs/backend/04-routing/05-advanced-routing.md +3 -3
  28. package/docs/backend/04-routing/06-error-pages.md +17 -17
  29. package/docs/backend/04-routing/07-cron-jobs.md +13 -13
  30. package/docs/backend/04-routing/08-middleware.md +214 -0
  31. package/docs/backend/04-routing/09-websocket-auth-middleware.md +292 -0
  32. package/docs/backend/04-routing/09-websocket-examples.md +381 -0
  33. package/docs/backend/04-routing/09-websocket-quick-reference.md +211 -0
  34. package/docs/backend/04-routing/09-websocket.md +298 -0
  35. package/docs/backend/05-controllers/01-how-to-build-a-controller.md +3 -3
  36. package/docs/backend/05-controllers/02-your-trusty-odac-assistant.md +41 -0
  37. package/docs/backend/05-controllers/03-controller-classes.md +19 -19
  38. package/docs/backend/05-forms/01-custom-forms.md +114 -114
  39. package/docs/backend/05-forms/02-automatic-database-insert.md +82 -82
  40. package/docs/backend/06-request-and-response/01-the-request-object-what-is-the-user-asking-for.md +26 -26
  41. package/docs/backend/06-request-and-response/02-sending-a-response-replying-to-the-user.md +10 -10
  42. package/docs/backend/07-views/01-the-view-directory.md +1 -1
  43. package/docs/backend/07-views/02-rendering-a-view.md +22 -22
  44. package/docs/backend/07-views/03-template-syntax.md +52 -52
  45. package/docs/backend/07-views/03-variables.md +84 -84
  46. package/docs/backend/07-views/04-request-data.md +57 -57
  47. package/docs/backend/07-views/05-conditionals.md +78 -78
  48. package/docs/backend/07-views/06-loops.md +114 -114
  49. package/docs/backend/07-views/07-translations.md +66 -66
  50. package/docs/backend/07-views/08-backend-javascript.md +103 -103
  51. package/docs/backend/07-views/09-comments.md +71 -71
  52. package/docs/backend/08-database/01-database-connection.md +8 -8
  53. package/docs/backend/08-database/02-using-mysql.md +49 -49
  54. package/docs/backend/09-validation/01-the-validator-service.md +38 -38
  55. package/docs/backend/10-authentication/01-user-logins-with-authjs.md +15 -15
  56. package/docs/backend/10-authentication/02-foiling-villains-with-csrf-protection.md +10 -10
  57. package/docs/backend/10-authentication/03-register.md +12 -12
  58. package/docs/backend/10-authentication/{04-candy-register-forms.md → 04-odac-register-forms.md} +141 -141
  59. package/docs/backend/10-authentication/05-session-management.md +10 -10
  60. package/docs/backend/10-authentication/{06-candy-login-forms.md → 06-odac-login-forms.md} +125 -125
  61. package/docs/backend/11-mail/01-the-mail-service.md +5 -5
  62. package/docs/backend/12-streaming/01-streaming-overview.md +96 -54
  63. package/docs/backend/13-utilities/{01-candy-var.md → 01-odac-var.md} +109 -109
  64. package/docs/frontend/01-overview/01-introduction.md +30 -30
  65. package/docs/frontend/02-ajax-navigation/01-quick-start.md +45 -45
  66. package/docs/frontend/02-ajax-navigation/02-configuration.md +14 -14
  67. package/docs/frontend/02-ajax-navigation/03-advanced-usage.md +36 -36
  68. package/docs/frontend/03-forms/01-form-handling.md +32 -32
  69. package/docs/frontend/04-api-requests/01-get-post.md +33 -33
  70. package/docs/frontend/05-streaming/01-client-streaming.md +15 -15
  71. package/docs/frontend/06-websocket/00-overview.md +76 -0
  72. package/docs/frontend/06-websocket/01-websocket-client.md +139 -0
  73. package/docs/frontend/06-websocket/02-shared-websocket.md +149 -0
  74. package/docs/index.json +49 -11
  75. package/eslint.config.mjs +6 -6
  76. package/{framework/index.js → index.js} +1 -1
  77. package/package.json +14 -39
  78. package/{framework/src → src}/Auth.js +59 -59
  79. package/{framework/src → src}/Config.js +3 -3
  80. package/{framework/src → src}/Lang.js +7 -7
  81. package/{framework/src → src}/Mail.js +5 -5
  82. package/{framework/src → src}/Mysql.js +42 -42
  83. package/src/Odac.js +112 -0
  84. package/{framework/src → src}/Request.js +38 -36
  85. package/{framework/src → src}/Route/Internal.js +116 -116
  86. package/src/Route/Middleware.js +75 -0
  87. package/src/Route.js +621 -0
  88. package/src/Server.js +22 -0
  89. package/{framework/src → src}/Stream.js +11 -3
  90. package/{framework/src → src}/Validator.js +21 -21
  91. package/{framework/src → src}/Var.js +5 -5
  92. package/{framework/src → src}/View/EarlyHints.js +1 -1
  93. package/{framework/src → src}/View/Form.js +69 -69
  94. package/{framework/src → src}/View.js +78 -81
  95. package/src/WebSocket.js +403 -0
  96. package/template/config.json +5 -0
  97. package/{web → template}/controller/page/about.js +6 -6
  98. package/{web → template}/controller/page/index.js +9 -9
  99. package/{web → template}/package.json +4 -5
  100. package/{web → template}/public/assets/css/style.css +4 -4
  101. package/{web → template}/public/assets/js/app.js +6 -6
  102. package/{web → template}/route/www.js +6 -6
  103. package/{web → template}/skeleton/main.html +1 -1
  104. package/{web → template}/view/content/about.html +5 -5
  105. package/{web → template}/view/content/home.html +12 -12
  106. package/template/view/footer/main.html +11 -0
  107. package/{web → template}/view/head/main.html +1 -1
  108. package/{web → template}/view/header/main.html +2 -2
  109. package/test/core/Candy.test.js +58 -58
  110. package/test/core/Commands.test.js +7 -7
  111. package/test/core/Config.test.js +82 -85
  112. package/test/core/Lang.test.js +2 -2
  113. package/test/core/Process.test.js +6 -6
  114. package/test/framework/Route.test.js +56 -37
  115. package/test/framework/View/EarlyHints.test.js +2 -2
  116. package/test/framework/WebSocket.test.js +100 -0
  117. package/test/framework/middleware.test.js +85 -0
  118. package/test/server/Api.test.js +31 -31
  119. package/test/server/DNS.test.js +11 -11
  120. package/test/server/Hub.test.js +497 -0
  121. package/test/server/Mail.account.test_.js +3 -3
  122. package/test/server/Mail.init.test_.js +10 -10
  123. package/test/server/Mail.test_.js +20 -20
  124. package/test/server/SSL.test_.js +54 -54
  125. package/test/server/Server.test.js +39 -39
  126. package/test/server/Service.test_.js +7 -7
  127. package/test/server/Subdomain.test.js +7 -7
  128. package/test/server/Web/Firewall.test.js +87 -87
  129. package/test/server/Web/Proxy.test.js +397 -0
  130. package/test/server/{Web.test_.js → Web.test.js} +137 -205
  131. package/test/server/__mocks__/fs.js +2 -2
  132. package/test/server/__mocks__/{globalCandy.js → globalOdac.js} +5 -5
  133. package/test/server/__mocks__/index.js +6 -6
  134. package/test/server/__mocks__/testFactories.js +1 -1
  135. package/test/server/__mocks__/testHelpers.js +7 -7
  136. package/.husky/pre-commit +0 -2
  137. package/.kiro/steering/code-style.md +0 -56
  138. package/.kiro/steering/product.md +0 -20
  139. package/.kiro/steering/structure.md +0 -77
  140. package/.kiro/steering/tech.md +0 -87
  141. package/AGENTS.md +0 -84
  142. package/bin/candy +0 -10
  143. package/bin/candypack +0 -10
  144. package/cli/index.js +0 -3
  145. package/cli/src/Cli.js +0 -348
  146. package/cli/src/Connector.js +0 -93
  147. package/cli/src/Monitor.js +0 -416
  148. package/core/Candy.js +0 -87
  149. package/core/Commands.js +0 -239
  150. package/core/Config.js +0 -1094
  151. package/core/Lang.js +0 -52
  152. package/core/Log.js +0 -43
  153. package/core/Process.js +0 -26
  154. package/docs/backend/05-controllers/02-your-trusty-candy-assistant.md +0 -20
  155. package/docs/server/01-installation/01-quick-install.md +0 -19
  156. package/docs/server/01-installation/02-manual-installation-via-npm.md +0 -9
  157. package/docs/server/02-get-started/01-core-concepts.md +0 -7
  158. package/docs/server/02-get-started/02-basic-commands.md +0 -57
  159. package/docs/server/02-get-started/03-cli-reference.md +0 -276
  160. package/docs/server/02-get-started/04-cli-quick-reference.md +0 -102
  161. package/docs/server/03-service/01-start-a-new-service.md +0 -57
  162. package/docs/server/03-service/02-delete-a-service.md +0 -48
  163. package/docs/server/04-web/01-create-a-website.md +0 -36
  164. package/docs/server/04-web/02-list-websites.md +0 -9
  165. package/docs/server/04-web/03-delete-a-website.md +0 -29
  166. package/docs/server/05-subdomain/01-create-a-subdomain.md +0 -32
  167. package/docs/server/05-subdomain/02-list-subdomains.md +0 -33
  168. package/docs/server/05-subdomain/03-delete-a-subdomain.md +0 -41
  169. package/docs/server/06-ssl/01-renew-an-ssl-certificate.md +0 -34
  170. package/docs/server/07-mail/01-create-a-mail-account.md +0 -23
  171. package/docs/server/07-mail/02-delete-a-mail-account.md +0 -20
  172. package/docs/server/07-mail/03-list-mail-accounts.md +0 -20
  173. package/docs/server/07-mail/04-change-account-password.md +0 -23
  174. package/framework/src/Candy.js +0 -81
  175. package/framework/src/Route.js +0 -455
  176. package/framework/src/Server.js +0 -15
  177. package/locale/de-DE.json +0 -80
  178. package/locale/en-US.json +0 -79
  179. package/locale/es-ES.json +0 -80
  180. package/locale/fr-FR.json +0 -80
  181. package/locale/pt-BR.json +0 -80
  182. package/locale/ru-RU.json +0 -80
  183. package/locale/tr-TR.json +0 -85
  184. package/locale/zh-CN.json +0 -80
  185. package/server/index.js +0 -5
  186. package/server/src/Api.js +0 -88
  187. package/server/src/DNS.js +0 -940
  188. package/server/src/Hub.js +0 -535
  189. package/server/src/Mail.js +0 -571
  190. package/server/src/SSL.js +0 -180
  191. package/server/src/Server.js +0 -27
  192. package/server/src/Service.js +0 -248
  193. package/server/src/Subdomain.js +0 -64
  194. package/server/src/Web/Firewall.js +0 -170
  195. package/server/src/Web/Proxy.js +0 -134
  196. package/server/src/Web.js +0 -451
  197. package/server/src/mail/imap.js +0 -1091
  198. package/server/src/mail/server.js +0 -32
  199. package/server/src/mail/smtp.js +0 -786
  200. package/test/server/Client.test.js +0 -338
  201. package/test/server/__mocks__/http-proxy.js +0 -105
  202. package/watchdog/index.js +0 -3
  203. package/watchdog/src/Watchdog.js +0 -156
  204. package/web/config.json +0 -5
  205. package/web/view/footer/main.html +0 -11
  206. /package/{framework/src → src}/Env.js +0 -0
  207. /package/{framework/src → src}/Route/Cron.js +0 -0
  208. /package/{framework/src → src}/Token.js +0 -0
@@ -9,7 +9,6 @@ on:
9
9
  jobs:
10
10
  update-pr-description:
11
11
  runs-on: ubuntu-latest
12
- # Only run for PRs from `dev` to `main`
13
12
  if: github.head_ref == 'dev' && github.base_ref == 'main'
14
13
  permissions:
15
14
  pull-requests: write
@@ -18,7 +17,6 @@ jobs:
18
17
  - name: Checkout
19
18
  uses: actions/checkout@v4
20
19
  with:
21
- # Fetch all history for all branches and tags to get the commit messages
22
20
  fetch-depth: 0
23
21
 
24
22
  - name: Generate PR Body
@@ -0,0 +1,46 @@
1
+ name: CodeQL Analysis
2
+
3
+ on:
4
+ push:
5
+ branches: [main, dev]
6
+ pull_request:
7
+ branches: [main, dev]
8
+ schedule:
9
+ - cron: '0 0 * * 1'
10
+
11
+ jobs:
12
+ analyze:
13
+ name: Analyze
14
+ runs-on: ubuntu-latest
15
+ permissions:
16
+ actions: read
17
+ contents: read
18
+ security-events: write
19
+
20
+ strategy:
21
+ fail-fast: false
22
+ matrix:
23
+ language: ['javascript']
24
+
25
+ steps:
26
+ - name: Checkout repository
27
+ uses: actions/checkout@v4
28
+
29
+ - name: Setup Node.js
30
+ uses: actions/setup-node@v4
31
+ with:
32
+ node-version: '22'
33
+
34
+ - name: Initialize CodeQL
35
+ uses: github/codeql-action/init@v3
36
+ with:
37
+ languages: ${{ matrix.language }}
38
+ queries: security-extended,security-and-quality
39
+
40
+ - name: Autobuild
41
+ uses: github/codeql-action/autobuild@v3
42
+
43
+ - name: Perform CodeQL Analysis
44
+ uses: github/codeql-action/analyze@v3
45
+ with:
46
+ category: "/language:${{matrix.language}}"
@@ -5,28 +5,35 @@ on:
5
5
  branches:
6
6
  - main
7
7
  paths-ignore:
8
- - 'CHANGELOG.md'
9
- - 'package.json'
8
+ - 'CHANGELOG.md'
9
+ - 'package.json'
10
10
  workflow_dispatch:
11
11
 
12
12
  jobs:
13
13
  release:
14
14
  name: Release
15
15
  runs-on: ubuntu-latest
16
- if: "!contains(github.event.head_commit.message, 'CandyPack v') || github.event_name == 'workflow_dispatch'"
16
+ permissions:
17
+ contents: write
18
+ issues: write
19
+ pull-requests: write
20
+ id-token: write
21
+ if: "!contains(github.event.head_commit.message, 'Odac v') || github.event_name == 'workflow_dispatch'"
17
22
  steps:
18
23
  - name: Checkout
19
24
  uses: actions/checkout@v3
20
25
  with:
21
26
  fetch-depth: 0
22
27
  - name: Setup Node.js
23
- uses: actions/setup-node@v3
28
+ uses: actions/setup-node@v4
24
29
  with:
25
- node-version: '20'
30
+ node-version: '22'
31
+ registry-url: 'https://registry.npmjs.org'
32
+
26
33
  - name: Install dependencies
27
34
  run: npm install
35
+
28
36
  - name: Release
29
37
  env:
30
38
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
31
- NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
32
39
  run: npx semantic-release
@@ -20,7 +20,7 @@ jobs:
20
20
 
21
21
  strategy:
22
22
  matrix:
23
- node-version: [18.x, 22.x]
23
+ node-version: 22.x
24
24
 
25
25
  steps:
26
26
  - name: Checkout code
@@ -41,7 +41,7 @@ jobs:
41
41
  run: npm test
42
42
 
43
43
  - name: Upload coverage reports
44
- if: matrix.node-version == '18.x'
44
+ if: matrix.node-version == '22.x'
45
45
  uses: codecov/codecov-action@v3
46
46
  with:
47
47
  files: ./coverage/lcov.info
@@ -49,10 +49,11 @@ jobs:
49
49
  name: codecov-umbrella
50
50
  fail_ci_if_error: false
51
51
 
52
- - name: Comment PR with coverage
53
- if: github.event_name == 'pull_request' && matrix.node-version == '18.x'
54
- uses: romeovs/lcov-reporter-action@v0.3.1
55
- with:
56
- lcov-file: ./coverage/lcov.info
57
- github-token: ${{ secrets.GITHUB_TOKEN }}
58
- delete-old-comments: true
52
+ - name: Coverage Summary
53
+ if: matrix.node-version == '22.x'
54
+ run: |
55
+ echo "## Test Coverage Summary" >> $GITHUB_STEP_SUMMARY
56
+ echo "" >> $GITHUB_STEP_SUMMARY
57
+ echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
58
+ npx nyc report --reporter=text-summary >> $GITHUB_STEP_SUMMARY || echo "Coverage report not available" >> $GITHUB_STEP_SUMMARY
59
+ echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
package/.releaserc.js CHANGED
@@ -52,8 +52,6 @@ module.exports = {
52
52
  commit.subject = commit.subject.replace(prRegex, '')
53
53
  }
54
54
 
55
- let prLink = ''
56
-
57
55
  // Get author name - prefer GitHub login if available
58
56
  const email = commit.committer.email || commit.authorEmail || ''
59
57
  const ghUserMatch = email.match(/^(?:\d+\+)?([a-zA-Z0-9-]+)@users\.noreply\.github\.com$/)
@@ -110,7 +108,7 @@ module.exports = {
110
108
 
111
109
  ---
112
110
 
113
- Powered by [🍭 CandyPack](https://candypack.dev)
111
+ Powered by [ ODAC](https://odac.run)
114
112
  `
115
113
  }
116
114
  }
@@ -121,14 +119,19 @@ Powered by [🍭 CandyPack](https://candypack.dev)
121
119
  changelogFile: 'CHANGELOG.md'
122
120
  }
123
121
  ],
124
- '@semantic-release/npm',
122
+ [
123
+ '@semantic-release/npm',
124
+ {
125
+ provenance: true
126
+ }
127
+ ],
125
128
  [
126
129
  '@semantic-release/git',
127
130
  {
128
131
  assets: ['package.json', 'CHANGELOG.md'],
129
- message: '🍭 CandyPack v${nextRelease.version} Released'
132
+ message: ' ODAC v${nextRelease.version} Released'
130
133
  }
131
134
  ],
132
135
  '@semantic-release/github'
133
136
  ]
134
- }
137
+ }
package/CHANGELOG.md CHANGED
@@ -1,181 +1,103 @@
1
+ ### 🛠️ Fixes & Improvements
2
+
3
+ - Simplify project initialization by removing directory emptiness validation and extraneous comments.
4
+
5
+
6
+
7
+ ---
8
+
9
+ Powered by [⚡ ODAC](https://odac.run)
10
+
11
+ ### Framework
12
+
13
+ - HTML Email
14
+
1
15
  ### ⚙️ Engine Tuning
2
16
 
17
+ - 'for' and 'list' directive argument handling
18
+ - externalize semantic-release configuration to `.releaserc.js` with enhanced changelog generation and update release workflow permissions.
19
+ - Hub polling
3
20
  - Modular Config
4
21
  - New default web template
22
+ - Proxy logic
23
+ - rebrand from CandyPack to Odac
24
+ - Refactor documentation files
25
+ - restructure for standalone framework package
26
+ - View rendering to support async operations
5
27
 
6
28
  ### ✨ What's New
7
29
 
30
+ - Add <candy:form> system with automatic validation and DB insert
8
31
  - add <candy:login> component for zero-config registration
9
32
  - add <candy:register> component for zero-config registration
33
+ - Add cloud integration
34
+ - Add DDoS Protection Firewall
35
+ - Add GitHub Actions workflows for test coverage, auto PR descriptions, and CodeQL analysis.
36
+ - Add Jest for testing
37
+ - Add Jest for unit testing and code coverage
38
+ - add semantic-release
39
+ - add semantic-release with npm publishing
40
+ - Add skeleton-aware navigation and auto-navigation support
41
+ - Add support for controller classes and update docs
42
+ - Added CLI prefix arguments support
43
+ - Development Server Mode
10
44
  - Environment variable support
45
+ - **framework:** add Early Hints (HTTP 103) support with zero-config
46
+ - **Framework:** Add middleware support
47
+ - **Framework:** Custom Cron Jobs
11
48
  - **Framework:** Support multiple validation checks per field
12
49
  - HTTP2 & Server-Sent Events (SSE) Support
50
+ - Introduce CLI for project initialization and development, refactor framework dependencies, and add automated release workflow.
51
+ - Make package.json name, version, and dependency updates unconditional.
13
52
  - Modernize view template syntax with <candy> tags
14
53
  - No-Code AJAX Navigation
54
+ - Re-enable release workflow and configure semantic-release with NPM provenance.
55
+ - **server:** New Logging Module
56
+ - Synchronize main with dev branch
57
+ - WebSocket Support
15
58
 
16
59
  ### 📚 Documentation
17
60
 
18
- - Add examples for complex MySQL where conditions
61
+ - Add AGENTS.md and update contribution guidelines
62
+ - Add Candy.Var utility documentation
63
+ - clarify difference between candy get and var tags
19
64
  - Expand and update view system documentation
65
+ - Framework Docs
66
+ - Remove 'coming soon' from documentation link
20
67
  - Revamp database docs: connection and queries
21
-
22
- ### 🛠️ Fixes & Improvements
23
-
24
- - Added config module to candy debug
25
- - Improve config force save and migration verification
26
-
27
-
28
-
29
- ---
30
-
31
- Powered by [🍭 CandyPack](https://candypack.dev)
32
-
33
- ### ⚙️ Engine Tuning
34
-
35
- - Refactor SSL certificate generation and error handling
36
-
37
- ### ✨ What's New
38
-
39
- - Development Server Mode
40
- - **Framework:** Custom Cron Jobs
41
-
42
- ### 📚 Documentation
43
-
44
68
  - Simplify and standardize documentation titles
69
+ - split template syntax into separate detailed pages
45
70
 
46
71
  ### 🛠️ Fixes & Improvements
47
72
 
48
- - Add CAA record support and default Let's Encrypt CAA
49
- - Enhance system DNS config to use public resolvers
50
- - Handle systemd-resolved conflict on DNS port 53
51
- - Improve external IP detection with multiple fallbacks
52
- - Log stderr output to log buffer with timestamp
73
+ - Add input validation to Auth.check method
74
+ - Add memory-safe timers and auto-cleanup for streaming
75
+ - Add missing conventional-changelog-conventionalcommits dependency
76
+ - Add WebSocket cleanup
77
+ - Adjust route reload timing and cache invalidation
78
+ - Correct license and supported version in docs
79
+ - Enable object stringification in MySQL connection
80
+ - escape backslash characters in View.js regex replacements
81
+ - Escape backticks earlier in view content processing
82
+ - Escape backticks in cached view templates
83
+ - File type check in Route controller path logic
84
+ - **Framework:** Add error handling for config file parsing
85
+ - **Framework:** No Controller View
86
+ - Handle null and undefined in Var.html()
53
87
  - Make husky prepare script non-failing
54
- - Skip rate limiting for localhost in DNS requests
88
+ - Preserve template literals in <script:candy> blocks
89
+ - Prevent replace error when candy get value is undefined
90
+ - Refactor route controller lookup and page handling
91
+ - release workflow, update package config with MIT license and reduced dependencies, fix View.js regex handling, and refine template scripts.
92
+ - **server:** Refactor server restart and initialization logic
93
+ - Support view config object in authPage third parameter
55
94
 
56
95
 
96
+ ### 💥 BREAKING CHANGES
57
97
 
58
- ---
59
-
60
- Powered by [🍭 CandyPack](https://candypack.dev)
61
-
62
- ### 🛠️ Fixes & Improvements
63
-
64
- - Server Startup
65
-
98
+ - rebrand from CandyPack to Odac (#88)
66
99
 
67
100
 
68
101
  ---
69
102
 
70
- Powered by [🍭 CandyPack](https://candypack.dev)
71
-
72
- ### Refactor
73
-
74
- - Improve IMAP and SMTP authentication and TLS handling
75
-
76
- ### ⚙️ Engine Tuning
77
-
78
- - Improve error handling for HTTP/HTTPS server startup
79
- - Refactor documentation files
80
-
81
- ### ✨ What's New
82
-
83
- - Added 'candy service delete' command.
84
- - Added 'candy subdomain delete' command.
85
- - Added CLI prefix arguments support
86
- - CLI Mouse Support
87
- - **cli:** Add Progress-Based Output
88
-
89
- ### 🛠️ Fixes & Improvements
90
-
91
- - Fix module instantiation and nullish services handling
92
- - Limit log and error buffer sizes in Web and Watchdog
93
-
94
- ---
95
-
96
- Powered by [🍭 CandyPack](https://candypack.dev)
97
-
98
- **v**
99
-
100
- ### ✨ What's New
101
-
102
- - Added 'candy web delete' command.
103
- - Added German, Spanish, French, Portuguese, Russian, and Chinese language support for CLI
104
-
105
- ### 🛠️ Fixes & Improvements
106
-
107
- - DNS Server Improvements
108
- - Fixed website creation problem
109
- - **Framework:** Add error handling for config file parsing
110
- - IMAP Server Improvements
111
- - Refactor website creation and config handling
112
- - **Server:** Logs fixed
113
- - SMTP Server Improvements
114
- - Web Server Improvements
115
-
116
- ---
117
-
118
- Powered by [🍭 CandyPack](https://candypack.dev)
119
-
120
- **v**
121
-
122
- ## [0.5.0](https://github.com/CandyPack/CandyPack/compare/v0.4.1...v0.5.0) (2025-09-02)
123
-
124
- - add view helper to page and authPage methods [#20](https://https://github.com/CandyPack/CandyPack/pull/20) ([](https://github.com/CandyPack/CandyPack/commit/863eaf35950831dd1166b6b2d0a50f48c19af508)), closes [#20](https://github.com/CandyPack/CandyPack/issues/20)
125
- - merge branch 'main' into dev-1 ([](https://github.com/CandyPack/CandyPack/commit/5c96b1e0e5e0a3a86172ef6ad047cdf6f0c5c029))
126
- - merge pull request #14 from CandyPack/doc/update-contribution-guidelines ([](https://github.com/CandyPack/CandyPack/commit/eb92bdf66537c5a973629b99762424e31d8fa3a1)), closes [#14](https://github.com/CandyPack/CandyPack/issues/14)
127
- - merge pull request #16 from CandyPack/feat/custom-semantic-release-notes ([](https://github.com/CandyPack/CandyPack/commit/3ea998e24c27e03878258ac0de8563223dced2f8)), closes [#16](https://github.com/CandyPack/CandyPack/issues/16)
128
- - merge pull request #21 from CandyPack/dev-1 ([](https://github.com/CandyPack/CandyPack/commit/ae87fd8d50a226d854a8b85345558d7d5b7e81f9)), closes [#21](https://github.com/CandyPack/CandyPack/issues/21)
129
- - merge pull request #23 from CandyPack/dev ([](https://github.com/CandyPack/CandyPack/commit/b28a237ea070bc66f9ea3dbc2efa967e4d73ab27)), closes [#23](https://github.com/CandyPack/CandyPack/issues/23)
130
- - merge pull request #25 from CandyPack/dev ([](https://github.com/CandyPack/CandyPack/commit/b9cb9127d64c80d03c407052124b40da86b7caec)), closes [#25](https://github.com/CandyPack/CandyPack/issues/25)
131
- - refactor server restart and initialization logic ([](https://github.com/CandyPack/CandyPack/commit/2e7a23fce515b6a6e6fdfb58e91810d558001c66))
132
-
133
- ### ⚡️ Performance Upgrades
134
-
135
- - core Process Module ([](https://github.com/CandyPack/CandyPack/commit/59ece15756bfb80a3ce8a430d60106ec8b9cea7e))
136
-
137
- ### ✨ What's New
138
-
139
- - **release:** customize semantic-release notes generation ([](https://github.com/CandyPack/CandyPack/commit/70ba94ef010c10609cce69d2dd7fc32eb8ddd157))
140
- - **server:** new Logging Module ([](https://github.com/CandyPack/CandyPack/commit/70699006a36dbcce1f8de3ad549ee6000cd6e3a1))
141
- - synchronize main with dev branch ([](https://github.com/CandyPack/CandyPack/commit/654ecd33e9296f3753b95f11568f9d289f0d5a23))
142
-
143
- ### 🎨 Style
144
-
145
- - add PR and author attribution to release notes [#17](https://https://github.com/CandyPack/CandyPack/pull/17) ([](https://github.com/CandyPack/CandyPack/commit/8ef3e77edb3fc3f6de4582bacf8c3088f5941b76)), closes [#17](https://github.com/CandyPack/CandyPack/issues/17) [#1234](https://github.com/CandyPack/CandyPack/issues/1234) [#1234](https://github.com/CandyPack/CandyPack/issues/1234)
146
-
147
- ### 📚 Documentation
148
-
149
- - add AGENTS.md and update contribution guidelines ([](https://github.com/CandyPack/CandyPack/commit/2ef7dcb125eb9b341ecf209cd6f87dc6e0873389))
150
- - framework Docs ([](https://github.com/CandyPack/CandyPack/commit/cd7a1cec6ebecc5748bae3ccd0dd934ddf77c3fa))
151
- - server documentation ([](https://github.com/CandyPack/CandyPack/commit/27eb89a0f9c5d17c0364112743f3a032d2999195))
152
- - update AGENTS.md with detailed developer guide [#18](https://https://github.com/CandyPack/CandyPack/pull/18) ([](https://github.com/CandyPack/CandyPack/commit/65a05649ea61ac1d29ae73e3f27dabe0d82425cd)), closes [#18](https://github.com/CandyPack/CandyPack/issues/18)
153
-
154
- ### 🛠️ Fixes & Improvements
155
-
156
- - add missing conventional-changelog-conventionalcommits dependency [#22](https://https://github.com/CandyPack/CandyPack/pull/22) ([](https://github.com/CandyPack/CandyPack/commit/8f8a64fe3a81a5c9015e62755013d141571e5f0d)), closes [#22](https://github.com/CandyPack/CandyPack/issues/22)
157
- - **CLI:** fixed CLI Commands ([](https://github.com/CandyPack/CandyPack/commit/44c8ef7a2aca9ebdf82317b20dc3c39728cf2676))
158
- - **Framework:** no Controller View ([](https://github.com/CandyPack/CandyPack/commit/ae73ae793be0e3b6b6d95eaeb75ba981f0eb49f5))
159
- - rebooting ([](https://github.com/CandyPack/CandyPack/commit/9ab17df2a39621be0429cc3ffd52f0326dc8c64a))
160
- - resolve semantic-release configuration and dependency errors [#24](https://https://github.com/CandyPack/CandyPack/pull/24) ([](https://github.com/CandyPack/CandyPack/commit/b6359b4687f1f15cbb1847e82d49a998e74f5dde)), closes [#24](https://github.com/CandyPack/CandyPack/issues/24)
161
-
162
- ## [0.4.1](https://github.com/CandyPack/CandyPack/compare/v0.4.0...v0.4.1) (2025-08-31)
163
-
164
- ### Bug Fixes
165
-
166
- - **server:** Refactor server restart and initialization logic ([#15](https://github.com/CandyPack/CandyPack/issues/15)) ([6cc688e](https://github.com/CandyPack/CandyPack/commit/6cc688ed95212fa73d022e3f2d8e773a17fe299e))
167
-
168
- # [0.4.0](https://github.com/CandyPack/CandyPack/compare/v0.3.1...v0.4.0) (2025-08-28)
169
-
170
- ### Bug Fixes
171
-
172
- - Correct license and supported version in docs ([1af458e](https://github.com/CandyPack/CandyPack/commit/1af458ead8a1a577e8e4c6c45d8cae4ee1432d5c))
173
- - Update auto-generated PR text to English ([27bab61](https://github.com/CandyPack/CandyPack/commit/27bab61461d65737f95e89737bda06753de3bfc5))
174
-
175
- ### Features
176
-
177
- - Add Jest for testing ([4e51bbb](https://github.com/CandyPack/CandyPack/commit/4e51bbb1295d44b14f64e661019ac7a526fa96bb))
178
- - Add Jest for unit testing and code coverage ([1bfe78e](https://github.com/CandyPack/CandyPack/commit/1bfe78eeabc0af1178ba9bc678ab8a2eaa7d9bf8))
179
- - add semantic-release ([7a88e9e](https://github.com/CandyPack/CandyPack/commit/7a88e9eb3cee12d6d316c776e7d88e8de6b26c55))
180
- - add semantic-release with npm publishing ([5c2568d](https://github.com/CandyPack/CandyPack/commit/5c2568dac9ca6284718e087ce67a519a21bfe1c5))
181
- - Complete project refactor and feature enhancement ([d3bcc19](https://github.com/CandyPack/CandyPack/commit/d3bcc1995af8f0548a0bbd8c0396db6775d4b5cf))
103
+ Powered by [ ODAC](https://odac.run)
@@ -36,7 +36,7 @@ This Code of Conduct applies within all community spaces, and also applies when
36
36
 
37
37
  ## Enforcement
38
38
 
39
- Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at security@candypack.dev. All complaints will be reviewed and investigated promptly and fairly.
39
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at security@odac.run. All complaints will be reviewed and investigated promptly and fairly.
40
40
 
41
41
  All community leaders are obligated to respect the privacy and security of the reporter of any incident.
42
42
 
package/CONTRIBUTING.md CHANGED
@@ -1,16 +1,16 @@
1
- # Contributing to CandyPack
1
+ # Contributing to Odac
2
2
 
3
- First off, thank you for considering contributing to CandyPack! It's people like you that make CandyPack such a great tool.
3
+ First off, thank you for considering contributing to Odac! It's people like you that make Odac such a great tool.
4
4
 
5
- This project and everyone participating in it is governed by the [CandyPack Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to security@candypack.dev.
5
+ This project and everyone participating in it is governed by the [Odac Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to security@odac.run.
6
6
 
7
7
  ## How Can I Contribute?
8
8
 
9
- There are many ways to contribute, from writing tutorials or blog posts, improving the documentation, submitting bug reports and feature requests or writing code which can be incorporated into CandyPack itself.
9
+ There are many ways to contribute, from writing tutorials or blog posts, improving the documentation, submitting bug reports and feature requests or writing code which can be incorporated into Odac itself.
10
10
 
11
11
  ### Reporting Bugs
12
12
 
13
- Before creating a bug report, please check the [issues list](https://github.com/CandyPack/CandyPack/issues) to see if the bug has already been reported. If it has, please add a comment to the existing issue instead of creating a new one.
13
+ Before creating a bug report, please check the [issues list](https://github.com/Odac/Odac/issues) to see if the bug has already been reported. If it has, please add a comment to the existing issue instead of creating a new one.
14
14
 
15
15
  When you are creating a bug report, please include as many details as possible. Fill out the required template, the information it asks for helps us resolve issues faster.
16
16
 
@@ -20,10 +20,10 @@ If you have an idea for a new feature or an improvement to an existing one, plea
20
20
 
21
21
  ### Your First Code Contribution
22
22
 
23
- Unsure where to begin contributing to CandyPack? You can start by looking through `good first issue` and `help wanted` issues:
23
+ Unsure where to begin contributing to Odac? You can start by looking through `good first issue` and `help wanted` issues:
24
24
 
25
- * [Good first issues](https://github.com/CandyPack/CandyPack/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) - issues which should only require a few lines of code, and a test or two.
26
- * [Help wanted issues](https://github.com/CandyPack/CandyPack/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) - issues which should be a bit more involved than `good first issue` issues.
25
+ * [Good first issues](https://github.com/Odac/Odac/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) - issues which should only require a few lines of code, and a test or two.
26
+ * [Help wanted issues](https://github.com/Odac/Odac/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) - issues which should be a bit more involved than `good first issue` issues.
27
27
 
28
28
  ### Development Workflow
29
29