@venizia/ignis-docs 0.0.7 → 0.0.8-1

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 (172) 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/helpers/docs.helper.d.ts.map +1 -1
  6. package/dist/mcp-server/helpers/docs.helper.js +1 -1
  7. package/dist/mcp-server/helpers/docs.helper.js.map +1 -1
  8. package/dist/mcp-server/tools/base.tool.d.ts +1 -1
  9. package/dist/mcp-server/tools/docs/get-document-content.tool.d.ts +1 -1
  10. package/dist/mcp-server/tools/docs/get-document-content.tool.d.ts.map +1 -1
  11. package/dist/mcp-server/tools/docs/get-document-content.tool.js +7 -7
  12. package/dist/mcp-server/tools/docs/get-document-metadata.tool.js +3 -3
  13. package/dist/mcp-server/tools/docs/get-package-overview.tool.d.ts +1 -1
  14. package/dist/mcp-server/tools/docs/get-package-overview.tool.js +1 -1
  15. package/dist/mcp-server/tools/docs/search-documents.tool.d.ts +1 -1
  16. package/dist/mcp-server/tools/docs/search-documents.tool.js +1 -1
  17. package/dist/mcp-server/tools/docs/search-documents.tool.js.map +1 -1
  18. package/dist/mcp-server/tools/github/list-project-files.tool.d.ts +1 -1
  19. package/dist/mcp-server/tools/github/list-project-files.tool.js +1 -1
  20. package/dist/mcp-server/tools/github/list-project-files.tool.js.map +1 -1
  21. package/dist/mcp-server/tools/github/search-code.tool.d.ts +1 -1
  22. package/dist/mcp-server/tools/github/search-code.tool.js +1 -1
  23. package/dist/mcp-server/tools/github/search-code.tool.js.map +1 -1
  24. package/package.json +9 -9
  25. package/wiki/best-practices/api-usage-examples.md +9 -9
  26. package/wiki/best-practices/architectural-patterns.md +19 -3
  27. package/wiki/best-practices/architecture-decisions.md +6 -6
  28. package/wiki/best-practices/code-style-standards/advanced-patterns.md +1 -1
  29. package/wiki/best-practices/code-style-standards/control-flow.md +1 -1
  30. package/wiki/best-practices/code-style-standards/function-patterns.md +2 -2
  31. package/wiki/best-practices/code-style-standards/index.md +2 -2
  32. package/wiki/best-practices/code-style-standards/naming-conventions.md +1 -1
  33. package/wiki/best-practices/code-style-standards/route-definitions.md +4 -4
  34. package/wiki/best-practices/data-modeling.md +1 -1
  35. package/wiki/best-practices/deployment-strategies.md +1 -1
  36. package/wiki/best-practices/error-handling.md +2 -2
  37. package/wiki/best-practices/performance-optimization.md +3 -3
  38. package/wiki/best-practices/security-guidelines.md +2 -2
  39. package/wiki/best-practices/troubleshooting-tips.md +1 -1
  40. package/wiki/{references → extensions}/components/authentication/api.md +12 -20
  41. package/wiki/{references → extensions}/components/authentication/errors.md +1 -1
  42. package/wiki/{references → extensions}/components/authentication/index.md +5 -8
  43. package/wiki/{references → extensions}/components/authentication/usage.md +20 -36
  44. package/wiki/{references → extensions}/components/authorization/api.md +62 -13
  45. package/wiki/{references → extensions}/components/authorization/errors.md +12 -7
  46. package/wiki/{references → extensions}/components/authorization/index.md +93 -6
  47. package/wiki/{references → extensions}/components/authorization/usage.md +42 -4
  48. package/wiki/{references → extensions}/components/health-check.md +5 -4
  49. package/wiki/{references → extensions}/components/index.md +2 -0
  50. package/wiki/{references → extensions}/components/mail/index.md +1 -1
  51. package/wiki/{references → extensions}/components/request-tracker.md +1 -1
  52. package/wiki/{references → extensions}/components/socket-io/api.md +2 -2
  53. package/wiki/{references → extensions}/components/socket-io/errors.md +2 -0
  54. package/wiki/{references → extensions}/components/socket-io/index.md +24 -20
  55. package/wiki/{references → extensions}/components/socket-io/usage.md +2 -2
  56. package/wiki/{references → extensions}/components/static-asset/api.md +14 -15
  57. package/wiki/{references → extensions}/components/static-asset/errors.md +3 -1
  58. package/wiki/{references → extensions}/components/static-asset/index.md +158 -89
  59. package/wiki/{references → extensions}/components/static-asset/usage.md +8 -5
  60. package/wiki/{references → extensions}/components/swagger.md +3 -3
  61. package/wiki/{references → extensions}/components/template/index.md +4 -4
  62. package/wiki/{references → extensions}/components/template/setup-page.md +1 -1
  63. package/wiki/{references → extensions}/components/template/single-page.md +1 -1
  64. package/wiki/{references → extensions}/components/websocket/api.md +7 -6
  65. package/wiki/{references → extensions}/components/websocket/errors.md +17 -3
  66. package/wiki/{references → extensions}/components/websocket/index.md +17 -11
  67. package/wiki/{references → extensions}/components/websocket/usage.md +2 -2
  68. package/wiki/{references → extensions}/helpers/crypto/index.md +1 -1
  69. package/wiki/{references → extensions}/helpers/env/index.md +9 -5
  70. package/wiki/{references → extensions}/helpers/error/index.md +2 -7
  71. package/wiki/{references → extensions}/helpers/index.md +18 -6
  72. package/wiki/{references → extensions}/helpers/kafka/admin.md +13 -1
  73. package/wiki/{references → extensions}/helpers/kafka/consumer.md +32 -31
  74. package/wiki/{references → extensions}/helpers/kafka/examples.md +20 -20
  75. package/wiki/{references → extensions}/helpers/kafka/index.md +61 -54
  76. package/wiki/{references → extensions}/helpers/kafka/producer.md +21 -20
  77. package/wiki/{references → extensions}/helpers/kafka/schema-registry.md +25 -25
  78. package/wiki/{references → extensions}/helpers/logger/index.md +2 -2
  79. package/wiki/{references → extensions}/helpers/queue/index.md +400 -4
  80. package/wiki/{references → extensions}/helpers/storage/api.md +170 -10
  81. package/wiki/{references → extensions}/helpers/storage/index.md +44 -8
  82. package/wiki/{references → extensions}/helpers/template/index.md +1 -1
  83. package/wiki/{references → extensions}/helpers/testing/index.md +4 -4
  84. package/wiki/{references → extensions}/helpers/types/index.md +63 -16
  85. package/wiki/{references → extensions}/helpers/websocket/index.md +1 -1
  86. package/wiki/extensions/index.md +48 -0
  87. package/wiki/guides/core-concepts/application/bootstrapping.md +55 -37
  88. package/wiki/guides/core-concepts/application/index.md +95 -35
  89. package/wiki/guides/core-concepts/components-guide.md +23 -19
  90. package/wiki/guides/core-concepts/components.md +34 -10
  91. package/wiki/guides/core-concepts/dependency-injection.md +99 -34
  92. package/wiki/guides/core-concepts/grpc-controllers.md +295 -0
  93. package/wiki/guides/core-concepts/persistent/datasources.md +37 -19
  94. package/wiki/guides/core-concepts/persistent/index.md +6 -6
  95. package/wiki/guides/core-concepts/persistent/models.md +50 -6
  96. package/wiki/guides/core-concepts/persistent/repositories.md +83 -8
  97. package/wiki/guides/core-concepts/persistent/transactions.md +39 -8
  98. package/wiki/guides/core-concepts/{controllers.md → rest-controllers.md} +32 -35
  99. package/wiki/guides/core-concepts/services.md +19 -6
  100. package/wiki/guides/get-started/5-minute-quickstart.md +17 -17
  101. package/wiki/guides/get-started/philosophy.md +1 -1
  102. package/wiki/guides/index.md +2 -2
  103. package/wiki/guides/reference/glossary.md +7 -7
  104. package/wiki/guides/reference/mcp-docs-server.md +1 -1
  105. package/wiki/guides/tutorials/building-a-crud-api.md +45 -39
  106. package/wiki/guides/tutorials/complete-installation.md +74 -51
  107. package/wiki/guides/tutorials/ecommerce-api.md +39 -30
  108. package/wiki/guides/tutorials/realtime-chat.md +12 -13
  109. package/wiki/guides/tutorials/testing.md +2 -2
  110. package/wiki/index.md +4 -3
  111. package/wiki/references/base/application.md +341 -21
  112. package/wiki/references/base/bootstrapping.md +43 -13
  113. package/wiki/references/base/components.md +259 -8
  114. package/wiki/references/base/controllers.md +556 -253
  115. package/wiki/references/base/datasources.md +159 -79
  116. package/wiki/references/base/dependency-injection.md +299 -48
  117. package/wiki/references/base/filter-system/application-usage.md +18 -2
  118. package/wiki/references/base/filter-system/array-operators.md +14 -6
  119. package/wiki/references/base/filter-system/comparison-operators.md +9 -3
  120. package/wiki/references/base/filter-system/default-filter.md +28 -3
  121. package/wiki/references/base/filter-system/fields-order-pagination.md +17 -13
  122. package/wiki/references/base/filter-system/index.md +169 -11
  123. package/wiki/references/base/filter-system/json-filtering.md +51 -18
  124. package/wiki/references/base/filter-system/list-operators.md +4 -3
  125. package/wiki/references/base/filter-system/logical-operators.md +7 -2
  126. package/wiki/references/base/filter-system/null-operators.md +50 -0
  127. package/wiki/references/base/filter-system/quick-reference.md +82 -243
  128. package/wiki/references/base/filter-system/range-operators.md +7 -1
  129. package/wiki/references/base/filter-system/tips.md +34 -7
  130. package/wiki/references/base/filter-system/use-cases.md +6 -5
  131. package/wiki/references/base/grpc-controllers.md +984 -0
  132. package/wiki/references/base/index.md +32 -24
  133. package/wiki/references/base/middleware.md +347 -0
  134. package/wiki/references/base/models.md +390 -46
  135. package/wiki/references/base/providers.md +14 -14
  136. package/wiki/references/base/repositories/advanced.md +195 -69
  137. package/wiki/references/base/repositories/index.md +447 -12
  138. package/wiki/references/base/repositories/mixins.md +103 -98
  139. package/wiki/references/base/repositories/relations.md +129 -45
  140. package/wiki/references/base/repositories/soft-deletable.md +104 -23
  141. package/wiki/references/base/services.md +94 -14
  142. package/wiki/references/index.md +12 -10
  143. package/wiki/references/quick-reference.md +98 -65
  144. package/wiki/references/utilities/crypto.md +21 -4
  145. package/wiki/references/utilities/date.md +25 -7
  146. package/wiki/references/utilities/index.md +26 -24
  147. package/wiki/references/utilities/jsx.md +54 -54
  148. package/wiki/references/utilities/module.md +8 -6
  149. package/wiki/references/utilities/parse.md +16 -9
  150. package/wiki/references/utilities/performance.md +22 -7
  151. package/wiki/references/utilities/promise.md +19 -16
  152. package/wiki/references/utilities/request.md +48 -26
  153. package/wiki/references/utilities/schema.md +69 -6
  154. package/wiki/references/utilities/statuses.md +131 -140
  155. /package/wiki/{references → extensions}/components/mail/api.md +0 -0
  156. /package/wiki/{references → extensions}/components/mail/errors.md +0 -0
  157. /package/wiki/{references → extensions}/components/mail/usage.md +0 -0
  158. /package/wiki/{references → extensions}/components/template/api-page.md +0 -0
  159. /package/wiki/{references → extensions}/components/template/errors-page.md +0 -0
  160. /package/wiki/{references → extensions}/components/template/usage-page.md +0 -0
  161. /package/wiki/{references → extensions}/helpers/cron/index.md +0 -0
  162. /package/wiki/{references → extensions}/helpers/inversion/index.md +0 -0
  163. /package/wiki/{references → extensions}/helpers/network/api.md +0 -0
  164. /package/wiki/{references → extensions}/helpers/network/index.md +0 -0
  165. /package/wiki/{references → extensions}/helpers/redis/index.md +0 -0
  166. /package/wiki/{references → extensions}/helpers/socket-io/api.md +0 -0
  167. /package/wiki/{references → extensions}/helpers/socket-io/index.md +0 -0
  168. /package/wiki/{references → extensions}/helpers/template/single-page.md +0 -0
  169. /package/wiki/{references → extensions}/helpers/uid/index.md +0 -0
  170. /package/wiki/{references → extensions}/helpers/websocket/api.md +0 -0
  171. /package/wiki/{references → extensions}/helpers/worker-thread/index.md +0 -0
  172. /package/wiki/{references → extensions}/src-details/mcp-server.md +0 -0
@@ -28,7 +28,7 @@ cd ecommerce-api
28
28
  bun init -y
29
29
 
30
30
  # Install dependencies
31
- bun add hono @hono/zod-openapi @venizia/ignis dotenv-flow
31
+ bun add hono @hono/zod-openapi @venizia/ignis @venizia/ignis-helpers
32
32
  bun add drizzle-orm drizzle-zod pg stripe
33
33
  bun add -d typescript @types/bun @venizia/dev-configs drizzle-kit @types/pg
34
34
  ```
@@ -57,9 +57,19 @@ ecommerce-api/
57
57
  │ │ ├── order.service.ts
58
58
  │ │ └── payment.service.ts
59
59
  │ ├── controllers/
60
- │ │ ├── product.controller.ts
61
- │ │ ├── cart.controller.ts
62
- │ │ └── order.controller.ts
60
+ │ │ ├── product/
61
+ │ │ ├── definitions.ts
62
+ │ │ │ ├── product.controller.ts
63
+ │ │ │ └── index.ts
64
+ │ │ ├── cart/
65
+ │ │ │ ├── definitions.ts
66
+ │ │ │ ├── cart.controller.ts
67
+ │ │ │ └── index.ts
68
+ │ │ ├── order/
69
+ │ │ │ ├── definitions.ts
70
+ │ │ │ ├── order.controller.ts
71
+ │ │ │ └── index.ts
72
+ │ │ └── index.ts
63
73
  │ └── datasources/
64
74
  │ └── postgres.datasource.ts
65
75
  └── package.json
@@ -314,7 +324,6 @@ export * from './order.model';
314
324
  import {
315
325
  BaseDataSource,
316
326
  datasource,
317
- TNodePostgresConnector,
318
327
  ValueOrPromise,
319
328
  } from '@venizia/ignis';
320
329
  import { drizzle } from 'drizzle-orm/node-postgres';
@@ -329,7 +338,7 @@ interface IDSConfigs {
329
338
  }
330
339
 
331
340
  @datasource({ driver: 'node-postgres' })
332
- export class PostgresDataSource extends BaseDataSource<TNodePostgresConnector, IDSConfigs> {
341
+ export class PostgresDataSource extends BaseDataSource<IDSConfigs> {
333
342
  constructor() {
334
343
  super({
335
344
  name: PostgresDataSource.name,
@@ -490,7 +499,7 @@ import { getError } from '@venizia/ignis-helpers';
490
499
  @injectable()
491
500
  export class ProductService extends BaseService {
492
501
  constructor(
493
- @inject('repositories.ProductRepository')
502
+ @inject({ key: 'repositories.ProductRepository' })
494
503
  private _productRepo: ProductRepository,
495
504
  ) {
496
505
  super({ scope: ProductService.name });
@@ -563,9 +572,9 @@ interface ICartItem {
563
572
  @injectable()
564
573
  export class CartService extends BaseService {
565
574
  constructor(
566
- @inject('repositories.CartRepository')
575
+ @inject({ key: 'repositories.CartRepository' })
567
576
  private _cartRepo: CartRepository,
568
- @inject('services.ProductService')
577
+ @inject({ key: 'services.ProductService' })
569
578
  private _productService: ProductService,
570
579
  ) {
571
580
  super({ scope: CartService.name });
@@ -715,13 +724,13 @@ interface ICreateOrderInput {
715
724
  @injectable()
716
725
  export class OrderService extends BaseService {
717
726
  constructor(
718
- @inject('repositories.OrderRepository')
727
+ @inject({ key: 'repositories.OrderRepository' })
719
728
  private _orderRepo: OrderRepository,
720
- @inject('services.CartService')
729
+ @inject({ key: 'services.CartService' })
721
730
  private _cartService: CartService,
722
- @inject('services.ProductService')
731
+ @inject({ key: 'services.ProductService' })
723
732
  private _productService: ProductService,
724
- @inject('services.PaymentService')
733
+ @inject({ key: 'services.PaymentService' })
725
734
  private _paymentService: PaymentService,
726
735
  ) {
727
736
  super({ scope: OrderService.name });
@@ -915,10 +924,10 @@ export class PaymentService extends BaseService {
915
924
  ### Product Controller
916
925
 
917
926
  ```typescript
918
- // src/controllers/product.controller.ts
927
+ // src/controllers/product/product.controller.ts
919
928
  import { z } from '@hono/zod-openapi';
920
929
  import {
921
- BaseController,
930
+ BaseRestController,
922
931
  controller,
923
932
  get,
924
933
  inject,
@@ -968,9 +977,9 @@ const ProductRoutes = {
968
977
  type ProductRoutes = typeof ProductRoutes;
969
978
 
970
979
  @controller({ path: '/products' })
971
- export class ProductController extends BaseController {
980
+ export class ProductController extends BaseRestController {
972
981
  constructor(
973
- @inject('services.ProductService')
982
+ @inject({ key: 'services.ProductService' })
974
983
  private _productService: ProductService,
975
984
  ) {
976
985
  super({ scope: ProductController.name, path: '/products' });
@@ -1003,10 +1012,10 @@ export class ProductController extends BaseController {
1003
1012
  ### Cart Controller
1004
1013
 
1005
1014
  ```typescript
1006
- // src/controllers/cart.controller.ts
1015
+ // src/controllers/cart/cart.controller.ts
1007
1016
  import { z } from '@hono/zod-openapi';
1008
1017
  import {
1009
- BaseController,
1018
+ BaseRestController,
1010
1019
  controller,
1011
1020
  get,
1012
1021
  post,
@@ -1083,9 +1092,9 @@ const CartRoutes = {
1083
1092
  type CartRoutes = typeof CartRoutes;
1084
1093
 
1085
1094
  @controller({ path: '/cart' })
1086
- export class CartController extends BaseController {
1095
+ export class CartController extends BaseRestController {
1087
1096
  constructor(
1088
- @inject('services.CartService')
1097
+ @inject({ key: 'services.CartService' })
1089
1098
  private _cartService: CartService,
1090
1099
  ) {
1091
1100
  super({ scope: CartController.name, path: '/cart' });
@@ -1142,10 +1151,10 @@ export class CartController extends BaseController {
1142
1151
  ### Order Controller
1143
1152
 
1144
1153
  ```typescript
1145
- // src/controllers/order.controller.ts
1154
+ // src/controllers/order/order.controller.ts
1146
1155
  import { z } from '@hono/zod-openapi';
1147
1156
  import {
1148
- BaseController,
1157
+ BaseRestController,
1149
1158
  controller,
1150
1159
  get,
1151
1160
  post,
@@ -1223,9 +1232,9 @@ const OrderRoutes = {
1223
1232
  type OrderRoutes = typeof OrderRoutes;
1224
1233
 
1225
1234
  @controller({ path: '/orders' })
1226
- export class OrderController extends BaseController {
1235
+ export class OrderController extends BaseRestController {
1227
1236
  constructor(
1228
- @inject('services.OrderService')
1237
+ @inject({ key: 'services.OrderService' })
1229
1238
  private _orderService: OrderService,
1230
1239
  ) {
1231
1240
  super({ scope: OrderController.name, path: '/orders' });
@@ -1265,9 +1274,9 @@ export class OrderController extends BaseController {
1265
1274
  import { BaseApplication, IApplicationInfo } from '@venizia/ignis';
1266
1275
  import { HealthCheckComponent, SwaggerComponent } from '@venizia/ignis';
1267
1276
 
1268
- import { ProductController } from './controllers/product.controller';
1269
- import { CartController } from './controllers/cart.controller';
1270
- import { OrderController } from './controllers/order.controller';
1277
+ import { ProductController } from './controllers/product';
1278
+ import { CartController } from './controllers/cart';
1279
+ import { OrderController } from './controllers/order';
1271
1280
 
1272
1281
  import { ProductService } from './services/product.service';
1273
1282
  import { CartService } from './services/cart.service';
@@ -1393,7 +1402,7 @@ You've built a complete e-commerce API with:
1393
1402
 
1394
1403
  ## Next Steps
1395
1404
 
1396
- - Add user authentication with [Auth Component](/references/components/authentication/)
1397
- - Add order notifications with [Mail Component](/references/components/mail/)
1405
+ - Add user authentication with [Auth Component](/extensions/components/authentication/)
1406
+ - Add order notifications with [Mail Component](/extensions/components/mail/)
1398
1407
  - Add real-time updates with [Socket.IO](./realtime-chat.md)
1399
1408
  - 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
@@ -25,7 +25,7 @@ cd chat-api
25
25
  bun init -y
26
26
 
27
27
  # Install dependencies
28
- bun add hono @hono/zod-openapi @venizia/ignis dotenv-flow
28
+ bun add hono @hono/zod-openapi @venizia/ignis @venizia/ignis-helpers
29
29
  bun add drizzle-orm drizzle-zod pg
30
30
  bun add -d typescript @types/bun @venizia/dev-configs drizzle-kit @types/pg
31
31
 
@@ -241,7 +241,6 @@ export * from './message.model';
241
241
  import {
242
242
  BaseDataSource,
243
243
  datasource,
244
- TNodePostgresConnector,
245
244
  ValueOrPromise,
246
245
  } from '@venizia/ignis';
247
246
  import { drizzle } from 'drizzle-orm/node-postgres';
@@ -256,7 +255,7 @@ interface IDSConfigs {
256
255
  }
257
256
 
258
257
  @datasource({ driver: 'node-postgres' })
259
- export class PostgresDataSource extends BaseDataSource<TNodePostgresConnector, IDSConfigs> {
258
+ export class PostgresDataSource extends BaseDataSource<IDSConfigs> {
260
259
  constructor() {
261
260
  super({
262
261
  name: PostgresDataSource.name,
@@ -928,7 +927,7 @@ export class ChatService extends BaseService {
928
927
  ```
929
928
 
930
929
  > [!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.
930
+ > **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
931
 
933
932
  ## 6. Application Setup
934
933
 
@@ -953,7 +952,7 @@ import {
953
952
  SocketIOServerHelper,
954
953
  } from '@venizia/ignis-helpers';
955
954
  import { ChatService } from './services/chat.service';
956
- import { ChatController } from './controllers/chat.controller';
955
+ import { ChatController } from './controllers/chat';
957
956
  import { UserRepository } from './repositories/user.repository';
958
957
  import { RoomRepository, RoomMemberRepository } from './repositories/room.repository';
959
958
  import { MessageRepository, DirectMessageRepository } from './repositories/message.repository';
@@ -1124,10 +1123,10 @@ Client connects → 'authenticate' event → authenticateFn() → 'authenticated
1124
1123
  ## 7. REST API for Chat History
1125
1124
 
1126
1125
  ```typescript
1127
- // src/controllers/chat.controller.ts
1126
+ // src/controllers/chat/chat.controller.ts
1128
1127
  import { z } from '@hono/zod-openapi';
1129
1128
  import {
1130
- BaseController,
1129
+ BaseRestController,
1131
1130
  controller,
1132
1131
  inject,
1133
1132
  jsonResponse,
@@ -1182,7 +1181,7 @@ const ChatRoutes = {
1182
1181
  } as const;
1183
1182
 
1184
1183
  @controller({ path: '/chat' })
1185
- export class ChatController extends BaseController {
1184
+ export class ChatController extends BaseRestController {
1186
1185
  constructor(
1187
1186
  @inject({
1188
1187
  key: BindingKeys.build({
@@ -1513,7 +1512,7 @@ this.bind<RedisHelper>({
1513
1512
 
1514
1513
  ## Next Steps
1515
1514
 
1516
- - Add file/image sharing with [Storage Helper](/references/helpers/storage/)
1515
+ - Add file/image sharing with [Storage Helper](/extensions/helpers/storage/)
1517
1516
  - Add push notifications
1518
1517
  - Implement read receipts
1519
1518
  - Add message reactions
@@ -1521,6 +1520,6 @@ this.bind<RedisHelper>({
1521
1520
 
1522
1521
  ## See Also
1523
1522
 
1524
- - [Socket.IO Component](/references/components/socket-io/) — Component reference
1525
- - [Socket.IO Helper](/references/helpers/socket-io/) — Server + Client helper API
1523
+ - [Socket.IO Component](/extensions/components/socket-io/) — Component reference
1524
+ - [Socket.IO Helper](/extensions/helpers/socket-io/) — Server + Client helper API
1526
1525
  - [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>