@tamyla/clodo-framework 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.
Files changed (130) hide show
  1. package/CHANGELOG.md +564 -0
  2. package/LICENSE +21 -0
  3. package/README.md +1393 -0
  4. package/bin/README.md +71 -0
  5. package/bin/clodo-service.js +416 -0
  6. package/bin/security/security-cli.js +96 -0
  7. package/bin/service-management/README.md +74 -0
  8. package/bin/service-management/create-service.js +129 -0
  9. package/bin/service-management/init-service.js +102 -0
  10. package/bin/service-management/init-service.js.backup +889 -0
  11. package/bin/shared/config/customer-cli.js +293 -0
  12. package/dist/config/ConfigurationManager.js +159 -0
  13. package/dist/config/CustomerConfigCLI.js +220 -0
  14. package/dist/config/FeatureManager.js +426 -0
  15. package/dist/config/customers.js +441 -0
  16. package/dist/config/domains.js +180 -0
  17. package/dist/config/features.js +225 -0
  18. package/dist/config/index.js +6 -0
  19. package/dist/database/database-orchestrator.js +730 -0
  20. package/dist/database/index.js +4 -0
  21. package/dist/deployment/auditor.js +971 -0
  22. package/dist/deployment/index.js +10 -0
  23. package/dist/deployment/rollback-manager.js +523 -0
  24. package/dist/deployment/testers/api-tester.js +80 -0
  25. package/dist/deployment/testers/auth-tester.js +129 -0
  26. package/dist/deployment/testers/core.js +217 -0
  27. package/dist/deployment/testers/database-tester.js +105 -0
  28. package/dist/deployment/testers/index.js +74 -0
  29. package/dist/deployment/testers/load-tester.js +120 -0
  30. package/dist/deployment/testers/performance-tester.js +105 -0
  31. package/dist/deployment/validator.js +558 -0
  32. package/dist/deployment/wrangler-deployer.js +574 -0
  33. package/dist/handlers/GenericRouteHandler.js +532 -0
  34. package/dist/index.js +39 -0
  35. package/dist/migration/MigrationAdapters.js +562 -0
  36. package/dist/modules/ModuleManager.js +668 -0
  37. package/dist/modules/security.js +98 -0
  38. package/dist/orchestration/cross-domain-coordinator.js +1083 -0
  39. package/dist/orchestration/index.js +5 -0
  40. package/dist/orchestration/modules/DeploymentCoordinator.js +258 -0
  41. package/dist/orchestration/modules/DomainResolver.js +196 -0
  42. package/dist/orchestration/modules/StateManager.js +332 -0
  43. package/dist/orchestration/multi-domain-orchestrator.js +255 -0
  44. package/dist/routing/EnhancedRouter.js +158 -0
  45. package/dist/schema/SchemaManager.js +778 -0
  46. package/dist/security/ConfigurationValidator.js +490 -0
  47. package/dist/security/DeploymentManager.js +208 -0
  48. package/dist/security/SecretGenerator.js +142 -0
  49. package/dist/security/SecurityCLI.js +228 -0
  50. package/dist/security/index.js +51 -0
  51. package/dist/security/patterns/environment-rules.js +66 -0
  52. package/dist/security/patterns/insecure-patterns.js +21 -0
  53. package/dist/service-management/ConfirmationEngine.js +411 -0
  54. package/dist/service-management/ErrorTracker.js +294 -0
  55. package/dist/service-management/GenerationEngine.js +3109 -0
  56. package/dist/service-management/InputCollector.js +237 -0
  57. package/dist/service-management/ServiceCreator.js +229 -0
  58. package/dist/service-management/ServiceInitializer.js +448 -0
  59. package/dist/service-management/ServiceOrchestrator.js +638 -0
  60. package/dist/service-management/handlers/ConfigMutator.js +130 -0
  61. package/dist/service-management/handlers/ConfirmationHandler.js +71 -0
  62. package/dist/service-management/handlers/GenerationHandler.js +80 -0
  63. package/dist/service-management/handlers/InputHandler.js +59 -0
  64. package/dist/service-management/handlers/ValidationHandler.js +203 -0
  65. package/dist/service-management/index.js +7 -0
  66. package/dist/services/GenericDataService.js +488 -0
  67. package/dist/shared/cloudflare/domain-discovery.js +562 -0
  68. package/dist/shared/cloudflare/domain-manager.js +912 -0
  69. package/dist/shared/cloudflare/index.js +8 -0
  70. package/dist/shared/cloudflare/ops.js +387 -0
  71. package/dist/shared/config/cache.js +1167 -0
  72. package/dist/shared/config/command-config-manager.js +174 -0
  73. package/dist/shared/config/customer-cli.js +258 -0
  74. package/dist/shared/config/index.js +9 -0
  75. package/dist/shared/config/manager.js +289 -0
  76. package/dist/shared/database/connection-manager.js +338 -0
  77. package/dist/shared/database/index.js +7 -0
  78. package/dist/shared/database/orchestrator.js +632 -0
  79. package/dist/shared/deployment/auditor.js +971 -0
  80. package/dist/shared/deployment/index.js +10 -0
  81. package/dist/shared/deployment/rollback-manager.js +523 -0
  82. package/dist/shared/deployment/validator.js +558 -0
  83. package/dist/shared/index.js +32 -0
  84. package/dist/shared/monitoring/health-checker.js +250 -0
  85. package/dist/shared/monitoring/index.js +8 -0
  86. package/dist/shared/monitoring/memory-manager.js +382 -0
  87. package/dist/shared/monitoring/production-monitor.js +390 -0
  88. package/dist/shared/production-tester/api-tester.js +80 -0
  89. package/dist/shared/production-tester/auth-tester.js +129 -0
  90. package/dist/shared/production-tester/core.js +217 -0
  91. package/dist/shared/production-tester/database-tester.js +105 -0
  92. package/dist/shared/production-tester/index.js +74 -0
  93. package/dist/shared/production-tester/load-tester.js +120 -0
  94. package/dist/shared/production-tester/performance-tester.js +105 -0
  95. package/dist/shared/security/api-token-manager.js +296 -0
  96. package/dist/shared/security/index.js +8 -0
  97. package/dist/shared/security/secret-generator.js +918 -0
  98. package/dist/shared/security/secure-token-manager.js +379 -0
  99. package/dist/shared/utils/error-recovery.js +240 -0
  100. package/dist/shared/utils/graceful-shutdown-manager.js +380 -0
  101. package/dist/shared/utils/index.js +9 -0
  102. package/dist/shared/utils/interactive-prompts.js +134 -0
  103. package/dist/shared/utils/rate-limiter.js +249 -0
  104. package/dist/utils/ErrorHandler.js +173 -0
  105. package/dist/utils/deployment/config-cache.js +1160 -0
  106. package/dist/utils/deployment/index.js +6 -0
  107. package/dist/utils/deployment/interactive-prompts.js +97 -0
  108. package/dist/utils/deployment/secret-generator.js +896 -0
  109. package/dist/utils/dirname-helper.js +35 -0
  110. package/dist/utils/domain-config.js +159 -0
  111. package/dist/utils/error-recovery.js +240 -0
  112. package/dist/utils/esm-helper.js +52 -0
  113. package/dist/utils/framework-config.js +481 -0
  114. package/dist/utils/graceful-shutdown-manager.js +379 -0
  115. package/dist/utils/health-checker.js +114 -0
  116. package/dist/utils/index.js +36 -0
  117. package/dist/utils/prompt-handler.js +98 -0
  118. package/dist/utils/usage-tracker.js +252 -0
  119. package/dist/utils/validation.js +112 -0
  120. package/dist/version/VersionDetector.js +723 -0
  121. package/dist/worker/index.js +4 -0
  122. package/dist/worker/integration.js +332 -0
  123. package/docs/FRAMEWORK-ARCHITECTURE-OVERVIEW.md +206 -0
  124. package/docs/INTEGRATION_GUIDE.md +2045 -0
  125. package/docs/README.md +82 -0
  126. package/docs/SECURITY.md +242 -0
  127. package/docs/deployment/deployment-guide.md +540 -0
  128. package/docs/overview.md +280 -0
  129. package/package.json +176 -0
  130. package/types/index.d.ts +575 -0
@@ -0,0 +1,280 @@
1
+ # Clodo Framework Overview
2
+
3
+ ## 🧱 What is the Clodo Framework?
4
+
5
+ The **Clodo Framework** is a comprehensive development framework for building microservices on Cloudflare's edge computing platform. Just like Clodo bricks snap together to create complex structures, this framework provides standardized, reusable components that developers can combine to rapidly build and deploy domain-specific services.
6
+
7
+ ## 🎯 Core Philosophy
8
+
9
+ ### **"Snap-Together" Architecture**
10
+ - **Base Components**: Standardized building blocks for common patterns
11
+ - **Rapid Assembly**: Services built in minutes, not weeks
12
+ - **Consistent Patterns**: All services share the same architectural foundation
13
+ - **Business Logic Focus**: Developers focus on domain-specific requirements while the framework handles infrastructure
14
+
15
+ ### **Multi-Tenant by Design**
16
+ - **Domain-Specific Configuration**: Each service can serve multiple domains with unique settings
17
+ - **Feature Flag System**: Runtime feature toggling per domain and environment
18
+ - **Unified Codebase**: Single service instance handles multiple clients/brands
19
+
20
+ ### **Edge-First Development**
21
+ - **Global Distribution**: Cloudflare Workers provide worldwide low-latency execution
22
+ - **Serverless Scaling**: Automatic scaling from zero to global traffic
23
+ - **Cost Efficiency**: Pay-per-request pricing with no idle costs
24
+
25
+ ## 🏗️ What Problems Does It Solve?
26
+
27
+ ### **1. Microservices Consistency**
28
+ **Problem**: Teams build services differently, creating operational chaos
29
+ ```javascript
30
+ // Without Framework: Inconsistent patterns
31
+ // Service A uses Express, Service B uses Fastify
32
+ // Different auth patterns, logging, error handling...
33
+
34
+ // With Framework: Consistent patterns
35
+ import { initializeService } from '@tamyla/clodo-framework';
36
+ export default { async fetch(request, env, ctx) { /* standardized */ } };
37
+ ```
38
+
39
+ ### **2. Multi-Tenant Complexity**
40
+ **Problem**: Building SaaS platforms requires complex domain management
41
+ ```javascript
42
+ // Without Framework: Custom multi-tenancy for each service
43
+ if (request.headers.get('host') === 'client-a.myapp.com') {
44
+ // Client A configuration
45
+ } else if (request.headers.get('host') === 'client-b.myapp.com') {
46
+ // Client B configuration
47
+ }
48
+
49
+ // With Framework: Domain-driven configuration
50
+ const service = initializeService(env, domains);
51
+ // Domain config automatically loaded based on request context
52
+ ```
53
+
54
+ ### **3. Rapid Service Development**
55
+ **Problem**: Creating new services requires significant boilerplate and setup
56
+ ```bash
57
+ # Without Framework: Manual setup
58
+ mkdir new-service && cd new-service
59
+ npm init
60
+ # Configure Cloudflare, database, auth, deployment...
61
+ # Hours or days of setup
62
+
63
+ # With Framework: Instant service generation
64
+ npx create-clodo-service new-service --type data-service
65
+ # Complete service ready in seconds
66
+ ```
67
+
68
+ ### **4. Feature Management**
69
+ **Problem**: Rolling out features across different clients is complex
70
+ ```javascript
71
+ // Without Framework: Manual feature checking everywhere
72
+ if (client.plan === 'premium' && client.features.includes('analytics')) {
73
+ return getAnalytics(request);
74
+ }
75
+
76
+ // With Framework: Declarative feature management
77
+ return createFeatureGuard('analytics')(getAnalytics)(request, env, ctx);
78
+ ```
79
+
80
+ ## 🔧 Core Components
81
+
82
+ ### **Configuration System**
83
+ ```javascript
84
+ // Domain-specific configuration with validation
85
+ export const domains = {
86
+ 'my-client': {
87
+ accountId: 'cf-account-id',
88
+ domains: { production: 'api.myclient.com' },
89
+ features: { premiumFeatures: true, analytics: false },
90
+ settings: { logLevel: 'info', corsOrigins: ['https://myclient.com'] }
91
+ }
92
+ };
93
+ ```
94
+
95
+ ### **Generic Data Services**
96
+ ```javascript
97
+ // Auto-generated CRUD operations for any model
98
+ const userService = new GenericDataService(d1Client, 'users');
99
+ const user = await userService.create({ email: 'user@example.com' });
100
+ const users = await userService.find({ active: true });
101
+ ```
102
+
103
+ ### **Enhanced Routing**
104
+ ```javascript
105
+ // Automatic route generation with parameter support
106
+ const router = new EnhancedRouter(d1Client);
107
+ // GET /api/users, POST /api/users, etc. automatically created
108
+ router.registerRoute('GET', '/custom/:id', customHandler);
109
+ ```
110
+
111
+ ### **Feature Guards**
112
+ ```javascript
113
+ // Runtime feature checking with fallback handling
114
+ export default {
115
+ async fetch(request, env, ctx) {
116
+ if (request.url.includes('/premium')) {
117
+ return createFeatureGuard('premiumFeatures')(
118
+ handlePremiumRequest
119
+ )(request, env, ctx);
120
+ }
121
+ return handleStandardRequest(request, env, ctx);
122
+ }
123
+ };
124
+ ```
125
+
126
+ ## 🚀 Development Workflow
127
+
128
+ ### **1. Service Creation**
129
+ ```bash
130
+ # Generate a new service from template
131
+ npx create-clodo-service my-api --type data-service
132
+
133
+ # Service structure created:
134
+ my-api/
135
+ ├── src/
136
+ │ ├── config/domains.js # Domain configuration
137
+ │ └── worker/index.js # Main worker code
138
+ ├── scripts/
139
+ │ ├── deploy.ps1 # Deployment automation
140
+ │ └── setup.ps1 # Environment setup
141
+ ├── package.json
142
+ └── wrangler.toml
143
+ ```
144
+
145
+ ### **2. Configuration**
146
+ ```javascript
147
+ // Configure domain-specific settings
148
+ export const domains = {
149
+ 'production-client': {
150
+ name: 'production-client',
151
+ accountId: 'your-cf-account-id',
152
+ domains: { production: 'api.client.com' },
153
+ features: {
154
+ authentication: true,
155
+ rateLimiting: true,
156
+ premiumFeatures: true
157
+ }
158
+ }
159
+ };
160
+ ```
161
+
162
+ ### **3. Development**
163
+ ```bash
164
+ # Start local development
165
+ npm run dev
166
+
167
+ # Service runs locally with hot reloading
168
+ # Connected to Cloudflare D1 database
169
+ # Feature flags work in development
170
+ ```
171
+
172
+ ### **4. Deployment**
173
+ ```bash
174
+ # Deploy to staging
175
+ npm run deploy -- --environment staging
176
+
177
+ # Deploy to production
178
+ npm run deploy -- --environment production
179
+
180
+ # Automated deployment handles:
181
+ # - Cloudflare Worker deployment
182
+ # - Database migrations
183
+ # - Domain configuration
184
+ # - Environment variables
185
+ ```
186
+
187
+ ## 💡 Key Benefits
188
+
189
+ ### **For Developers**
190
+ - **10x Faster Development**: Services ready in minutes
191
+ - **Reduced Cognitive Load**: Consistent patterns across all services
192
+ - **Focus on Business Logic**: Framework handles infrastructure concerns
193
+ - **Modern Tooling**: Built-in TypeScript support, testing, linting
194
+
195
+ ### **For Organizations**
196
+ - **Rapid Time-to-Market**: Launch new features and services quickly
197
+ - **Operational Consistency**: Standardized deployment and monitoring
198
+ - **Cost Efficiency**: Serverless scaling with usage-based pricing
199
+ - **Global Performance**: Edge computing for worldwide low latency
200
+
201
+ ### **For Multi-Tenant Applications**
202
+ - **Single Codebase**: Serve multiple clients from one deployment
203
+ - **Domain-Specific Features**: Enable/disable features per client
204
+ - **Simplified Operations**: One service to maintain, multiple domains served
205
+ - **Compliance Ready**: Domain-specific configurations for regulatory requirements
206
+
207
+ ## ⚖️ Trade-offs and Considerations
208
+
209
+ ### **Advantages**
210
+ - ✅ Rapid development and deployment
211
+ - ✅ Consistent architectural patterns
212
+ - ✅ Multi-tenant capabilities built-in
213
+ - ✅ Edge computing performance
214
+ - ✅ Serverless cost efficiency
215
+ - ✅ Comprehensive tooling and automation
216
+
217
+ ### **Limitations**
218
+ - ❌ Cloudflare platform lock-in
219
+ - ❌ Framework abstraction complexity
220
+ - ❌ Less suitable for complex business logic
221
+ - ❌ Learning curve for framework concepts
222
+ - ❌ Debugging challenges in abstracted environments
223
+ - ❌ Potential performance overhead from abstractions
224
+
225
+ ## 🎪 Ideal Use Cases
226
+
227
+ ### **✅ Perfect For**
228
+ - **Multi-tenant SaaS platforms** serving multiple clients
229
+ - **Rapid prototyping and MVP development**
230
+ - **Standardized CRUD services** with consistent patterns
231
+ - **Global applications** requiring low latency
232
+ - **Teams new to Cloudflare Workers** needing guidance
233
+ - **Organizations prioritizing development speed** over fine-grained control
234
+
235
+ ### **❌ Avoid For**
236
+ - **Complex business logic** that doesn't fit CRUD patterns
237
+ - **Performance-critical applications** where every millisecond matters
238
+ - **Long-term systems** where platform independence is crucial
239
+ - **Teams preferring explicit control** over framework abstractions
240
+ - **Applications requiring complex transactions** or advanced database features
241
+
242
+ ## 🔄 Migration and Integration
243
+
244
+ ### **Adopting the Framework**
245
+ ```javascript
246
+ // Existing Cloudflare Worker
247
+ export default {
248
+ async fetch(request, env, ctx) {
249
+ // Custom logic here
250
+ }
251
+ };
252
+
253
+ // Migrated to Framework
254
+ import { initializeService } from '@tamyla/clodo-framework';
255
+ export default {
256
+ async fetch(request, env, ctx) {
257
+ const service = initializeService(env, domains);
258
+ // Existing logic with framework benefits
259
+ }
260
+ };
261
+ ```
262
+
263
+ ### **Gradual Migration**
264
+ - Start with new services using the framework
265
+ - Gradually migrate existing services
266
+ - Use framework utilities without full adoption
267
+ - Maintain hybrid architectures during transition
268
+
269
+ ## 🔮 Future Roadmap
270
+
271
+ ### **Planned Features**
272
+ - **Advanced Schema Management**: Version control for database schemas
273
+ - **Real-time Capabilities**: WebSocket and Server-Sent Events support
274
+ - **Enhanced Security**: Built-in rate limiting and DDoS protection
275
+ - **Monitoring Integration**: Native observability and alerting
276
+ - **Plugin System**: Extensible architecture for custom components
277
+
278
+ ---
279
+
280
+ **Next Steps**: Ready to get started? Check out our [Getting Started Guide](./guides/getting-started.md) to build your first service in 5 minutes.
package/package.json ADDED
@@ -0,0 +1,176 @@
1
+ {
2
+ "name": "@tamyla/clodo-framework",
3
+ "version": "1.0.0",
4
+ "description": "Reusable framework for Clodo-style software architecture on Cloudflare Workers + D1",
5
+ "type": "module",
6
+ "sideEffects": [
7
+ "**/worker/**",
8
+ "**/index.js",
9
+ "**/bin/**"
10
+ ],
11
+ "main": "dist/index.js",
12
+ "module": "dist/index.js",
13
+ "types": "types/index.d.ts",
14
+ "exports": {
15
+ ".": "./dist/index.js",
16
+ "./services": "./dist/services/GenericDataService.js",
17
+ "./schema": "./dist/schema/SchemaManager.js",
18
+ "./modules": "./dist/modules/ModuleManager.js",
19
+ "./routing": "./dist/routing/EnhancedRouter.js",
20
+ "./handlers": "./dist/handlers/GenericRouteHandler.js",
21
+ "./config": "./dist/config/index.js",
22
+ "./config/discovery": "./dist/config/discovery/domain-discovery.js",
23
+ "./worker": "./dist/worker/index.js",
24
+ "./utils": "./dist/utils/index.js",
25
+ "./utils/deployment": "./dist/utils/deployment/index.js",
26
+ "./orchestration": "./dist/orchestration/index.js",
27
+ "./deployment": "./dist/deployment/index.js",
28
+ "./deployment/testers": "./dist/deployment/testers/index.js",
29
+ "./deployment/testers/api": "./dist/deployment/testers/api-tester.js",
30
+ "./deployment/testers/auth": "./dist/deployment/testers/auth-tester.js",
31
+ "./deployment/testers/database": "./dist/deployment/testers/database-tester.js",
32
+ "./deployment/testers/performance": "./dist/deployment/testers/performance-tester.js",
33
+ "./deployment/testers/load": "./dist/deployment/testers/load-tester.js",
34
+ "./database": "./dist/database/index.js",
35
+ "./security": "./dist/security/index.js",
36
+ "./security/cli": "./dist/security/SecurityCLI.js",
37
+ "./service-management": "./dist/service-management/index.js",
38
+ "./service-management/create": "./dist/service-management/ServiceCreator.js",
39
+ "./service-management/init": "./dist/service-management/ServiceInitializer.js",
40
+ "./config/cli": "./dist/config/CustomerConfigCLI.js",
41
+ "./modules/security": "./dist/modules/security.js"
42
+ },
43
+ "bin": {
44
+ "clodo-service": "./bin/clodo-service.js",
45
+ "clodo-create-service": "./bin/service-management/create-service.js",
46
+ "clodo-init-service": "./bin/service-management/init-service.js",
47
+ "clodo-security": "./bin/security/security-cli.js",
48
+ "clodo-customer-config": "./bin/shared/config/customer-cli.js"
49
+ },
50
+ "publishConfig": {
51
+ "access": "public"
52
+ },
53
+ "files": [
54
+ "dist",
55
+ "types",
56
+ "bin/service-management",
57
+ "bin/security",
58
+ "docs/README.md",
59
+ "docs/FRAMEWORK-ARCHITECTURE-OVERVIEW.md",
60
+ "docs/INTEGRATION_GUIDE.md",
61
+ "docs/overview.md",
62
+ "docs/SECURITY.md",
63
+ "docs/deployment/deployment-guide.md",
64
+ "README.md",
65
+ "CHANGELOG.md",
66
+ "LICENSE"
67
+ ],
68
+ "scripts": {
69
+ "build": "npm run prebuild && babel src/ --out-dir dist/ && babel bin/shared/ --out-dir dist/shared/ && babel bin/shared/production-tester/ --out-dir dist/deployment/testers/ && babel bin/shared/deployment/ --out-dir dist/deployment/ && npm run postbuild",
70
+ "prebuild": "npm run clean && npm run type-check",
71
+ "postbuild": "npm run check:bundle",
72
+ "clean": "rimraf dist",
73
+ "clean:generated": "rimraf generated",
74
+ "clean:all": "npm run clean && npm run clean:generated",
75
+ "test": "jest --passWithNoTests",
76
+ "test:watch": "jest --watch",
77
+ "test:coverage": "jest --coverage",
78
+ "lint": "eslint --config ./eslint.config.js src",
79
+ "lint:fix": "eslint --config ./eslint.config.js src --fix",
80
+ "type-check": "tsc --noEmit",
81
+ "check:types": "npm run type-check",
82
+ "check:bundle": "node scripts/utilities/check-bundle.js || echo 'Bundle check passed'",
83
+ "check:all": "npm run type-check && npm run test",
84
+ "analyze:bundle": "echo 'Bundle analysis not implemented yet'",
85
+ "docs": "echo 'JSDoc documentation generation not configured yet'",
86
+ "validate": "npm run check:all",
87
+ "prepublishOnly": "npm run validate && npm run build",
88
+ "postpublish": "echo 'Published successfully to npm registry!'",
89
+ "publish:beta": "npm publish --tag beta",
90
+ "publish:latest": "npm publish --tag latest",
91
+ "create-service": "node bin/service-management/create-service.js",
92
+ "init-service": "node bin/service-management/init-service.js",
93
+ "update-service": "node bin/clodo-service.js update",
94
+ "diagnose-service": "node bin/clodo-service.js diagnose",
95
+ "validate-service": "node bin/clodo-service.js validate",
96
+ "customer-config": "node bin/shared/config/customer-cli.js"
97
+ },
98
+ "keywords": [
99
+ "cloudflare",
100
+ "workers",
101
+ "d1",
102
+ "framework",
103
+ "reusable",
104
+ "microservices",
105
+ "clodo-architecture",
106
+ "serverless",
107
+ "edge-computing",
108
+ "modular"
109
+ ],
110
+ "author": "Tamyla",
111
+ "license": "GPL-3.0-or-later",
112
+ "dependencies": {
113
+ "wrangler": ">=3.0.0"
114
+ },
115
+ "devDependencies": {
116
+ "@babel/cli": "^7.23.0",
117
+ "@babel/core": "^7.23.0",
118
+ "@babel/plugin-syntax-import-meta": "^7.10.4",
119
+ "@babel/preset-env": "^7.23.0",
120
+ "@semantic-release/changelog": "^6.0.3",
121
+ "@semantic-release/git": "^10.0.1",
122
+ "@types/node": "^20.19.19",
123
+ "babel-plugin-transform-import-meta": "^2.3.3",
124
+ "chalk": "^5.3.0",
125
+ "commander": "^11.0.0",
126
+ "eslint": "^8.54.0",
127
+ "jest": "^29.7.0",
128
+ "rimraf": "^5.0.10",
129
+ "semantic-release": "^24.2.9",
130
+ "typescript": "^5.9.3"
131
+ },
132
+ "peerDependencies": {
133
+ "wrangler": ">=3.0.0"
134
+ },
135
+ "repository": {
136
+ "type": "git",
137
+ "url": "git+https://github.com/tamylaa/clodo-framework.git"
138
+ },
139
+ "bugs": {
140
+ "url": "https://github.com/tamylaa/clodo-framework/issues"
141
+ },
142
+ "homepage": "https://clodo-framework.tamyla.com",
143
+ "release": {
144
+ "branches": [
145
+ "master"
146
+ ],
147
+ "plugins": [
148
+ "@semantic-release/commit-analyzer",
149
+ "@semantic-release/release-notes-generator",
150
+ "@semantic-release/changelog",
151
+ [
152
+ "@semantic-release/npm",
153
+ {
154
+ "npmPublish": true,
155
+ "tarballDir": "dist"
156
+ }
157
+ ],
158
+ [
159
+ "@semantic-release/git",
160
+ {
161
+ "assets": [
162
+ "CHANGELOG.md",
163
+ "package.json",
164
+ "package-lock.json"
165
+ ],
166
+ "message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
167
+ }
168
+ ],
169
+ "@semantic-release/github"
170
+ ]
171
+ },
172
+ "engines": {
173
+ "node": ">=18.0.0",
174
+ "npm": ">=8.0.0"
175
+ }
176
+ }