@tamyla/clodo-framework 3.1.1 → 3.1.2

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.
@@ -0,0 +1,451 @@
1
+ {
2
+ "template": {
3
+ "name": "smart-confirmable-ui",
4
+ "description": "UI template for presenting auto-generated defaults that users can confirm or customize",
5
+ "version": "1.0.0",
6
+ "category": "user-confirmable",
7
+ "inputCount": 15,
8
+ "estimatedTime": "3-5 minutes",
9
+ "uiType": "confirmation-with-editing"
10
+ },
11
+ "collectionStrategy": {
12
+ "phase": 2,
13
+ "title": "Review & Customize Generated Settings",
14
+ "description": "We've generated smart defaults based on your core inputs. Review and customize as needed.",
15
+ "progressIndicator": "Step 2 of 3: Review & Customize",
16
+ "validationMode": "flexible",
17
+ "allowBackNavigation": true,
18
+ "allowSkip": true,
19
+ "batchOperations": {
20
+ "acceptAll": true,
21
+ "acceptCategory": true,
22
+ "resetToDefaults": true
23
+ }
24
+ },
25
+ "categories": [
26
+ {
27
+ "id": "branding",
28
+ "title": "Branding & Identity",
29
+ "description": "Service names, descriptions, and authorship",
30
+ "inputs": ["display-name", "description", "version", "author"]
31
+ },
32
+ {
33
+ "id": "networking",
34
+ "title": "Networking & URLs",
35
+ "description": "API endpoints and service URLs",
36
+ "inputs": ["production-url", "staging-url", "development-url"]
37
+ },
38
+ {
39
+ "id": "structure",
40
+ "title": "Project Structure",
41
+ "description": "Directories, databases, and resource naming",
42
+ "inputs": ["service-directory", "database-name", "worker-name"]
43
+ },
44
+ {
45
+ "id": "configuration",
46
+ "title": "Configuration & Behavior",
47
+ "description": "Logging, security, and environment settings",
48
+ "inputs": ["log-level", "cors-policy", "env-prefix"]
49
+ }
50
+ ],
51
+ "inputs": [
52
+ {
53
+ "id": "display-name",
54
+ "category": "branding",
55
+ "order": 1,
56
+ "ui": {
57
+ "type": "text-input",
58
+ "label": "Display Name",
59
+ "description": "Human-readable name for your service",
60
+ "helpText": "This will be shown in dashboards, documentation, and user interfaces",
61
+ "required": true,
62
+ "showDefault": true
63
+ },
64
+ "generation": {
65
+ "logic": "title-case conversion of service-name",
66
+ "example": "user-service → User Service"
67
+ },
68
+ "validation": {
69
+ "minLength": 3,
70
+ "maxLength": 100
71
+ },
72
+ "customization": {
73
+ "commonReasons": ["Branding preferences", "Marketing names", "User-friendly labels"],
74
+ "impact": "Affects documentation, dashboards, and user-facing displays"
75
+ }
76
+ },
77
+ {
78
+ "id": "description",
79
+ "category": "branding",
80
+ "order": 2,
81
+ "ui": {
82
+ "type": "textarea",
83
+ "label": "Service Description",
84
+ "description": "Brief description of what this service does",
85
+ "helpText": "This will be used in documentation and service registries",
86
+ "required": true,
87
+ "showDefault": true,
88
+ "rows": 3
89
+ },
90
+ "generation": {
91
+ "logic": "template: 'A {service-type} service built with CLODO Framework'",
92
+ "example": "A api service built with CLODO Framework"
93
+ },
94
+ "validation": {
95
+ "minLength": 10,
96
+ "maxLength": 500
97
+ },
98
+ "customization": {
99
+ "commonReasons": ["Specific functionality details", "Business context", "Technical capabilities"],
100
+ "impact": "Affects documentation, API descriptions, and service discovery"
101
+ }
102
+ },
103
+ {
104
+ "id": "version",
105
+ "category": "branding",
106
+ "order": 3,
107
+ "ui": {
108
+ "type": "text-input",
109
+ "label": "Initial Version",
110
+ "description": "Starting version number for your service",
111
+ "helpText": "Follows semantic versioning (major.minor.patch)",
112
+ "required": true,
113
+ "showDefault": true
114
+ },
115
+ "generation": {
116
+ "logic": "read from package.json or default to 1.0.0",
117
+ "fallback": "1.0.0"
118
+ },
119
+ "validation": {
120
+ "pattern": "^\\d+\\.\\d+\\.\\d+$",
121
+ "customMessage": "Version must follow semantic versioning (e.g., 1.0.0)"
122
+ },
123
+ "customization": {
124
+ "commonReasons": ["Existing version schemes", "Release planning", "Dependency alignment"],
125
+ "impact": "Affects package management and deployment versioning"
126
+ }
127
+ },
128
+ {
129
+ "id": "author",
130
+ "category": "branding",
131
+ "order": 4,
132
+ "ui": {
133
+ "type": "text-input",
134
+ "label": "Author/Organization",
135
+ "description": "Who is responsible for this service",
136
+ "helpText": "Individual name, team name, or organization",
137
+ "required": true,
138
+ "showDefault": true
139
+ },
140
+ "generation": {
141
+ "logic": "process.env.USER or git config user.name",
142
+ "fallback": "CLODO Framework"
143
+ },
144
+ "validation": {
145
+ "minLength": 2,
146
+ "maxLength": 100
147
+ },
148
+ "customization": {
149
+ "commonReasons": ["Team attribution", "Organization branding", "Contact information"],
150
+ "impact": "Affects documentation, support attribution, and ownership tracking"
151
+ }
152
+ },
153
+ {
154
+ "id": "production-url",
155
+ "category": "networking",
156
+ "order": 5,
157
+ "ui": {
158
+ "type": "text-input",
159
+ "label": "Production URL",
160
+ "description": "Primary production endpoint",
161
+ "helpText": "This will be your main API URL in production",
162
+ "required": true,
163
+ "showDefault": true
164
+ },
165
+ "generation": {
166
+ "logic": "api.{domain-name}",
167
+ "example": "api.mycompany.com"
168
+ },
169
+ "validation": {
170
+ "pattern": "^https?://[a-zA-Z0-9][a-zA-Z0-9-\\.]*\\.[a-zA-Z]{2,}(/.*)?$",
171
+ "customMessage": "Must be a valid URL starting with http:// or https://"
172
+ },
173
+ "customization": {
174
+ "commonReasons": ["Existing subdomain structure", "CDN requirements", "Load balancer setup"],
175
+ "impact": "Affects production deployments, client integrations, and DNS configuration"
176
+ }
177
+ },
178
+ {
179
+ "id": "staging-url",
180
+ "category": "networking",
181
+ "order": 6,
182
+ "ui": {
183
+ "type": "text-input",
184
+ "label": "Staging URL",
185
+ "description": "Testing environment endpoint",
186
+ "helpText": "Used for pre-production testing and validation",
187
+ "required": true,
188
+ "showDefault": true
189
+ },
190
+ "generation": {
191
+ "logic": "staging-api.{domain-name}",
192
+ "example": "staging-api.mycompany.com"
193
+ },
194
+ "validation": {
195
+ "pattern": "^https?://[a-zA-Z0-9][a-zA-Z0-9-\\.]*\\.[a-zA-Z]{2,}(/.*)?$",
196
+ "customMessage": "Must be a valid URL starting with http:// or https://"
197
+ },
198
+ "customization": {
199
+ "commonReasons": ["Testing environment naming", "Isolation requirements", "CI/CD pipeline setup"],
200
+ "impact": "Affects testing workflows, QA processes, and staging deployments"
201
+ }
202
+ },
203
+ {
204
+ "id": "development-url",
205
+ "category": "networking",
206
+ "order": 7,
207
+ "ui": {
208
+ "type": "text-input",
209
+ "label": "Development URL",
210
+ "description": "Local development endpoint",
211
+ "helpText": "Used during local development and debugging",
212
+ "required": true,
213
+ "showDefault": true
214
+ },
215
+ "generation": {
216
+ "logic": "dev-api.{domain-name}",
217
+ "example": "dev-api.mycompany.com"
218
+ },
219
+ "validation": {
220
+ "pattern": "^https?://[a-zA-Z0-9][a-zA-Z0-9-\\.]*\\.[a-zA-Z]{2,}(/.*)?$",
221
+ "customMessage": "Must be a valid URL starting with http:// or https://"
222
+ },
223
+ "customization": {
224
+ "commonReasons": ["Local development setup", "Debugging preferences", "Team conventions"],
225
+ "impact": "Affects local development workflow and debugging processes"
226
+ }
227
+ },
228
+ {
229
+ "id": "service-directory",
230
+ "category": "structure",
231
+ "order": 8,
232
+ "ui": {
233
+ "type": "text-input",
234
+ "label": "Service Directory",
235
+ "description": "Directory path for this service",
236
+ "helpText": "Relative to project root",
237
+ "required": true,
238
+ "showDefault": true
239
+ },
240
+ "generation": {
241
+ "logic": "./services/{service-name}",
242
+ "example": "./services/user-service"
243
+ },
244
+ "validation": {
245
+ "pattern": "^\\./[a-zA-Z0-9][a-zA-Z0-9-_/]*$",
246
+ "customMessage": "Must be a relative path starting with ./"
247
+ },
248
+ "customization": {
249
+ "commonReasons": ["Existing project structure", "Monorepo organization", "Team conventions"],
250
+ "impact": "Affects file organization, build processes, and deployment scripts"
251
+ }
252
+ },
253
+ {
254
+ "id": "database-name",
255
+ "category": "structure",
256
+ "order": 9,
257
+ "ui": {
258
+ "type": "text-input",
259
+ "label": "Database Name",
260
+ "description": "Name for the service's database",
261
+ "helpText": "Used for D1 database and connection strings",
262
+ "required": true,
263
+ "showDefault": true
264
+ },
265
+ "generation": {
266
+ "logic": "{service-name}-db",
267
+ "example": "user-service-db"
268
+ },
269
+ "validation": {
270
+ "pattern": "^[a-zA-Z][a-zA-Z0-9-_]*$",
271
+ "minLength": 3,
272
+ "maxLength": 63
273
+ },
274
+ "customization": {
275
+ "commonReasons": ["Database naming conventions", "Existing databases", "Multi-environment needs"],
276
+ "impact": "Affects database creation, migrations, and connection configurations"
277
+ }
278
+ },
279
+ {
280
+ "id": "worker-name",
281
+ "category": "structure",
282
+ "order": 10,
283
+ "ui": {
284
+ "type": "text-input",
285
+ "label": "Worker Name",
286
+ "description": "Name for the Cloudflare Worker",
287
+ "helpText": "Used for deployment and worker management",
288
+ "required": true,
289
+ "showDefault": true
290
+ },
291
+ "generation": {
292
+ "logic": "{service-name}-worker",
293
+ "example": "user-service-worker"
294
+ },
295
+ "validation": {
296
+ "pattern": "^[a-zA-Z][a-zA-Z0-9-_]*$",
297
+ "minLength": 3,
298
+ "maxLength": 63
299
+ },
300
+ "customization": {
301
+ "commonReasons": ["Worker naming conventions", "Deployment strategies", "Resource identification"],
302
+ "impact": "Affects Cloudflare deployments, monitoring, and worker management"
303
+ }
304
+ },
305
+ {
306
+ "id": "log-level",
307
+ "category": "configuration",
308
+ "order": 11,
309
+ "ui": {
310
+ "type": "select",
311
+ "label": "Log Level",
312
+ "description": "Default logging verbosity",
313
+ "helpText": "Controls how much information is logged",
314
+ "required": true,
315
+ "showDefault": true,
316
+ "options": [
317
+ {
318
+ "value": "error",
319
+ "label": "Error Only",
320
+ "description": "Only log errors and critical issues"
321
+ },
322
+ {
323
+ "value": "warn",
324
+ "label": "Warnings",
325
+ "description": "Log warnings and errors"
326
+ },
327
+ {
328
+ "value": "info",
329
+ "label": "Info",
330
+ "description": "Log general information, warnings, and errors"
331
+ },
332
+ {
333
+ "value": "debug",
334
+ "label": "Debug",
335
+ "description": "Log detailed debugging information"
336
+ }
337
+ ]
338
+ },
339
+ "generation": {
340
+ "logic": "environment-based default (production: warn, staging: info, development: debug)",
341
+ "mapping": {
342
+ "development": "debug",
343
+ "staging": "info",
344
+ "production": "warn"
345
+ }
346
+ },
347
+ "customization": {
348
+ "commonReasons": ["Debugging needs", "Performance monitoring", "Compliance requirements"],
349
+ "impact": "Affects log volume, performance, and troubleshooting capabilities"
350
+ }
351
+ },
352
+ {
353
+ "id": "cors-policy",
354
+ "category": "configuration",
355
+ "order": 12,
356
+ "ui": {
357
+ "type": "select",
358
+ "label": "CORS Policy",
359
+ "description": "Cross-origin resource sharing settings",
360
+ "helpText": "Controls which domains can access your API",
361
+ "required": true,
362
+ "showDefault": true,
363
+ "options": [
364
+ {
365
+ "value": "*",
366
+ "label": "Allow All (*)",
367
+ "description": "Allow requests from any domain (development only)"
368
+ },
369
+ {
370
+ "value": "same-origin",
371
+ "label": "Same Origin",
372
+ "description": "Only allow requests from the same domain"
373
+ },
374
+ {
375
+ "value": "domain",
376
+ "label": "Domain Only",
377
+ "description": "Only allow requests from your domain"
378
+ },
379
+ {
380
+ "value": "custom",
381
+ "label": "Custom Origins",
382
+ "description": "Specify custom allowed origins"
383
+ }
384
+ ]
385
+ },
386
+ "generation": {
387
+ "logic": "environment-based (production: restrict to domain, development: allow all)",
388
+ "mapping": {
389
+ "development": "*",
390
+ "staging": "domain",
391
+ "production": "domain"
392
+ }
393
+ },
394
+ "customization": {
395
+ "commonReasons": ["Security requirements", "Multi-domain needs", "Third-party integrations"],
396
+ "impact": "Affects API accessibility, security, and integration capabilities"
397
+ }
398
+ },
399
+ {
400
+ "id": "env-prefix",
401
+ "category": "configuration",
402
+ "order": 13,
403
+ "ui": {
404
+ "type": "text-input",
405
+ "label": "Environment Variable Prefix",
406
+ "description": "Prefix for environment-specific variables",
407
+ "helpText": "Used to namespace environment variables",
408
+ "required": true,
409
+ "showDefault": true
410
+ },
411
+ "generation": {
412
+ "logic": "environment-based (PROD_, STAGING_, DEV_)",
413
+ "mapping": {
414
+ "development": "DEV_",
415
+ "staging": "STAGING_",
416
+ "production": "PROD_"
417
+ }
418
+ },
419
+ "validation": {
420
+ "pattern": "^[A-Z][A-Z0-9_]*_$",
421
+ "customMessage": "Must be uppercase letters, numbers, underscores, ending with underscore"
422
+ },
423
+ "customization": {
424
+ "commonReasons": ["Existing conventions", "Multi-service environments", "Deployment strategies"],
425
+ "impact": "Affects environment variable naming and configuration management"
426
+ }
427
+ }
428
+ ],
429
+ "completion": {
430
+ "message": "Configuration customized! 🎨",
431
+ "summary": "Reviewed and customized {acceptedCount} of {totalCount} settings",
432
+ "nextPhase": "automated-generation",
433
+ "estimatedNextTime": "30 seconds"
434
+ },
435
+ "bulkActions": {
436
+ "acceptAll": {
437
+ "label": "Accept All Defaults",
438
+ "description": "Use all auto-generated values without changes",
439
+ "confirmation": "This will apply all default values. You can change them later if needed."
440
+ },
441
+ "acceptCategory": {
442
+ "label": "Accept Category",
443
+ "description": "Accept all defaults in a category",
444
+ "categories": ["branding", "networking", "structure", "configuration"]
445
+ },
446
+ "resetToDefaults": {
447
+ "label": "Reset to Defaults",
448
+ "description": "Revert all changes back to auto-generated defaults"
449
+ }
450
+ }
451
+ }