@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.
- package/CHANGELOG.md +564 -0
- package/LICENSE +21 -0
- package/README.md +1393 -0
- package/bin/README.md +71 -0
- package/bin/clodo-service.js +416 -0
- package/bin/security/security-cli.js +96 -0
- package/bin/service-management/README.md +74 -0
- package/bin/service-management/create-service.js +129 -0
- package/bin/service-management/init-service.js +102 -0
- package/bin/service-management/init-service.js.backup +889 -0
- package/bin/shared/config/customer-cli.js +293 -0
- package/dist/config/ConfigurationManager.js +159 -0
- package/dist/config/CustomerConfigCLI.js +220 -0
- package/dist/config/FeatureManager.js +426 -0
- package/dist/config/customers.js +441 -0
- package/dist/config/domains.js +180 -0
- package/dist/config/features.js +225 -0
- package/dist/config/index.js +6 -0
- package/dist/database/database-orchestrator.js +730 -0
- package/dist/database/index.js +4 -0
- package/dist/deployment/auditor.js +971 -0
- package/dist/deployment/index.js +10 -0
- package/dist/deployment/rollback-manager.js +523 -0
- package/dist/deployment/testers/api-tester.js +80 -0
- package/dist/deployment/testers/auth-tester.js +129 -0
- package/dist/deployment/testers/core.js +217 -0
- package/dist/deployment/testers/database-tester.js +105 -0
- package/dist/deployment/testers/index.js +74 -0
- package/dist/deployment/testers/load-tester.js +120 -0
- package/dist/deployment/testers/performance-tester.js +105 -0
- package/dist/deployment/validator.js +558 -0
- package/dist/deployment/wrangler-deployer.js +574 -0
- package/dist/handlers/GenericRouteHandler.js +532 -0
- package/dist/index.js +39 -0
- package/dist/migration/MigrationAdapters.js +562 -0
- package/dist/modules/ModuleManager.js +668 -0
- package/dist/modules/security.js +98 -0
- package/dist/orchestration/cross-domain-coordinator.js +1083 -0
- package/dist/orchestration/index.js +5 -0
- package/dist/orchestration/modules/DeploymentCoordinator.js +258 -0
- package/dist/orchestration/modules/DomainResolver.js +196 -0
- package/dist/orchestration/modules/StateManager.js +332 -0
- package/dist/orchestration/multi-domain-orchestrator.js +255 -0
- package/dist/routing/EnhancedRouter.js +158 -0
- package/dist/schema/SchemaManager.js +778 -0
- package/dist/security/ConfigurationValidator.js +490 -0
- package/dist/security/DeploymentManager.js +208 -0
- package/dist/security/SecretGenerator.js +142 -0
- package/dist/security/SecurityCLI.js +228 -0
- package/dist/security/index.js +51 -0
- package/dist/security/patterns/environment-rules.js +66 -0
- package/dist/security/patterns/insecure-patterns.js +21 -0
- package/dist/service-management/ConfirmationEngine.js +411 -0
- package/dist/service-management/ErrorTracker.js +294 -0
- package/dist/service-management/GenerationEngine.js +3109 -0
- package/dist/service-management/InputCollector.js +237 -0
- package/dist/service-management/ServiceCreator.js +229 -0
- package/dist/service-management/ServiceInitializer.js +448 -0
- package/dist/service-management/ServiceOrchestrator.js +638 -0
- package/dist/service-management/handlers/ConfigMutator.js +130 -0
- package/dist/service-management/handlers/ConfirmationHandler.js +71 -0
- package/dist/service-management/handlers/GenerationHandler.js +80 -0
- package/dist/service-management/handlers/InputHandler.js +59 -0
- package/dist/service-management/handlers/ValidationHandler.js +203 -0
- package/dist/service-management/index.js +7 -0
- package/dist/services/GenericDataService.js +488 -0
- package/dist/shared/cloudflare/domain-discovery.js +562 -0
- package/dist/shared/cloudflare/domain-manager.js +912 -0
- package/dist/shared/cloudflare/index.js +8 -0
- package/dist/shared/cloudflare/ops.js +387 -0
- package/dist/shared/config/cache.js +1167 -0
- package/dist/shared/config/command-config-manager.js +174 -0
- package/dist/shared/config/customer-cli.js +258 -0
- package/dist/shared/config/index.js +9 -0
- package/dist/shared/config/manager.js +289 -0
- package/dist/shared/database/connection-manager.js +338 -0
- package/dist/shared/database/index.js +7 -0
- package/dist/shared/database/orchestrator.js +632 -0
- package/dist/shared/deployment/auditor.js +971 -0
- package/dist/shared/deployment/index.js +10 -0
- package/dist/shared/deployment/rollback-manager.js +523 -0
- package/dist/shared/deployment/validator.js +558 -0
- package/dist/shared/index.js +32 -0
- package/dist/shared/monitoring/health-checker.js +250 -0
- package/dist/shared/monitoring/index.js +8 -0
- package/dist/shared/monitoring/memory-manager.js +382 -0
- package/dist/shared/monitoring/production-monitor.js +390 -0
- package/dist/shared/production-tester/api-tester.js +80 -0
- package/dist/shared/production-tester/auth-tester.js +129 -0
- package/dist/shared/production-tester/core.js +217 -0
- package/dist/shared/production-tester/database-tester.js +105 -0
- package/dist/shared/production-tester/index.js +74 -0
- package/dist/shared/production-tester/load-tester.js +120 -0
- package/dist/shared/production-tester/performance-tester.js +105 -0
- package/dist/shared/security/api-token-manager.js +296 -0
- package/dist/shared/security/index.js +8 -0
- package/dist/shared/security/secret-generator.js +918 -0
- package/dist/shared/security/secure-token-manager.js +379 -0
- package/dist/shared/utils/error-recovery.js +240 -0
- package/dist/shared/utils/graceful-shutdown-manager.js +380 -0
- package/dist/shared/utils/index.js +9 -0
- package/dist/shared/utils/interactive-prompts.js +134 -0
- package/dist/shared/utils/rate-limiter.js +249 -0
- package/dist/utils/ErrorHandler.js +173 -0
- package/dist/utils/deployment/config-cache.js +1160 -0
- package/dist/utils/deployment/index.js +6 -0
- package/dist/utils/deployment/interactive-prompts.js +97 -0
- package/dist/utils/deployment/secret-generator.js +896 -0
- package/dist/utils/dirname-helper.js +35 -0
- package/dist/utils/domain-config.js +159 -0
- package/dist/utils/error-recovery.js +240 -0
- package/dist/utils/esm-helper.js +52 -0
- package/dist/utils/framework-config.js +481 -0
- package/dist/utils/graceful-shutdown-manager.js +379 -0
- package/dist/utils/health-checker.js +114 -0
- package/dist/utils/index.js +36 -0
- package/dist/utils/prompt-handler.js +98 -0
- package/dist/utils/usage-tracker.js +252 -0
- package/dist/utils/validation.js +112 -0
- package/dist/version/VersionDetector.js +723 -0
- package/dist/worker/index.js +4 -0
- package/dist/worker/integration.js +332 -0
- package/docs/FRAMEWORK-ARCHITECTURE-OVERVIEW.md +206 -0
- package/docs/INTEGRATION_GUIDE.md +2045 -0
- package/docs/README.md +82 -0
- package/docs/SECURITY.md +242 -0
- package/docs/deployment/deployment-guide.md +540 -0
- package/docs/overview.md +280 -0
- package/package.json +176 -0
- package/types/index.d.ts +575 -0
package/docs/overview.md
ADDED
|
@@ -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
|
+
}
|