@venizia/ignis-docs 0.0.5 → 0.0.6-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 (98) hide show
  1. package/package.json +1 -1
  2. package/wiki/best-practices/architecture-decisions.md +0 -8
  3. package/wiki/best-practices/code-style-standards/control-flow.md +1 -1
  4. package/wiki/best-practices/performance-optimization.md +3 -3
  5. package/wiki/best-practices/security-guidelines.md +2 -2
  6. package/wiki/best-practices/troubleshooting-tips.md +1 -1
  7. package/wiki/guides/core-concepts/components-guide.md +1 -1
  8. package/wiki/guides/core-concepts/components.md +2 -2
  9. package/wiki/guides/core-concepts/dependency-injection.md +1 -1
  10. package/wiki/guides/core-concepts/services.md +1 -1
  11. package/wiki/guides/tutorials/building-a-crud-api.md +1 -1
  12. package/wiki/guides/tutorials/ecommerce-api.md +2 -2
  13. package/wiki/guides/tutorials/realtime-chat.md +6 -6
  14. package/wiki/guides/tutorials/testing.md +1 -1
  15. package/wiki/references/base/bootstrapping.md +0 -2
  16. package/wiki/references/base/components.md +2 -2
  17. package/wiki/references/base/controllers.md +0 -1
  18. package/wiki/references/base/datasources.md +1 -1
  19. package/wiki/references/base/dependency-injection.md +1 -1
  20. package/wiki/references/base/filter-system/quick-reference.md +0 -14
  21. package/wiki/references/base/middlewares.md +0 -8
  22. package/wiki/references/base/providers.md +0 -9
  23. package/wiki/references/base/services.md +0 -1
  24. package/wiki/references/components/authentication/api.md +444 -0
  25. package/wiki/references/components/authentication/errors.md +177 -0
  26. package/wiki/references/components/authentication/index.md +571 -0
  27. package/wiki/references/components/authentication/usage.md +781 -0
  28. package/wiki/references/components/health-check.md +292 -103
  29. package/wiki/references/components/index.md +14 -12
  30. package/wiki/references/components/mail/api.md +505 -0
  31. package/wiki/references/components/mail/errors.md +176 -0
  32. package/wiki/references/components/mail/index.md +535 -0
  33. package/wiki/references/components/mail/usage.md +404 -0
  34. package/wiki/references/components/request-tracker.md +229 -25
  35. package/wiki/references/components/socket-io/api.md +1051 -0
  36. package/wiki/references/components/socket-io/errors.md +119 -0
  37. package/wiki/references/components/socket-io/index.md +410 -0
  38. package/wiki/references/components/socket-io/usage.md +322 -0
  39. package/wiki/references/components/static-asset/api.md +261 -0
  40. package/wiki/references/components/static-asset/errors.md +89 -0
  41. package/wiki/references/components/static-asset/index.md +617 -0
  42. package/wiki/references/components/static-asset/usage.md +364 -0
  43. package/wiki/references/components/swagger.md +390 -110
  44. package/wiki/references/components/template/api-page.md +125 -0
  45. package/wiki/references/components/template/errors-page.md +100 -0
  46. package/wiki/references/components/template/index.md +104 -0
  47. package/wiki/references/components/template/setup-page.md +134 -0
  48. package/wiki/references/components/template/single-page.md +132 -0
  49. package/wiki/references/components/template/usage-page.md +127 -0
  50. package/wiki/references/components/websocket/api.md +508 -0
  51. package/wiki/references/components/websocket/errors.md +123 -0
  52. package/wiki/references/components/websocket/index.md +453 -0
  53. package/wiki/references/components/websocket/usage.md +475 -0
  54. package/wiki/references/helpers/cron/index.md +224 -0
  55. package/wiki/references/helpers/crypto/index.md +537 -0
  56. package/wiki/references/helpers/env/index.md +214 -0
  57. package/wiki/references/helpers/error/index.md +232 -0
  58. package/wiki/references/helpers/index.md +16 -15
  59. package/wiki/references/helpers/inversion/index.md +608 -0
  60. package/wiki/references/helpers/logger/index.md +600 -0
  61. package/wiki/references/helpers/network/api.md +986 -0
  62. package/wiki/references/helpers/network/index.md +620 -0
  63. package/wiki/references/helpers/queue/index.md +589 -0
  64. package/wiki/references/helpers/redis/index.md +495 -0
  65. package/wiki/references/helpers/socket-io/api.md +497 -0
  66. package/wiki/references/helpers/socket-io/index.md +513 -0
  67. package/wiki/references/helpers/storage/api.md +705 -0
  68. package/wiki/references/helpers/storage/index.md +583 -0
  69. package/wiki/references/helpers/template/index.md +66 -0
  70. package/wiki/references/helpers/template/single-page.md +126 -0
  71. package/wiki/references/helpers/testing/index.md +510 -0
  72. package/wiki/references/helpers/types/index.md +512 -0
  73. package/wiki/references/helpers/uid/index.md +272 -0
  74. package/wiki/references/helpers/websocket/api.md +736 -0
  75. package/wiki/references/helpers/websocket/index.md +574 -0
  76. package/wiki/references/helpers/worker-thread/index.md +470 -0
  77. package/wiki/references/quick-reference.md +3 -18
  78. package/wiki/references/utilities/jsx.md +1 -8
  79. package/wiki/references/utilities/statuses.md +0 -7
  80. package/wiki/references/components/authentication.md +0 -476
  81. package/wiki/references/components/mail.md +0 -687
  82. package/wiki/references/components/socket-io.md +0 -562
  83. package/wiki/references/components/static-asset.md +0 -1277
  84. package/wiki/references/helpers/cron.md +0 -108
  85. package/wiki/references/helpers/crypto.md +0 -132
  86. package/wiki/references/helpers/env.md +0 -83
  87. package/wiki/references/helpers/error.md +0 -97
  88. package/wiki/references/helpers/inversion.md +0 -176
  89. package/wiki/references/helpers/logger.md +0 -296
  90. package/wiki/references/helpers/network.md +0 -396
  91. package/wiki/references/helpers/queue.md +0 -150
  92. package/wiki/references/helpers/redis.md +0 -142
  93. package/wiki/references/helpers/socket-io.md +0 -932
  94. package/wiki/references/helpers/storage.md +0 -665
  95. package/wiki/references/helpers/testing.md +0 -133
  96. package/wiki/references/helpers/types.md +0 -167
  97. package/wiki/references/helpers/uid.md +0 -167
  98. package/wiki/references/helpers/worker-thread.md +0 -178
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@venizia/ignis-docs",
3
- "version": "0.0.5",
3
+ "version": "0.0.6-0",
4
4
  "description": "Documentation and MCP Server for Ignis Framework",
5
5
  "keywords": [
6
6
  "ignis",
@@ -141,7 +141,6 @@ export class HealthController extends BaseController {
141
141
  | **Service** | Single app | Medium | Internal |
142
142
  | **Inline** | Single controller | None | None |
143
143
 
144
- ---
145
144
 
146
145
  ## 3. Repository Method Design
147
146
 
@@ -203,7 +202,6 @@ export class OrderRepository extends BaseRepository<Order> {
203
202
  }
204
203
  ```
205
204
 
206
- ---
207
205
 
208
206
  ## 4. Error Handling Strategy
209
207
 
@@ -277,7 +275,6 @@ Controller (catches, formats for API response)
277
275
  Client (receives formatted error)
278
276
  ```
279
277
 
280
- ---
281
278
 
282
279
  ## 5. Scaling Decisions
283
280
 
@@ -334,7 +331,6 @@ class NotificationService {
334
331
  | Data | Shared database OK | Need data isolation |
335
332
  | Complexity | Keep simple | Worth the overhead |
336
333
 
337
- ---
338
334
 
339
335
  ## 6. Data Access Patterns
340
336
 
@@ -384,7 +380,6 @@ const nearby = await db.execute(sql`
384
380
  `);
385
381
  ```
386
382
 
387
- ---
388
383
 
389
384
  ## 7. Configuration Strategy
390
385
 
@@ -429,7 +424,6 @@ this.component(SwaggerComponent, {
429
424
  });
430
425
  ```
431
426
 
432
- ---
433
427
 
434
428
  ## 8. Testing Strategy
435
429
 
@@ -454,7 +448,6 @@ this.component(SwaggerComponent, {
454
448
  --------------
455
449
  ```
456
450
 
457
- ---
458
451
 
459
452
  ## Quick Reference
460
453
 
@@ -479,7 +472,6 @@ this.component(SwaggerComponent, {
479
472
  | Premature optimization | Start simple, optimize when needed |
480
473
  | Over-engineering | YAGNI - build what you need now |
481
474
 
482
- ---
483
475
 
484
476
  ## See Also
485
477
 
@@ -241,5 +241,5 @@ import { QueryBuilder } from '../query';
241
241
  ## See Also
242
242
 
243
243
  - [Error Handling](../error-handling) - Comprehensive error patterns
244
- - [Logging Reference](../../references/helpers/logger) - Logger API
244
+ - [Logging Reference](../../references/helpers/logger/) - Logger API
245
245
  - [Function Patterns](./function-patterns) - Method organization
@@ -32,7 +32,7 @@ Prevent blocking the event loop with Worker Threads:
32
32
  - Large file/data processing
33
33
  - Any synchronous task > 5ms
34
34
 
35
- > **Deep Dive:** See [Worker Thread Helper](../references/helpers/worker-thread.md) for implementation guide.
35
+ > **Deep Dive:** See [Worker Thread Helper](../references/helpers/worker-thread/) for implementation guide.
36
36
 
37
37
  ## 3. Optimize Database Queries
38
38
 
@@ -127,7 +127,7 @@ Reduce database load with caching:
127
127
 
128
128
  | Cache Type | Use Case | Implementation |
129
129
  |-----------|----------|----------------|
130
- | **Redis** | Distributed cache, session storage | [Redis Helper](../references/helpers/redis.md) |
130
+ | **Redis** | Distributed cache, session storage | [Redis Helper](../references/helpers/redis/) |
131
131
  | **In-Memory** | Single-process cache | `MemoryStorageHelper` |
132
132
 
133
133
  **Example:**
@@ -390,7 +390,7 @@ logger.log('info', MSG_ORDER_FILLED);
390
390
  - Use background flushing to avoid I/O blocking
391
391
  - HfLogger uses a lock-free ring buffer (64K entries, 16MB)
392
392
 
393
- > **Deep Dive:** See [Logger Helper](../references/helpers/logger.md) for complete HfLogger API.
393
+ > **Deep Dive:** See [Logger Helper](../references/helpers/logger/) for complete HfLogger API.
394
394
 
395
395
  ## Performance Checklist
396
396
 
@@ -68,7 +68,7 @@ const SecureRoute = {
68
68
  };
69
69
  ```
70
70
 
71
- > **Deep Dive:** See [Authentication Component](../references/components/authentication.md) for full setup guide.
71
+ > **Deep Dive:** See [Authentication Component](../references/components/authentication/) for full setup guide.
72
72
 
73
73
  **Access user in protected routes:**
74
74
  ```typescript
@@ -462,6 +462,6 @@ Before deploying to production, verify:
462
462
 
463
463
  ## See Also
464
464
 
465
- - [Authentication Component](../references/components/authentication) - JWT setup and configuration
465
+ - [Authentication Component](../references/components/authentication/) - JWT setup and configuration
466
466
  - [Common Pitfalls](./common-pitfalls) - Security-related mistakes to avoid
467
467
  - [Deployment Strategies](./deployment-strategies) - Secure deployment practices
@@ -118,7 +118,7 @@ cat .env | grep APP_ENV
118
118
  - Use `try-catch` blocks to catch and log errors
119
119
  - Check database queries with Drizzle's logging: `{ logger: true }`
120
120
 
121
- > **Deep Dive:** See [Logger Helper](../references/helpers/logger.md) for advanced logging configuration.
121
+ > **Deep Dive:** See [Logger Helper](../references/helpers/logger/) for advanced logging configuration.
122
122
 
123
123
  ## 6. Request ID Tracking
124
124
 
@@ -501,7 +501,7 @@ export class MyComponent extends BaseComponent {
501
501
 
502
502
  - **References:**
503
503
  - [BaseComponent API](/references/base/components) - Complete API reference
504
- - [Authentication Component](/references/components/authentication) - Real-world component example
504
+ - [Authentication Component](/references/components/authentication/) - Real-world component example
505
505
  - [Health Check Component](/references/components/health-check) - Simple component example
506
506
 
507
507
  - **Best Practices:**
@@ -113,10 +113,10 @@ export class Application extends BaseApplication {
113
113
 
114
114
  - **References:**
115
115
  - [BaseComponent API](/references/base/components) - Complete API reference
116
- - [Authentication Component](/references/components/authentication) - JWT authentication
116
+ - [Authentication Component](/references/components/authentication/) - JWT authentication
117
117
  - [Health Check Component](/references/components/health-check) - Health endpoints
118
118
  - [Swagger Component](/references/components/swagger) - API documentation
119
- - [Socket.IO Component](/references/components/socket-io) - WebSocket support
119
+ - [Socket.IO Component](/references/components/socket-io/) - WebSocket support
120
120
 
121
121
  - **Best Practices:**
122
122
  - [Architectural Patterns](/best-practices/architectural-patterns) - Component design patterns
@@ -258,7 +258,7 @@ The `Application` class extends `Container`, so all container methods (`bind`, `
258
258
 
259
259
  - **References:**
260
260
  - [Dependency Injection API](/references/base/dependency-injection) - Complete API reference
261
- - [Inversion Helper](/references/helpers/inversion) - DI container utilities
261
+ - [Inversion Helper](/references/helpers/inversion/) - DI container utilities
262
262
  - [Glossary](/guides/reference/glossary#dependency-injection-di) - DI concepts explained
263
263
 
264
264
  - **Tutorials:**
@@ -94,7 +94,7 @@ This layered architecture makes your application:
94
94
  - **References:**
95
95
  - [BaseService API](/references/base/services) - Complete API reference
96
96
  - [Providers](/references/base/providers) - Factory pattern for runtime instantiation
97
- - [Logger Helper](/references/helpers/logger) - Logging in services
97
+ - [Logger Helper](/references/helpers/logger/) - Logging in services
98
98
 
99
99
  - **Best Practices:**
100
100
  - [Architectural Patterns](/best-practices/architectural-patterns) - Service layer design
@@ -694,7 +694,7 @@ You now have a fully functional CRUD API! Here's what to explore next:
694
694
  3. [Components](../core-concepts/components.md) - Build reusable modules
695
695
 
696
696
  **Add Features:**
697
- 1. [Authentication](/references/components/authentication) - Add JWT authentication
697
+ 1. [Authentication](/references/components/authentication/) - Add JWT authentication
698
698
  2. [Custom Routes](/best-practices/api-usage-examples.md) - Beyond CRUD operations
699
699
  3. [Relationships](../core-concepts/persistent/) - Link todos to users
700
700
 
@@ -1393,7 +1393,7 @@ You've built a complete e-commerce API with:
1393
1393
 
1394
1394
  ## Next Steps
1395
1395
 
1396
- - Add user authentication with [Auth Component](/references/components/authentication)
1397
- - Add order notifications with [Mail Component](/references/components/mail)
1396
+ - Add user authentication with [Auth Component](/references/components/authentication/)
1397
+ - Add order notifications with [Mail Component](/references/components/mail/)
1398
1398
  - Add real-time updates with [Socket.IO](./realtime-chat.md)
1399
1399
  - Deploy with [Deployment Guide](/best-practices/deployment-strategies)
@@ -13,8 +13,8 @@ This tutorial shows you how to build a real-time chat application with rooms, di
13
13
  ## Prerequisites
14
14
 
15
15
  - Completed [Building a CRUD API](./building-a-crud-api.md)
16
- - Understanding of [Socket.IO Component](/references/components/socket-io)
17
- - Understanding of [Socket.IO Helper](/references/helpers/socket-io)
16
+ - Understanding of [Socket.IO Component](/references/components/socket-io/)
17
+ - Understanding of [Socket.IO Helper](/references/helpers/socket-io/)
18
18
  - Redis for pub/sub (required by `SocketIOServerHelper`)
19
19
 
20
20
  ## 1. Project Setup
@@ -929,7 +929,7 @@ export class ChatService extends BaseService {
929
929
  ```
930
930
 
931
931
  > [!IMPORTANT]
932
- > **Lazy getter pattern**: `SocketIOServerHelper` is bound via a post-start hook, so it's not available during DI construction. The `private get socketIOHelper()` getter resolves it lazily on first access. See [Socket.IO Component](/references/components/socket-io#step-3-use-in-servicescontrollers) for details.
932
+ > **Lazy getter pattern**: `SocketIOServerHelper` is bound via a post-start hook, so it's not available during DI construction. The `private get socketIOHelper()` getter resolves it lazily on first access. See [Socket.IO Component](/references/components/socket-io/#step-3-use-in-servicescontrollers) for details.
933
933
 
934
934
  ## 6. Application Setup
935
935
 
@@ -1512,7 +1512,7 @@ this.bind<RedisHelper>({
1512
1512
 
1513
1513
  ## Next Steps
1514
1514
 
1515
- - Add file/image sharing with [Storage Helper](/references/helpers/storage)
1515
+ - Add file/image sharing with [Storage Helper](/references/helpers/storage/)
1516
1516
  - Add push notifications
1517
1517
  - Implement read receipts
1518
1518
  - Add message reactions
@@ -1520,6 +1520,6 @@ this.bind<RedisHelper>({
1520
1520
 
1521
1521
  ## See Also
1522
1522
 
1523
- - [Socket.IO Component](/references/components/socket-io) — Component reference
1524
- - [Socket.IO Helper](/references/helpers/socket-io) — Server + Client helper API
1523
+ - [Socket.IO Component](/references/components/socket-io/) — Component reference
1524
+ - [Socket.IO Helper](/references/helpers/socket-io/) — Server + Client helper API
1525
1525
  - [Socket.IO Test Example](https://github.com/VENIZIA-AI/ignis/tree/main/examples/socket-io-test) — Working example with automated test client
@@ -703,7 +703,7 @@ class CreateAndUpdateAndDeleteHandler extends TestCaseHandler {
703
703
 
704
704
  ## Next Steps
705
705
 
706
- - [Testing Reference](../../references/helpers/testing.md) - Complete API documentation
706
+ - [Testing Reference](../../references/helpers/testing/) - Complete API documentation
707
707
  - [Best Practices](../../best-practices/code-style-standards/) - Code quality standards
708
708
  - [Troubleshooting](../../best-practices/troubleshooting-tips.md) - Common issues
709
709
 
@@ -773,8 +773,6 @@ await app.boot();
773
773
  ```
774
774
 
775
775
 
776
- ---
777
-
778
776
  ## See Also
779
777
 
780
778
  - **Related References:**
@@ -589,10 +589,10 @@ export * from './controller';
589
589
  - [Dependency Injection](/guides/core-concepts/dependency-injection) - Component bindings
590
590
 
591
591
  - **Built-in Components:**
592
- - [Authentication Component](/references/components/authentication) - JWT authentication
592
+ - [Authentication Component](/references/components/authentication/) - JWT authentication
593
593
  - [Health Check Component](/references/components/health-check) - Health endpoints
594
594
  - [Swagger Component](/references/components/swagger) - API documentation
595
- - [Socket.IO Component](/references/components/socket-io) - WebSocket support
595
+ - [Socket.IO Component](/references/components/socket-io/) - WebSocket support
596
596
 
597
597
  - **Best Practices:**
598
598
  - [Architectural Patterns](/best-practices/architectural-patterns) - Component design patterns
@@ -632,7 +632,6 @@ export class ConfigurationController extends _Controller {
632
632
  }
633
633
  ```
634
634
 
635
- ---
636
635
 
637
636
  ## See Also
638
637
 
@@ -341,7 +341,7 @@ try {
341
341
  }
342
342
  ```
343
343
 
344
- > **Note:** For most use cases, prefer using `repository.beginTransaction()` which provides a higher-level API. See [Repositories Reference](./repositories/.md#transactions) for details.
344
+ > **Note:** For most use cases, prefer using `repository.beginTransaction()` which provides a higher-level API. See [Repositories Reference](./repositories/#transactions) for details.
345
345
 
346
346
  This architecture ensures that datasources are configured consistently and that the fully-initialized Drizzle connector, aware of all schemas and relations, is available to repositories for querying.
347
347
 
@@ -201,7 +201,7 @@ class UserController {
201
201
  - [Providers](/references/base/providers) - Factory pattern for dynamic injection
202
202
 
203
203
  - **References:**
204
- - [Inversion Helper](/references/helpers/inversion) - DI container utilities
204
+ - [Inversion Helper](/references/helpers/inversion/) - DI container utilities
205
205
  - [Bootstrapping API](/references/base/bootstrapping) - Auto-discovery and DI
206
206
  - [Glossary](/guides/reference/glossary#dependency-injection-di) - DI concepts explained
207
207
 
@@ -22,7 +22,6 @@ Complete single-page reference for all IGNIS filter operators. For detailed expl
22
22
 
23
23
  **See:** [Comparison Operators Guide](./comparison-operators.md)
24
24
 
25
- ---
26
25
 
27
26
  ## Range Operators
28
27
 
@@ -33,7 +32,6 @@ Complete single-page reference for all IGNIS filter operators. For detailed expl
33
32
 
34
33
  **See:** [Range Operators Guide](./range-operators.md)
35
34
 
36
- ---
37
35
 
38
36
  ## List Operators
39
37
 
@@ -44,7 +42,6 @@ Complete single-page reference for all IGNIS filter operators. For detailed expl
44
42
 
45
43
  **See:** [List Operators Guide](./list-operators.md)
46
44
 
47
- ---
48
45
 
49
46
  ## Pattern Matching Operators
50
47
 
@@ -65,7 +62,6 @@ Complete single-page reference for all IGNIS filter operators. For detailed expl
65
62
 
66
63
  **See:** [Pattern Matching Guide](./pattern-matching.md)
67
64
 
68
- ---
69
65
 
70
66
  ## Null Check Operators
71
67
 
@@ -83,7 +79,6 @@ Complete single-page reference for all IGNIS filter operators. For detailed expl
83
79
 
84
80
  **See:** [Null Operators Guide](./null-operators.md)
85
81
 
86
- ---
87
82
 
88
83
  ## Logical Operators
89
84
 
@@ -106,7 +101,6 @@ Complete single-page reference for all IGNIS filter operators. For detailed expl
106
101
 
107
102
  **See:** [Logical Operators Guide](./logical-operators.md)
108
103
 
109
- ---
110
104
 
111
105
  ## PostgreSQL Array Operators
112
106
 
@@ -122,7 +116,6 @@ These operators work with PostgreSQL array columns (`varchar[]`, `text[]`, `inte
122
116
 
123
117
  **See:** [Array Operators Guide](./array-operators.md)
124
118
 
125
- ---
126
119
 
127
120
  ## JSON/JSONB Operators (PostgreSQL)
128
121
 
@@ -166,7 +159,6 @@ All comparison operators work with JSON path queries:
166
159
 
167
160
  **See:** [JSON Filtering Guide](./json-filtering.md)
168
161
 
169
- ---
170
162
 
171
163
  ## Fields, Ordering & Pagination
172
164
 
@@ -211,7 +203,6 @@ const users = await userRepo.find({
211
203
 
212
204
  **See:** [Fields, Ordering & Pagination Guide](./fields-order-pagination.md)
213
205
 
214
- ---
215
206
 
216
207
  ## Default Filters
217
208
 
@@ -250,7 +241,6 @@ await userRepo.find({
250
241
 
251
242
  **See:** [Default Filter Guide](./default-filter.md)
252
243
 
253
- ---
254
244
 
255
245
  ## Common Filter Patterns
256
246
 
@@ -314,7 +304,6 @@ await userRepo.find({
314
304
  }
315
305
  ```
316
306
 
317
- ---
318
307
 
319
308
  ## Operator Precedence
320
309
 
@@ -339,7 +328,6 @@ Use explicit parentheses (via nested `and`/`or`) for clarity:
339
328
  }
340
329
  ```
341
330
 
342
- ---
343
331
 
344
332
  ## Type Safety
345
333
 
@@ -371,7 +359,6 @@ await userRepo.find({
371
359
  });
372
360
  ```
373
361
 
374
- ---
375
362
 
376
363
  ## Performance Tips
377
364
 
@@ -407,7 +394,6 @@ await userRepo.find({
407
394
  }
408
395
  ```
409
396
 
410
- ---
411
397
 
412
398
  ## See Also
413
399
 
@@ -187,7 +187,6 @@ async getUser(c: TRouteContext) {
187
187
  }
188
188
  ```
189
189
 
190
- ---
191
190
 
192
191
  ### Not Found Handler (`notFoundHandler`)
193
192
 
@@ -233,7 +232,6 @@ app.notFound(notFoundHandler({
233
232
 
234
233
  **Returns:** `NotFoundHandler` - Hono not found handler function
235
234
 
236
- ---
237
235
 
238
236
  ### Request Spy (`RequestSpyMiddleware`)
239
237
 
@@ -319,7 +317,6 @@ async example(c: TRouteContext) {
319
317
  Request spy logs every request detail. Consider disabling or reducing verbosity in production environments with high traffic.
320
318
  :::
321
319
 
322
- ---
323
320
 
324
321
  ### Emoji Favicon
325
322
 
@@ -372,7 +369,6 @@ app.use(emojiFavicon({ icon: '🌟' })); // Star
372
369
  SVG favicons are supported in all modern browsers. Fallback to a traditional `.ico` file if you need to support legacy browsers.
373
370
  :::
374
371
 
375
- ---
376
372
 
377
373
  ## Creating Custom Middleware
378
374
 
@@ -450,7 +446,6 @@ const myMiddleware = app.get(MyMiddleware);
450
446
  app.use(myMiddleware.value());
451
447
  ```
452
448
 
453
- ---
454
449
 
455
450
  ## Middleware Order & Priority
456
451
 
@@ -505,7 +500,6 @@ app.notFound(notFoundHandler({ logger: app.logger }));
505
500
  Placing error handler before routes will prevent it from catching route errors. Always register error handlers last.
506
501
  :::
507
502
 
508
- ---
509
503
 
510
504
  ## Common Patterns
511
505
 
@@ -543,7 +537,6 @@ const apiMiddleware = (): MiddlewareHandler => {
543
537
  };
544
538
  ```
545
539
 
546
- ---
547
540
 
548
541
  ## Performance Considerations
549
542
 
@@ -568,7 +561,6 @@ Error handlers log every error. For high error rates, consider:
568
561
  - Error aggregation services (Sentry, Rollbar)
569
562
  - Rate-limited logging
570
563
 
571
- ---
572
564
 
573
565
  ## See Also
574
566
 
@@ -49,7 +49,6 @@ A **Provider** is a class that implements the Factory pattern, responsible for c
49
49
  - **Multi-Tenant**: Provide tenant-specific instances
50
50
  - **Feature Flags**: Enable/disable features at runtime
51
51
 
52
- ---
53
52
 
54
53
  ## BaseProvider Class
55
54
 
@@ -99,7 +98,6 @@ The `value` method is where you implement your factory logic.
99
98
  - Create and configure instances based on logic
100
99
  - Return factories for deferred instantiation
101
100
 
102
- ---
103
101
 
104
102
  ## Provider vs Service
105
103
 
@@ -185,7 +183,6 @@ class OrderService extends BaseService {
185
183
  - **Need to implement business logic?** → Use a Service
186
184
  :::
187
185
 
188
- ---
189
186
 
190
187
  ## Creating Custom Providers
191
188
 
@@ -297,7 +294,6 @@ export class DatabaseProvider extends BaseProvider<Database> {
297
294
  }
298
295
  ```
299
296
 
300
- ---
301
297
 
302
298
  ## Provider Lifecycle
303
299
 
@@ -354,7 +350,6 @@ export class FactoryDatabaseProvider extends BaseProvider<Database> {
354
350
  }
355
351
  ```
356
352
 
357
- ---
358
353
 
359
354
  ## Real-World Examples
360
355
 
@@ -498,7 +493,6 @@ const requestSpy = new RequestSpyMiddleware();
498
493
  app.use(requestSpy.value());
499
494
  ```
500
495
 
501
- ---
502
496
 
503
497
  ## Common Patterns
504
498
 
@@ -589,7 +583,6 @@ export class CacheProvider extends BaseProvider<ICache> {
589
583
  }
590
584
  ```
591
585
 
592
- ---
593
586
 
594
587
  ## Common Pitfalls
595
588
 
@@ -664,7 +657,6 @@ value(container: Container): IMailTransport {
664
657
  }
665
658
  ```
666
659
 
667
- ---
668
660
 
669
661
  ## Performance Considerations
670
662
 
@@ -710,7 +702,6 @@ export class ConfigProvider extends BaseProvider<Config> {
710
702
  }
711
703
  ```
712
704
 
713
- ---
714
705
 
715
706
  ## See Also
716
707
 
@@ -102,7 +102,6 @@ export class UserService extends BaseService {
102
102
 
103
103
  By adhering to this pattern, you keep your code organized, testable, and maintainable. You can easily test `UserService` by providing a mock `UserRepository` without needing a real database connection.
104
104
 
105
- ---
106
105
 
107
106
  ## See Also
108
107