create-charcole 2.1.0 → 2.2.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 (79) hide show
  1. package/.github/workflows/release.yml +26 -26
  2. package/CHANGELOG.md +301 -211
  3. package/LICENSE +21 -21
  4. package/README.md +354 -213
  5. package/bin/index.js +444 -288
  6. package/bin/lib/pkgManager.js +49 -49
  7. package/bin/lib/templateHandler.js +33 -33
  8. package/create-charcole-2.1.0.tgz +0 -0
  9. package/package.json +42 -27
  10. package/packages/swagger/BACKWARD_COMPATIBILITY.md +145 -0
  11. package/packages/swagger/CHANGELOG.md +404 -0
  12. package/packages/swagger/README.md +578 -0
  13. package/packages/swagger/charcole-swagger-1.0.0.tgz +0 -0
  14. package/packages/swagger/package-lock.json +1715 -0
  15. package/packages/swagger/package.json +57 -0
  16. package/packages/swagger/src/helpers.js +427 -0
  17. package/packages/swagger/src/index.d.ts +126 -0
  18. package/packages/swagger/src/index.js +12 -0
  19. package/packages/swagger/src/setup.js +100 -0
  20. package/template/js/.env.example +15 -15
  21. package/template/js/README.md +978 -855
  22. package/template/js/basePackage.json +26 -26
  23. package/template/js/src/app.js +81 -78
  24. package/template/js/src/config/constants.js +20 -20
  25. package/template/js/src/config/env.js +26 -26
  26. package/template/js/src/config/swagger.config.js +15 -0
  27. package/template/js/src/lib/swagger/SWAGGER_GUIDE.md +561 -0
  28. package/template/js/src/middlewares/errorHandler.js +180 -180
  29. package/template/js/src/middlewares/requestLogger.js +33 -33
  30. package/template/js/src/middlewares/validateRequest.js +42 -42
  31. package/template/js/src/modules/auth/auth.constants.js +3 -3
  32. package/template/js/src/modules/auth/auth.controller.js +29 -29
  33. package/template/js/src/modules/auth/auth.middlewares.js +19 -19
  34. package/template/js/src/modules/auth/auth.routes.js +131 -9
  35. package/template/js/src/modules/auth/auth.schemas.js +60 -60
  36. package/template/js/src/modules/auth/auth.service.js +67 -67
  37. package/template/js/src/modules/auth/package.json +6 -6
  38. package/template/js/src/modules/health/controller.js +151 -50
  39. package/template/js/src/modules/swagger/charcole-swagger-1.0.0.tgz +0 -0
  40. package/template/js/src/modules/swagger/package.json +5 -0
  41. package/template/js/src/repositories/user.repo.js +19 -19
  42. package/template/js/src/routes/index.js +25 -25
  43. package/template/js/src/routes/protected.js +57 -13
  44. package/template/js/src/server.js +38 -38
  45. package/template/js/src/utils/AppError.js +182 -182
  46. package/template/js/src/utils/logger.js +73 -73
  47. package/template/js/src/utils/response.js +51 -51
  48. package/template/ts/.env.example +15 -15
  49. package/template/ts/README.md +978 -855
  50. package/template/ts/basePackage.json +36 -36
  51. package/template/ts/build.js +46 -46
  52. package/template/ts/src/app.ts +71 -67
  53. package/template/ts/src/config/constants.ts +27 -27
  54. package/template/ts/src/config/env.ts +40 -40
  55. package/template/ts/src/config/swagger.config.ts +30 -0
  56. package/template/ts/src/lib/swagger/SWAGGER_GUIDE.md +561 -0
  57. package/template/ts/src/middlewares/errorHandler.ts +201 -201
  58. package/template/ts/src/middlewares/requestLogger.ts +38 -38
  59. package/template/ts/src/middlewares/validateRequest.ts +46 -46
  60. package/template/ts/src/modules/auth/auth.constants.ts +6 -6
  61. package/template/ts/src/modules/auth/auth.controller.ts +32 -32
  62. package/template/ts/src/modules/auth/auth.middlewares.ts +46 -46
  63. package/template/ts/src/modules/auth/auth.routes.ts +52 -9
  64. package/template/ts/src/modules/auth/auth.schemas.ts +73 -73
  65. package/template/ts/src/modules/auth/auth.service.ts +106 -106
  66. package/template/ts/src/modules/auth/package.json +10 -10
  67. package/template/ts/src/modules/health/controller.ts +80 -64
  68. package/template/ts/src/modules/swagger/charcole-swagger-1.0.0.tgz +0 -0
  69. package/template/ts/src/modules/swagger/package.json +5 -0
  70. package/template/ts/src/repositories/user.repo.ts +33 -33
  71. package/template/ts/src/routes/index.ts +24 -24
  72. package/template/ts/src/routes/protected.ts +46 -13
  73. package/template/ts/src/server.ts +41 -41
  74. package/template/ts/src/types/express.d.ts +9 -9
  75. package/template/ts/src/utils/AppError.ts +220 -220
  76. package/template/ts/src/utils/logger.ts +55 -55
  77. package/template/ts/src/utils/response.ts +100 -100
  78. package/template/ts/tsconfig.json +26 -26
  79. package/plans/V2_1_PLAN.md +0 -20
@@ -1,26 +1,26 @@
1
- name: Release
2
-
3
- on:
4
- push:
5
- tags:
6
- - "v*"
7
-
8
- permissions:
9
- contents: read
10
- id-token: write
11
-
12
- jobs:
13
- publish:
14
- runs-on: ubuntu-latest
15
-
16
- steps:
17
- - uses: actions/checkout@v4
18
-
19
- - uses: actions/setup-node@v4
20
- with:
21
- node-version: 20
22
- registry-url: https://registry.npmjs.org
23
-
24
- - run: npm ci
25
-
26
- - run: npm publish --access public
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+
8
+ permissions:
9
+ contents: read
10
+ id-token: write
11
+
12
+ jobs:
13
+ publish:
14
+ runs-on: ubuntu-latest
15
+
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+
19
+ - uses: actions/setup-node@v4
20
+ with:
21
+ node-version: 20
22
+ registry-url: https://registry.npmjs.org
23
+
24
+ - run: npm ci
25
+
26
+ - run: npm publish --access public
package/CHANGELOG.md CHANGED
@@ -1,211 +1,301 @@
1
- # Changelog
2
-
3
- All notable changes to Charcole will be documented in this file.
4
-
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
-
8
- ## [2.1.0] – 2026-01-29
9
-
10
- ### 🎉 Major Release: Repository Pattern & JWT Authentication
11
-
12
- #### ✨ **New Features**
13
-
14
- - **🎯 Revolutionary Repository Pattern** – Database abstraction layer for clean separation between business logic and data access
15
- - **🔐 Optional JWT Authentication Module** – Complete auth system with register, login, logout, and protected routes
16
- - **🧪 In-Memory Repository Implementation** – Test APIs instantly without database setup
17
- - **🏗️ Repository Interfaces** – `BaseRepository` and `InMemoryRepository` for easy database switching
18
- - **💻 Command-line project name support** – Create projects via `npx create-charcole@latest my-project`
19
- - **📝 Enhanced TypeScript support** – Improved type definitions and compilation
20
-
21
- #### 🚀 **New Architecture**
22
-
23
- - **Database Abstraction Layer**: Switch between MongoDB, PostgreSQL, MySQL, etc., by changing one file
24
- - **Modular Auth System**:
25
- - Full user authentication (register/login/logout)
26
- - JWT token generation and validation
27
- - Password hashing with bcrypt
28
- - Protected route middleware
29
- - In-memory user repository for testing
30
- - **Improved CLI**:
31
- - Accept project name as command-line argument
32
- - Better dependency merging for optional modules
33
- - Cleaner project generation flow
34
-
35
- #### 🔧 **Technical Improvements**
36
-
37
- - **Fixed Module Copying**: Auth module properly excluded when user selects "No"
38
- - **Fixed Package.json Merging**: Dependencies correctly merged into single package.json
39
- - **Fixed TypeScript Compilation**: Clean builds with proper type definitions
40
- - **Improved Path Resolution**: Better template directory structure handling
41
-
42
- #### 📁 **Project Structure Updates**
43
-
44
- - Added `src/modules/auth/` directory with complete auth system
45
- - Modules now located in `src/modules/` instead of template root
46
- - Cleaner dependency management with proper merging
47
- - Enhanced CLI user experience with better flow control
48
-
49
- #### 📦 **New Dependencies** (when auth selected)
50
-
51
- - `jsonwebtoken@^9.0.0` for JWT authentication
52
- - `bcryptjs@^2.4.3` for password hashing
53
- - Type definitions for both libraries
54
-
55
- #### 🎯 **Repository Pattern Benefits**
56
-
57
- - Test without database setup
58
- - ✅ Easy database migration
59
- - Clean separation of concerns
60
- - ✅ Better unit testing capabilities
61
-
62
- #### 🔐 **Auth Module Structure**
63
-
64
- ```
65
- auth/
66
- ├── auth.controller.js
67
- ├── auth.middleware.js
68
- ├── auth.constants.js
69
- ├── auth.schemas.js
70
-
71
- ```
72
-
73
- ### 🚦 **Migration Notes from v2.0**
74
-
75
- - Existing v2.0 projects remain compatible
76
- - No breaking changes to core error handling or validation
77
- - New projects get optional auth module
78
- - Repository pattern is opt-in for existing codebases
79
-
80
- ### **Known Issues**
81
-
82
- - None reported
83
-
84
- ---
85
-
86
- ## [2.0.0] 2026-01-24
87
-
88
- ### 🎉 **Major Release: TypeScript & JavaScript Support**
89
-
90
- #### **New Features**
91
-
92
- - **Full TypeScript project template support** – Production-ready TypeScript setup
93
- - **Language selection at CLI runtime** – Choose between JavaScript or TypeScript during project creation
94
- - **Improved project scaffolding structure** – Better organized template files
95
- - **Enhanced developer experience** – Streamlined production setup process
96
-
97
- #### 🔧 **Technical Improvements**
98
-
99
- - **Improved template resolution logic** – More reliable project generation
100
- - **Enhanced CLI output** Better onboarding messages and instructions
101
- - **Fixed template path resolution** – Resolved issues from previous versions
102
- - **Fixed local CLI linking** – Improved development workflow
103
-
104
- #### 📝 **Release Notes**
105
-
106
- - This release focuses on stability and language parity
107
- - Authentication and database modules intentionally excluded (added in v2.1)
108
- - Foundation for future modular expansion
109
-
110
- ---
111
-
112
- ## [1.0.0] – 2025-12-15
113
-
114
- ### 🎉 **Initial Release**
115
-
116
- #### **Core Features**
117
-
118
- - **Production-grade Express API boilerplate**
119
- - **Centralized error handling system** – All errors flow through single handler
120
- - **Error classification** – Operational vs programmer errors distinguished
121
- - **Zod validation integration** Type-safe schema validation with automatic error formatting
122
- - **Structured logging** Color-coded logs with context and stack traces
123
- - **Consistent JSON responses** – Standardized format across all endpoints
124
- - **Async error handling** – Promise rejection leaks prevented with asyncHandler
125
- - **Graceful shutdown** – Proper cleanup on SIGTERM/SIGINT
126
- - **Request logging** – Method, path, status, duration, IP automatically tracked
127
-
128
- #### 🛡️ **Error Handling System**
129
-
130
- - **AppError class hierarchy** Specialized error types (ValidationError, NotFoundError, etc.)
131
- - **Global error middleware** – Catches all unhandled errors
132
- - **Production-safe responses** Internal details hidden in production
133
- - **Context-rich errors** – Debug information included in development
134
-
135
- #### 📦 **Key Dependencies**
136
-
137
- - Express.js web framework
138
- - Zod for validation
139
- - Structured logging system
140
- - CORS middleware
141
- - dotenv for environment variables
142
-
143
- #### 🎯 **Design Philosophy**
144
-
145
- - Never leak internal errors to clients in production
146
- - Always classify errors (operational vs programmer)
147
- - Consistent response format for all endpoints
148
- - Type-safe validation with helpful error messages
149
- - Easy to extend and maintain
150
-
151
- ---
152
-
153
- ## Versioning Scheme
154
-
155
- Charcole follows [Semantic Versioning 2.0.0](https://semver.org/):
156
-
157
- - **MAJOR** version for incompatible API changes
158
- - **MINOR** version for new functionality (backwards compatible)
159
- - **PATCH** version for bug fixes (backwards compatible)
160
-
161
- ## Release Notes Policy
162
-
163
- All notable changes to this project are documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
164
-
165
- ---
166
-
167
- ## How to Update the Changelog
168
-
169
- When creating a new release:
170
-
171
- 1. Add a new `## [X.Y.Z]` header at the top of the file
172
- 2. Use descriptive headings for each section
173
- 3. Include migration notes if there are breaking changes
174
- 4. Add emojis for visual clarity (optional but recommended)
175
- 5. Update the "Unreleased" section if using one
176
- 6. Include links to issues/PRs when relevant
177
-
178
- ## Template for Future Releases
179
-
180
- ```markdown
181
- ## [X.Y.Z] – YYYY-MM-DD
182
-
183
- ### Added
184
-
185
- - New features or functionality
186
-
187
- ### 🔧 Changed
188
-
189
- - Changes to existing functionality
190
-
191
- ### 🐛 Fixed
192
-
193
- - Bug fixes
194
-
195
- ### 🗑️ Removed
196
-
197
- - Features removed or deprecated
198
-
199
- ### 🚦 Migration Notes
200
-
201
- - Instructions for upgrading from previous versions
202
-
203
- ### ✅ Known Issues
204
-
205
- - Any known bugs or limitations in this release
206
- ```
207
-
208
- ---
209
-
210
- **Maintained by:** The Charcole Team
211
- **Last Updated:** 2026-01-29
1
+ # Changelog
2
+
3
+ All notable changes to Charcole will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [2.2.1] – 2026-02-06
9
+
10
+ ### 🎉 Major Release: Auto-Generated Swagger Documentation
11
+
12
+ #### ✨ **New Features**
13
+
14
+ - **🎯 @charcoles/swagger Package** – Effortless API documentation with automatic Zod-to-OpenAPI conversion
15
+ - **📚 Zero Schema Duplication** – Define schemas once in Zod, auto-generate OpenAPI specs
16
+ - **🎁 Built-in Response Templates** – Common responses (Success, ValidationError, Unauthorized, Forbidden, NotFound, InternalError) included
17
+ - **🔄 Always in Sync** – Impossible for documentation to drift from validation schemas
18
+ - **📦 Optional Module** – Include/exclude Swagger during project creation
19
+ - **🌍 Framework Agnostic** – Works with any Express.js project via `npm install @charcoles/swagger`
20
+
21
+ #### 🚀 **Swagger Features**
22
+
23
+ - **Automatic Schema Conversion**: Zod schemas automatically converted to OpenAPI JSON Schema
24
+ - **Response Templates**: 6 common response schemas included by default
25
+ - **Helper Functions**: Export utilities for advanced usage (`convertZodToOpenAPI`, `registerSchemas`, etc.)
26
+ - **Full TypeScript Support**: Complete type definitions for all functions
27
+ - **JavaScript Support**: Works perfectly with JavaScript projects too
28
+ - **100% Backward Compatible**: Old JSDoc approach still works
29
+
30
+ #### 📊 **Impact**
31
+
32
+ - **60-80% less documentation** per endpoint
33
+ - **0% schema duplication** (Zod → OpenAPI automatic)
34
+ - **Impossible to get out of sync** (single source of truth)
35
+ - **76 lines → 20 lines** for typical endpoint documentation
36
+
37
+ #### 📁 **New Files**
38
+
39
+ - `packages/swagger/src/helpers.js` - All helper utilities
40
+ - `packages/swagger/src/setup.js` - Enhanced setup with schema registration
41
+ - `packages/swagger/README.md` - Comprehensive package documentation
42
+ - `packages/swagger/CHANGELOG.md` - Package changelog
43
+ - `packages/swagger/BACKWARD_COMPATIBILITY.md` - Migration guide
44
+ - `template/*/src/lib/swagger/SWAGGER_GUIDE.md` - Complete usage guide
45
+
46
+ #### 🔧 **Technical Improvements**
47
+
48
+ - **Fixed Zod-to-OpenAPI conversion**: Properly handles internal `$ref` with `definitions`
49
+ - **Schema extraction**: Automatically extracts body schemas from nested Zod objects
50
+ - **Clean OpenAPI output**: Removes `$schema` and `definitions` for clean components
51
+
52
+ #### 📝 **Documentation Updates**
53
+
54
+ - All templates updated to demonstrate new approach
55
+ - Comprehensive guide in `SWAGGER_GUIDE.md`
56
+ - README with before/after comparisons
57
+ - Full API reference documentation
58
+
59
+ #### 🔐 **Auth Integration**
60
+
61
+ - Auth schemas (registerSchema, loginSchema) auto-documented when Swagger enabled
62
+ - Protected routes automatically show security requirements in Swagger UI
63
+ - Zero additional work for auth documentation
64
+
65
+ #### 🎯 **Developer Experience**
66
+
67
+ Before:
68
+
69
+ ```typescript
70
+ // Define Zod schema (6 lines)
71
+ // Manually duplicate in Swagger (76 lines!)
72
+ // Update both when changes happen
73
+ ```
74
+
75
+ After:
76
+
77
+ ```typescript
78
+ // Define Zod schema (6 lines)
79
+ // Register once in config (1 line)
80
+ // Reference everywhere with $ref (1 line)
81
+ // Done! Auto-synced forever!
82
+ ```
83
+
84
+ ### 🚦 **Migration Notes from v2.1**
85
+
86
+ - Existing v2.1 projects remain fully compatible
87
+ - No breaking changes to any core features
88
+ - New projects get optional Swagger module
89
+ - Swagger is opt-in for existing codebases
90
+ - Old JSDoc approach still works (100% backward compatible)
91
+
92
+ ### **Known Issues**
93
+
94
+ - None reported
95
+
96
+ ---
97
+
98
+ ## [2.1.0] – 2026-01-29
99
+
100
+ ### 🎉 Major Release: Repository Pattern & JWT Authentication
101
+
102
+ #### **New Features**
103
+
104
+ - **🎯 Revolutionary Repository Pattern** – Database abstraction layer for clean separation between business logic and data access
105
+ - **🔐 Optional JWT Authentication Module** – Complete auth system with register, login, logout, and protected routes
106
+ - **🧪 In-Memory Repository Implementation** Test APIs instantly without database setup
107
+ - **🏗️ Repository Interfaces** `BaseRepository` and `InMemoryRepository` for easy database switching
108
+ - **💻 Command-line project name support** – Create projects via `npx create-charcole@latest my-project`
109
+ - **📝 Enhanced TypeScript support** – Improved type definitions and compilation
110
+
111
+ #### 🚀 **New Architecture**
112
+
113
+ - **Database Abstraction Layer**: Switch between MongoDB, PostgreSQL, MySQL, etc., by changing one file
114
+ - **Modular Auth System**:
115
+ - Full user authentication (register/login/logout)
116
+ - JWT token generation and validation
117
+ - Password hashing with bcrypt
118
+ - Protected route middleware
119
+ - In-memory user repository for testing
120
+ - **Improved CLI**:
121
+ - Accept project name as command-line argument
122
+ - Better dependency merging for optional modules
123
+ - Cleaner project generation flow
124
+
125
+ #### 🔧 **Technical Improvements**
126
+
127
+ - **Fixed Module Copying**: Auth module properly excluded when user selects "No"
128
+ - **Fixed Package.json Merging**: Dependencies correctly merged into single package.json
129
+ - **Fixed TypeScript Compilation**: Clean builds with proper type definitions
130
+ - **Improved Path Resolution**: Better template directory structure handling
131
+
132
+ #### 📁 **Project Structure Updates**
133
+
134
+ - Added `src/modules/auth/` directory with complete auth system
135
+ - Modules now located in `src/modules/` instead of template root
136
+ - Cleaner dependency management with proper merging
137
+ - Enhanced CLI user experience with better flow control
138
+
139
+ #### 📦 **New Dependencies** (when auth selected)
140
+
141
+ - `jsonwebtoken@^9.0.0` for JWT authentication
142
+ - `bcryptjs@^2.4.3` for password hashing
143
+ - Type definitions for both libraries
144
+
145
+ #### 🎯 **Repository Pattern Benefits**
146
+
147
+ - Test without database setup
148
+ - Easy database migration
149
+ - Clean separation of concerns
150
+ - ✅ Better unit testing capabilities
151
+
152
+ #### 🔐 **Auth Module Structure**
153
+
154
+ ```
155
+ auth/
156
+ ├── auth.controller.js
157
+ ├── auth.middleware.js
158
+ ├── auth.constants.js
159
+ ├── auth.schemas.js
160
+
161
+ ```
162
+
163
+ ### 🚦 **Migration Notes from v2.0**
164
+
165
+ - Existing v2.0 projects remain compatible
166
+ - No breaking changes to core error handling or validation
167
+ - New projects get optional auth module
168
+ - Repository pattern is opt-in for existing codebases
169
+
170
+ ### ✅ **Known Issues**
171
+
172
+ - None reported
173
+
174
+ ---
175
+
176
+ ## [2.0.0] 2026-01-24
177
+
178
+ ### 🎉 **Major Release: TypeScript & JavaScript Support**
179
+
180
+ #### ✨ **New Features**
181
+
182
+ - **Full TypeScript project template support** – Production-ready TypeScript setup
183
+ - **Language selection at CLI runtime** – Choose between JavaScript or TypeScript during project creation
184
+ - **Improved project scaffolding structure** – Better organized template files
185
+ - **Enhanced developer experience** – Streamlined production setup process
186
+
187
+ #### 🔧 **Technical Improvements**
188
+
189
+ - **Improved template resolution logic** – More reliable project generation
190
+ - **Enhanced CLI output** – Better onboarding messages and instructions
191
+ - **Fixed template path resolution** – Resolved issues from previous versions
192
+ - **Fixed local CLI linking** – Improved development workflow
193
+
194
+ #### 📝 **Release Notes**
195
+
196
+ - This release focuses on stability and language parity
197
+ - Authentication and database modules intentionally excluded (added in v2.1)
198
+ - Foundation for future modular expansion
199
+
200
+ ---
201
+
202
+ ## [1.0.0] – 2025-12-15
203
+
204
+ ### 🎉 **Initial Release**
205
+
206
+ #### ✨ **Core Features**
207
+
208
+ - **Production-grade Express API boilerplate**
209
+ - **Centralized error handling system** – All errors flow through single handler
210
+ - **Error classification** Operational vs programmer errors distinguished
211
+ - **Zod validation integration** – Type-safe schema validation with automatic error formatting
212
+ - **Structured logging** – Color-coded logs with context and stack traces
213
+ - **Consistent JSON responses** – Standardized format across all endpoints
214
+ - **Async error handling** – Promise rejection leaks prevented with asyncHandler
215
+ - **Graceful shutdown** – Proper cleanup on SIGTERM/SIGINT
216
+ - **Request logging** – Method, path, status, duration, IP automatically tracked
217
+
218
+ #### 🛡️ **Error Handling System**
219
+
220
+ - **AppError class hierarchy** – Specialized error types (ValidationError, NotFoundError, etc.)
221
+ - **Global error middleware** – Catches all unhandled errors
222
+ - **Production-safe responses** – Internal details hidden in production
223
+ - **Context-rich errors** – Debug information included in development
224
+
225
+ #### 📦 **Key Dependencies**
226
+
227
+ - Express.js web framework
228
+ - Zod for validation
229
+ - Structured logging system
230
+ - CORS middleware
231
+ - dotenv for environment variables
232
+
233
+ #### 🎯 **Design Philosophy**
234
+
235
+ - Never leak internal errors to clients in production
236
+ - Always classify errors (operational vs programmer)
237
+ - Consistent response format for all endpoints
238
+ - Type-safe validation with helpful error messages
239
+ - Easy to extend and maintain
240
+
241
+ ---
242
+
243
+ ## Versioning Scheme
244
+
245
+ Charcole follows [Semantic Versioning 2.0.0](https://semver.org/):
246
+
247
+ - **MAJOR** version for incompatible API changes
248
+ - **MINOR** version for new functionality (backwards compatible)
249
+ - **PATCH** version for bug fixes (backwards compatible)
250
+
251
+ ## Release Notes Policy
252
+
253
+ All notable changes to this project are documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
254
+
255
+ ---
256
+
257
+ ## How to Update the Changelog
258
+
259
+ When creating a new release:
260
+
261
+ 1. Add a new `## [X.Y.Z]` header at the top of the file
262
+ 2. Use descriptive headings for each section
263
+ 3. Include migration notes if there are breaking changes
264
+ 4. Add emojis for visual clarity (optional but recommended)
265
+ 5. Update the "Unreleased" section if using one
266
+ 6. Include links to issues/PRs when relevant
267
+
268
+ ## Template for Future Releases
269
+
270
+ ```markdown
271
+ ## [X.Y.Z] – YYYY-MM-DD
272
+
273
+ ### ✨ Added
274
+
275
+ - New features or functionality
276
+
277
+ ### 🔧 Changed
278
+
279
+ - Changes to existing functionality
280
+
281
+ ### 🐛 Fixed
282
+
283
+ - Bug fixes
284
+
285
+ ### 🗑️ Removed
286
+
287
+ - Features removed or deprecated
288
+
289
+ ### 🚦 Migration Notes
290
+
291
+ - Instructions for upgrading from previous versions
292
+
293
+ ### ✅ Known Issues
294
+
295
+ - Any known bugs or limitations in this release
296
+ ```
297
+
298
+ ---
299
+
300
+ **Maintained by:** The Charcole Team
301
+ **Last Updated:** 2026-01-29
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Sheraz Manzoor
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Sheraz Manzoor
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.