@venizia/ignis-docs 0.0.7-2 → 0.0.8-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 (161) hide show
  1. package/dist/mcp-server/common/paths.d.ts +4 -2
  2. package/dist/mcp-server/common/paths.d.ts.map +1 -1
  3. package/dist/mcp-server/common/paths.js +8 -6
  4. package/dist/mcp-server/common/paths.js.map +1 -1
  5. package/dist/mcp-server/tools/docs/get-document-content.tool.d.ts +1 -1
  6. package/dist/mcp-server/tools/docs/get-document-content.tool.d.ts.map +1 -1
  7. package/dist/mcp-server/tools/docs/get-document-content.tool.js +7 -7
  8. package/dist/mcp-server/tools/docs/get-document-metadata.tool.js +3 -3
  9. package/dist/mcp-server/tools/docs/get-package-overview.tool.d.ts +1 -1
  10. package/dist/mcp-server/tools/docs/get-package-overview.tool.js +1 -1
  11. package/package.json +1 -1
  12. package/wiki/best-practices/api-usage-examples.md +9 -9
  13. package/wiki/best-practices/architectural-patterns.md +19 -3
  14. package/wiki/best-practices/architecture-decisions.md +6 -6
  15. package/wiki/best-practices/code-style-standards/advanced-patterns.md +1 -1
  16. package/wiki/best-practices/code-style-standards/control-flow.md +1 -1
  17. package/wiki/best-practices/code-style-standards/function-patterns.md +2 -2
  18. package/wiki/best-practices/code-style-standards/index.md +2 -2
  19. package/wiki/best-practices/code-style-standards/naming-conventions.md +1 -1
  20. package/wiki/best-practices/code-style-standards/route-definitions.md +4 -4
  21. package/wiki/best-practices/data-modeling.md +1 -1
  22. package/wiki/best-practices/deployment-strategies.md +1 -1
  23. package/wiki/best-practices/error-handling.md +2 -2
  24. package/wiki/best-practices/performance-optimization.md +3 -3
  25. package/wiki/best-practices/security-guidelines.md +2 -2
  26. package/wiki/best-practices/troubleshooting-tips.md +1 -1
  27. package/wiki/{references → extensions}/components/authentication/api.md +12 -20
  28. package/wiki/{references → extensions}/components/authentication/errors.md +1 -1
  29. package/wiki/{references → extensions}/components/authentication/index.md +5 -8
  30. package/wiki/{references → extensions}/components/authentication/usage.md +20 -36
  31. package/wiki/{references → extensions}/components/authorization/api.md +62 -13
  32. package/wiki/{references → extensions}/components/authorization/errors.md +12 -7
  33. package/wiki/{references → extensions}/components/authorization/index.md +93 -6
  34. package/wiki/{references → extensions}/components/authorization/usage.md +42 -4
  35. package/wiki/{references → extensions}/components/health-check.md +5 -4
  36. package/wiki/{references → extensions}/components/index.md +2 -0
  37. package/wiki/{references → extensions}/components/mail/index.md +1 -1
  38. package/wiki/{references → extensions}/components/request-tracker.md +1 -1
  39. package/wiki/{references → extensions}/components/socket-io/api.md +2 -2
  40. package/wiki/{references → extensions}/components/socket-io/errors.md +2 -0
  41. package/wiki/{references → extensions}/components/socket-io/index.md +24 -20
  42. package/wiki/{references → extensions}/components/socket-io/usage.md +2 -2
  43. package/wiki/{references → extensions}/components/static-asset/api.md +14 -15
  44. package/wiki/{references → extensions}/components/static-asset/errors.md +3 -1
  45. package/wiki/{references → extensions}/components/static-asset/index.md +158 -89
  46. package/wiki/{references → extensions}/components/static-asset/usage.md +8 -5
  47. package/wiki/{references → extensions}/components/swagger.md +3 -3
  48. package/wiki/{references → extensions}/components/template/index.md +4 -4
  49. package/wiki/{references → extensions}/components/template/setup-page.md +1 -1
  50. package/wiki/{references → extensions}/components/template/single-page.md +1 -1
  51. package/wiki/{references → extensions}/components/websocket/api.md +7 -6
  52. package/wiki/{references → extensions}/components/websocket/errors.md +17 -3
  53. package/wiki/{references → extensions}/components/websocket/index.md +17 -11
  54. package/wiki/{references → extensions}/components/websocket/usage.md +2 -2
  55. package/wiki/{references → extensions}/helpers/crypto/index.md +1 -1
  56. package/wiki/{references → extensions}/helpers/env/index.md +9 -5
  57. package/wiki/{references → extensions}/helpers/error/index.md +2 -7
  58. package/wiki/{references → extensions}/helpers/index.md +18 -6
  59. package/wiki/{references → extensions}/helpers/kafka/admin.md +33 -16
  60. package/wiki/extensions/helpers/kafka/consumer.md +384 -0
  61. package/wiki/extensions/helpers/kafka/examples.md +361 -0
  62. package/wiki/extensions/helpers/kafka/index.md +639 -0
  63. package/wiki/{references → extensions}/helpers/kafka/producer.md +100 -96
  64. package/wiki/extensions/helpers/kafka/schema-registry.md +214 -0
  65. package/wiki/{references → extensions}/helpers/logger/index.md +2 -2
  66. package/wiki/{references → extensions}/helpers/queue/index.md +400 -4
  67. package/wiki/{references → extensions}/helpers/storage/api.md +170 -10
  68. package/wiki/{references → extensions}/helpers/storage/index.md +44 -8
  69. package/wiki/{references → extensions}/helpers/template/index.md +1 -1
  70. package/wiki/{references → extensions}/helpers/testing/index.md +4 -4
  71. package/wiki/{references → extensions}/helpers/types/index.md +63 -16
  72. package/wiki/{references → extensions}/helpers/websocket/index.md +1 -1
  73. package/wiki/extensions/index.md +48 -0
  74. package/wiki/guides/core-concepts/application/bootstrapping.md +55 -37
  75. package/wiki/guides/core-concepts/application/index.md +95 -35
  76. package/wiki/guides/core-concepts/components-guide.md +23 -19
  77. package/wiki/guides/core-concepts/components.md +34 -10
  78. package/wiki/guides/core-concepts/dependency-injection.md +99 -34
  79. package/wiki/guides/core-concepts/grpc-controllers.md +295 -0
  80. package/wiki/guides/core-concepts/persistent/datasources.md +27 -8
  81. package/wiki/guides/core-concepts/persistent/models.md +43 -1
  82. package/wiki/guides/core-concepts/persistent/repositories.md +75 -8
  83. package/wiki/guides/core-concepts/persistent/transactions.md +38 -8
  84. package/wiki/guides/core-concepts/{controllers.md → rest-controllers.md} +30 -33
  85. package/wiki/guides/core-concepts/services.md +19 -5
  86. package/wiki/guides/get-started/5-minute-quickstart.md +6 -7
  87. package/wiki/guides/get-started/philosophy.md +1 -1
  88. package/wiki/guides/index.md +2 -2
  89. package/wiki/guides/reference/glossary.md +7 -7
  90. package/wiki/guides/reference/mcp-docs-server.md +1 -1
  91. package/wiki/guides/tutorials/building-a-crud-api.md +2 -2
  92. package/wiki/guides/tutorials/complete-installation.md +17 -14
  93. package/wiki/guides/tutorials/ecommerce-api.md +18 -18
  94. package/wiki/guides/tutorials/realtime-chat.md +8 -8
  95. package/wiki/guides/tutorials/testing.md +2 -2
  96. package/wiki/index.md +4 -3
  97. package/wiki/references/base/application.md +341 -21
  98. package/wiki/references/base/bootstrapping.md +43 -13
  99. package/wiki/references/base/components.md +259 -8
  100. package/wiki/references/base/controllers.md +556 -253
  101. package/wiki/references/base/datasources.md +159 -79
  102. package/wiki/references/base/dependency-injection.md +299 -48
  103. package/wiki/references/base/filter-system/application-usage.md +18 -2
  104. package/wiki/references/base/filter-system/array-operators.md +14 -6
  105. package/wiki/references/base/filter-system/comparison-operators.md +9 -3
  106. package/wiki/references/base/filter-system/default-filter.md +28 -3
  107. package/wiki/references/base/filter-system/fields-order-pagination.md +17 -13
  108. package/wiki/references/base/filter-system/index.md +169 -11
  109. package/wiki/references/base/filter-system/json-filtering.md +51 -18
  110. package/wiki/references/base/filter-system/list-operators.md +4 -3
  111. package/wiki/references/base/filter-system/logical-operators.md +7 -2
  112. package/wiki/references/base/filter-system/null-operators.md +50 -0
  113. package/wiki/references/base/filter-system/quick-reference.md +82 -243
  114. package/wiki/references/base/filter-system/range-operators.md +7 -1
  115. package/wiki/references/base/filter-system/tips.md +34 -7
  116. package/wiki/references/base/filter-system/use-cases.md +6 -5
  117. package/wiki/references/base/grpc-controllers.md +984 -0
  118. package/wiki/references/base/index.md +32 -24
  119. package/wiki/references/base/middleware.md +347 -0
  120. package/wiki/references/base/models.md +390 -46
  121. package/wiki/references/base/providers.md +14 -14
  122. package/wiki/references/base/repositories/advanced.md +84 -69
  123. package/wiki/references/base/repositories/index.md +447 -12
  124. package/wiki/references/base/repositories/mixins.md +103 -98
  125. package/wiki/references/base/repositories/relations.md +129 -45
  126. package/wiki/references/base/repositories/soft-deletable.md +104 -23
  127. package/wiki/references/base/services.md +94 -14
  128. package/wiki/references/index.md +12 -10
  129. package/wiki/references/quick-reference.md +98 -65
  130. package/wiki/references/utilities/crypto.md +21 -4
  131. package/wiki/references/utilities/date.md +25 -7
  132. package/wiki/references/utilities/index.md +26 -24
  133. package/wiki/references/utilities/jsx.md +54 -54
  134. package/wiki/references/utilities/module.md +8 -6
  135. package/wiki/references/utilities/parse.md +16 -9
  136. package/wiki/references/utilities/performance.md +22 -7
  137. package/wiki/references/utilities/promise.md +19 -16
  138. package/wiki/references/utilities/request.md +48 -26
  139. package/wiki/references/utilities/schema.md +69 -6
  140. package/wiki/references/utilities/statuses.md +131 -140
  141. package/wiki/references/helpers/kafka/consumer.md +0 -473
  142. package/wiki/references/helpers/kafka/examples.md +0 -234
  143. package/wiki/references/helpers/kafka/index.md +0 -482
  144. /package/wiki/{references → extensions}/components/mail/api.md +0 -0
  145. /package/wiki/{references → extensions}/components/mail/errors.md +0 -0
  146. /package/wiki/{references → extensions}/components/mail/usage.md +0 -0
  147. /package/wiki/{references → extensions}/components/template/api-page.md +0 -0
  148. /package/wiki/{references → extensions}/components/template/errors-page.md +0 -0
  149. /package/wiki/{references → extensions}/components/template/usage-page.md +0 -0
  150. /package/wiki/{references → extensions}/helpers/cron/index.md +0 -0
  151. /package/wiki/{references → extensions}/helpers/inversion/index.md +0 -0
  152. /package/wiki/{references → extensions}/helpers/network/api.md +0 -0
  153. /package/wiki/{references → extensions}/helpers/network/index.md +0 -0
  154. /package/wiki/{references → extensions}/helpers/redis/index.md +0 -0
  155. /package/wiki/{references → extensions}/helpers/socket-io/api.md +0 -0
  156. /package/wiki/{references → extensions}/helpers/socket-io/index.md +0 -0
  157. /package/wiki/{references → extensions}/helpers/template/single-page.md +0 -0
  158. /package/wiki/{references → extensions}/helpers/uid/index.md +0 -0
  159. /package/wiki/{references → extensions}/helpers/websocket/api.md +0 -0
  160. /package/wiki/{references → extensions}/helpers/worker-thread/index.md +0 -0
  161. /package/wiki/{references → extensions}/src-details/mcp-server.md +0 -0
@@ -239,14 +239,17 @@ export class Application extends BaseApplication {
239
239
 
240
240
  **Key takeaway:** You'll mostly work in `preConfigure()` when building your app. The other hooks are there when you need them.
241
241
 
242
- **Application Lifecycle Hooks:**
242
+ **Application Lifecycle Hooks (execution order):**
243
243
  | Hook | Purpose | Usage |
244
244
  |------|---------|-------|
245
245
  | `getAppInfo()` | Application metadata | Required - used for API docs |
246
- | `staticConfigure()` | Static file serving | Optional |
247
- | `setupMiddlewares()` | Global middlewares | Optional |
248
- | `preConfigure()` | **Register resources** | **Main hook** - register controllers, services, etc. |
246
+ | `staticConfigure()` | Static file serving | Optional - runs before DI registration |
247
+ | `preConfigure()` | **Register resources** | **Main hook** - register controllers, services, components, etc. |
248
+ | `registerDataSources()` | Configure datasources | Auto - discovers and configures bound datasources |
249
+ | `registerComponents()` | Configure components | Auto - discovers and configures bound components |
250
+ | `registerControllers()` | Configure controllers | Auto - mounts REST/gRPC routes |
249
251
  | `postConfigure()` | Post-initialization | Optional - seed data, background jobs |
252
+ | `setupMiddlewares()` | Global middlewares | Optional - runs after `initialize()`, before server starts |
250
253
 
251
254
  > **Deep Dive:** See [Application Class Reference](../core-concepts/application/) for detailed lifecycle documentation.
252
255
 
@@ -256,7 +259,7 @@ Create `src/controllers/hello.controller.ts` - controllers handle HTTP requests
256
259
 
257
260
  ```typescript
258
261
  import {
259
- BaseController,
262
+ BaseRestController,
260
263
  controller,
261
264
  api,
262
265
  jsonContent,
@@ -270,7 +273,7 @@ const BASE_PATH = '/hello';
270
273
  // The @controller decorator registers this class as a controller
271
274
  // All routes in this controller will be under /api/hello (remember path.base: '/api')
272
275
  @controller({ path: BASE_PATH })
273
- export class HelloController extends BaseController {
276
+ export class HelloController extends BaseRestController {
274
277
  constructor() {
275
278
  super({ scope: HelloController.name, path: BASE_PATH });
276
279
  }
@@ -278,12 +281,12 @@ export class HelloController extends BaseController {
278
281
  // Required: Override binding() to register routes or dependencies
279
282
  override binding() {
280
283
  // Option 1: Use bindRoute() or defineRoute() for programmatic route registration
281
- // this.bindRoute({ method: 'get', path: '/programmatic', handler: this.myHandler });
284
+ // this.bindRoute({ configs: { method: 'get', path: '/programmatic', responses: {...} } }).to({ handler: this.myHandler });
282
285
 
283
286
  // Option 2: Use @api decorator on methods (shown below) - recommended
284
287
  }
285
288
 
286
- // The @api decorator defines a route (prefer @api with method over @get/@post)
289
+ // The @api decorator defines a route with explicit method. You can also use @get/@post shorthand decorators.
287
290
  @api({
288
291
  configs: {
289
292
  method: HTTP.Methods.GET,
@@ -303,8 +306,8 @@ export class HelloController extends BaseController {
303
306
  return c.json({ message: 'Hello, World!' }, HTTP.ResultCodes.RS_2.Ok);
304
307
  }
305
308
 
306
- // For authenticated endpoints, add 'authStrategies':
307
- // @api({ configs: { method: HTTP.Methods.GET, path: '/secure', authStrategies: [Authentication.STRATEGY_JWT] } })
309
+ // For authenticated endpoints, add 'authenticate':
310
+ // @api({ configs: { method: HTTP.Methods.GET, path: '/secure', authenticate: { strategies: [Authentication.STRATEGY_JWT] } } })
308
311
  }
309
312
  ```
310
313
 
@@ -312,13 +315,13 @@ export class HelloController extends BaseController {
312
315
 
313
316
  | Pattern | Description |
314
317
  |---------|-------------|
315
- | `@controller` | Registers the class as a controller with a base path |
316
- | `@api` | Defines a route with `method` specified (recommended) |
317
- | `@get`, `@post`, etc. | Shorthand decorators (also work) |
318
+ | `@controller` | Registers the class as a controller with a base path. Supports optional `transport` field (`'rest'` default, `'grpc'`) |
319
+ | `@api` | Defines a route with `method` specified in configs |
320
+ | `@get`, `@post`, etc. | Shorthand decorators that auto-set the HTTP method (recommended) |
318
321
  | `binding()` | Required override — use `bindRoute()` or `defineRoute()` for programmatic routes |
319
322
  | Zod schemas | Provide automatic validation and OpenAPI docs |
320
323
 
321
- > **Deep Dive:** See [Controllers Reference](../core-concepts/controllers.md) for advanced routing patterns and validation.
324
+ > **Deep Dive:** See [Controllers Reference](../core-concepts/rest-controllers.md) for advanced routing patterns and validation.
322
325
 
323
326
  ### Create Entry Point
324
327
 
@@ -490,7 +490,7 @@ import { getError } from '@venizia/ignis-helpers';
490
490
  @injectable()
491
491
  export class ProductService extends BaseService {
492
492
  constructor(
493
- @inject('repositories.ProductRepository')
493
+ @inject({ key: 'repositories.ProductRepository' })
494
494
  private _productRepo: ProductRepository,
495
495
  ) {
496
496
  super({ scope: ProductService.name });
@@ -563,9 +563,9 @@ interface ICartItem {
563
563
  @injectable()
564
564
  export class CartService extends BaseService {
565
565
  constructor(
566
- @inject('repositories.CartRepository')
566
+ @inject({ key: 'repositories.CartRepository' })
567
567
  private _cartRepo: CartRepository,
568
- @inject('services.ProductService')
568
+ @inject({ key: 'services.ProductService' })
569
569
  private _productService: ProductService,
570
570
  ) {
571
571
  super({ scope: CartService.name });
@@ -715,13 +715,13 @@ interface ICreateOrderInput {
715
715
  @injectable()
716
716
  export class OrderService extends BaseService {
717
717
  constructor(
718
- @inject('repositories.OrderRepository')
718
+ @inject({ key: 'repositories.OrderRepository' })
719
719
  private _orderRepo: OrderRepository,
720
- @inject('services.CartService')
720
+ @inject({ key: 'services.CartService' })
721
721
  private _cartService: CartService,
722
- @inject('services.ProductService')
722
+ @inject({ key: 'services.ProductService' })
723
723
  private _productService: ProductService,
724
- @inject('services.PaymentService')
724
+ @inject({ key: 'services.PaymentService' })
725
725
  private _paymentService: PaymentService,
726
726
  ) {
727
727
  super({ scope: OrderService.name });
@@ -918,7 +918,7 @@ export class PaymentService extends BaseService {
918
918
  // src/controllers/product.controller.ts
919
919
  import { z } from '@hono/zod-openapi';
920
920
  import {
921
- BaseController,
921
+ BaseRestController,
922
922
  controller,
923
923
  get,
924
924
  inject,
@@ -968,9 +968,9 @@ const ProductRoutes = {
968
968
  type ProductRoutes = typeof ProductRoutes;
969
969
 
970
970
  @controller({ path: '/products' })
971
- export class ProductController extends BaseController {
971
+ export class ProductController extends BaseRestController {
972
972
  constructor(
973
- @inject('services.ProductService')
973
+ @inject({ key: 'services.ProductService' })
974
974
  private _productService: ProductService,
975
975
  ) {
976
976
  super({ scope: ProductController.name, path: '/products' });
@@ -1006,7 +1006,7 @@ export class ProductController extends BaseController {
1006
1006
  // src/controllers/cart.controller.ts
1007
1007
  import { z } from '@hono/zod-openapi';
1008
1008
  import {
1009
- BaseController,
1009
+ BaseRestController,
1010
1010
  controller,
1011
1011
  get,
1012
1012
  post,
@@ -1083,9 +1083,9 @@ const CartRoutes = {
1083
1083
  type CartRoutes = typeof CartRoutes;
1084
1084
 
1085
1085
  @controller({ path: '/cart' })
1086
- export class CartController extends BaseController {
1086
+ export class CartController extends BaseRestController {
1087
1087
  constructor(
1088
- @inject('services.CartService')
1088
+ @inject({ key: 'services.CartService' })
1089
1089
  private _cartService: CartService,
1090
1090
  ) {
1091
1091
  super({ scope: CartController.name, path: '/cart' });
@@ -1145,7 +1145,7 @@ export class CartController extends BaseController {
1145
1145
  // src/controllers/order.controller.ts
1146
1146
  import { z } from '@hono/zod-openapi';
1147
1147
  import {
1148
- BaseController,
1148
+ BaseRestController,
1149
1149
  controller,
1150
1150
  get,
1151
1151
  post,
@@ -1223,9 +1223,9 @@ const OrderRoutes = {
1223
1223
  type OrderRoutes = typeof OrderRoutes;
1224
1224
 
1225
1225
  @controller({ path: '/orders' })
1226
- export class OrderController extends BaseController {
1226
+ export class OrderController extends BaseRestController {
1227
1227
  constructor(
1228
- @inject('services.OrderService')
1228
+ @inject({ key: 'services.OrderService' })
1229
1229
  private _orderService: OrderService,
1230
1230
  ) {
1231
1231
  super({ scope: OrderController.name, path: '/orders' });
@@ -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](/extensions/components/authentication/)
1397
+ - Add order notifications with [Mail Component](/extensions/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](/extensions/components/socket-io/)
17
+ - Understanding of [Socket.IO Helper](/extensions/helpers/socket-io/)
18
18
  - Redis for pub/sub (required by `SocketIOServerHelper`)
19
19
 
20
20
  ## 1. Project Setup
@@ -928,7 +928,7 @@ export class ChatService extends BaseService {
928
928
  ```
929
929
 
930
930
  > [!IMPORTANT]
931
- > **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.
931
+ > **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](/extensions/components/socket-io/#step-3-use-in-servicescontrollers) for details.
932
932
 
933
933
  ## 6. Application Setup
934
934
 
@@ -1127,7 +1127,7 @@ Client connects → 'authenticate' event → authenticateFn() → 'authenticated
1127
1127
  // src/controllers/chat.controller.ts
1128
1128
  import { z } from '@hono/zod-openapi';
1129
1129
  import {
1130
- BaseController,
1130
+ BaseRestController,
1131
1131
  controller,
1132
1132
  inject,
1133
1133
  jsonResponse,
@@ -1182,7 +1182,7 @@ const ChatRoutes = {
1182
1182
  } as const;
1183
1183
 
1184
1184
  @controller({ path: '/chat' })
1185
- export class ChatController extends BaseController {
1185
+ export class ChatController extends BaseRestController {
1186
1186
  constructor(
1187
1187
  @inject({
1188
1188
  key: BindingKeys.build({
@@ -1513,7 +1513,7 @@ this.bind<RedisHelper>({
1513
1513
 
1514
1514
  ## Next Steps
1515
1515
 
1516
- - Add file/image sharing with [Storage Helper](/references/helpers/storage/)
1516
+ - Add file/image sharing with [Storage Helper](/extensions/helpers/storage/)
1517
1517
  - Add push notifications
1518
1518
  - Implement read receipts
1519
1519
  - Add message reactions
@@ -1521,6 +1521,6 @@ this.bind<RedisHelper>({
1521
1521
 
1522
1522
  ## See Also
1523
1523
 
1524
- - [Socket.IO Component](/references/components/socket-io/) — Component reference
1525
- - [Socket.IO Helper](/references/helpers/socket-io/) — Server + Client helper API
1524
+ - [Socket.IO Component](/extensions/components/socket-io/) — Component reference
1525
+ - [Socket.IO Helper](/extensions/helpers/socket-io/) — Server + Client helper API
1526
1526
  - [Socket.IO Test Example](https://github.com/VENIZIA-AI/ignis/tree/main/examples/socket-io-test) — Working example with automated test client
@@ -27,7 +27,7 @@ Since Ignis is just a TypeScript/JavaScript application framework, you can test
27
27
 
28
28
  Before starting, ensure you have:
29
29
  - A working Ignis application (see [Building a CRUD API](./building-a-crud-api.md))
30
- - Basic understanding of [Controllers](../core-concepts/controllers.md) and [Repositories](../core-concepts/persistent/)
30
+ - Basic understanding of [Controllers](../core-concepts/rest-controllers.md) and [Repositories](../core-concepts/persistent/)
31
31
 
32
32
  ## Quick Examples with Popular Frameworks
33
33
 
@@ -702,7 +702,7 @@ class CreateAndUpdateAndDeleteHandler extends TestCaseHandler {
702
702
 
703
703
  ## Next Steps
704
704
 
705
- - [Testing Reference](../../references/helpers/testing/) - Complete API documentation
705
+ - [Testing Reference](../../extensions/helpers/testing/) - Complete API documentation
706
706
  - [Best Practices](../../best-practices/code-style-standards/) - Code quality standards
707
707
  - [Troubleshooting](../../best-practices/troubleshooting-tips.md) - Common issues
708
708
 
package/wiki/index.md CHANGED
@@ -37,7 +37,7 @@ features:
37
37
 
38
38
  - title: Auto-Generated Docs
39
39
  details: OpenAPI/Swagger from Zod schemas. Interactive API explorer included with zero config.
40
- link: /references/components/swagger
40
+ link: /extensions/components/swagger
41
41
  linkText: View example
42
42
 
43
43
  - title: Type-Safe Database
@@ -64,13 +64,13 @@ bun add -d typescript @types/bun
64
64
  ```
65
65
 
66
66
  ```typescript
67
- import { BaseApplication, BaseController, controller, get, jsonContent, SwaggerComponent } from '@venizia/ignis';
67
+ import { BaseApplication, BaseRestController, controller, get, jsonContent, SwaggerComponent } from '@venizia/ignis';
68
68
  import { HTTP } from '@venizia/ignis-helpers';
69
69
  import { z } from '@hono/zod-openapi';
70
70
 
71
71
  // 1. Define your controller
72
72
  @controller({ path: '/hello' })
73
- class HelloController extends BaseController {
73
+ class HelloController extends BaseRestController {
74
74
  constructor() {
75
75
  super({ scope: 'HelloController', path: '/hello' });
76
76
  }
@@ -140,6 +140,7 @@ Ready for a step-by-step guide? Follow the [5-minute quickstart →](/guides/get
140
140
  <li><strong>Enterprise apps</strong> — Teams need clear patterns</li>
141
141
  <li><strong>Growing projects</strong> — 10+ endpoints that need structure</li>
142
142
  <li><strong>REST APIs</strong> — Full CRUD with validation & docs</li>
143
+ <li><strong>gRPC APIs</strong> — ConnectRPC-based gRPC with decorator support</li>
143
144
  <li><strong>Real-time apps</strong> — WebSocket support built-in</li>
144
145
  </ul>
145
146
  </div>