@venizia/ignis-docs 0.2.0 → 0.2.1-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 (174) hide show
  1. package/README.md +14 -14
  2. package/content/best-practices/api-usage-examples.md +39 -19
  3. package/content/best-practices/architectural-patterns.md +24 -13
  4. package/content/best-practices/architecture-decisions.md +29 -16
  5. package/content/best-practices/code-style-standards/advanced-patterns.md +43 -31
  6. package/content/best-practices/code-style-standards/constants-configuration.md +19 -4
  7. package/content/best-practices/code-style-standards/control-flow.md +33 -1
  8. package/content/best-practices/code-style-standards/documentation.md +28 -8
  9. package/content/best-practices/code-style-standards/function-patterns.md +15 -4
  10. package/content/best-practices/code-style-standards/index.md +7 -2
  11. package/content/best-practices/code-style-standards/naming-conventions.md +27 -3
  12. package/content/best-practices/code-style-standards/route-definitions.md +9 -5
  13. package/content/best-practices/code-style-standards/tooling.md +14 -1
  14. package/content/best-practices/code-style-standards/type-safety.md +39 -6
  15. package/content/best-practices/common-pitfalls.md +59 -35
  16. package/content/best-practices/contribution-workflow.md +8 -4
  17. package/content/best-practices/data-modeling.md +78 -62
  18. package/content/best-practices/deployment-strategies.md +56 -19
  19. package/content/best-practices/error-handling.md +247 -153
  20. package/content/best-practices/index.md +6 -0
  21. package/content/best-practices/performance-optimization.md +26 -13
  22. package/content/best-practices/security-guidelines.md +35 -9
  23. package/content/best-practices/testing-strategies.md +7 -2
  24. package/content/best-practices/troubleshooting-tips.md +27 -17
  25. package/content/extensions/components/api-reference.md +109 -323
  26. package/content/extensions/components/authentication/api.md +489 -602
  27. package/content/extensions/components/authentication/errors.md +135 -498
  28. package/content/extensions/components/authentication/index.md +89 -801
  29. package/content/extensions/components/authentication/usage.md +231 -955
  30. package/content/extensions/components/authorization/api.md +991 -644
  31. package/content/extensions/components/authorization/errors.md +204 -208
  32. package/content/extensions/components/authorization/getting-started.md +227 -0
  33. package/content/extensions/components/authorization/index.md +88 -795
  34. package/content/extensions/components/authorization/usage.md +219 -528
  35. package/content/extensions/components/health-check.md +77 -243
  36. package/content/extensions/components/index.md +24 -90
  37. package/content/extensions/components/mail/api.md +553 -285
  38. package/content/extensions/components/mail/errors.md +76 -62
  39. package/content/extensions/components/mail/index.md +111 -463
  40. package/content/extensions/components/mail/usage.md +139 -173
  41. package/content/extensions/components/request-tracker.md +70 -173
  42. package/content/extensions/components/socket-io/api.md +462 -785
  43. package/content/extensions/components/socket-io/errors.md +49 -51
  44. package/content/extensions/components/socket-io/index.md +69 -372
  45. package/content/extensions/components/socket-io/usage.md +212 -105
  46. package/content/extensions/components/static-asset/api.md +461 -141
  47. package/content/extensions/components/static-asset/errors.md +121 -53
  48. package/content/extensions/components/static-asset/index.md +84 -606
  49. package/content/extensions/components/static-asset/usage.md +184 -299
  50. package/content/extensions/components/template/index.md +3 -3
  51. package/content/extensions/components/websocket/api.md +311 -404
  52. package/content/extensions/components/websocket/errors.md +47 -56
  53. package/content/extensions/components/websocket/index.md +75 -407
  54. package/content/extensions/components/websocket/usage.md +120 -338
  55. package/content/extensions/helpers/cron/index.md +52 -160
  56. package/content/extensions/helpers/crypto/index.md +67 -480
  57. package/content/extensions/helpers/crypto/reference.md +528 -0
  58. package/content/extensions/helpers/env/index.md +64 -178
  59. package/content/extensions/helpers/error/index.md +286 -196
  60. package/content/extensions/helpers/index.md +61 -47
  61. package/content/extensions/helpers/inversion/index.md +76 -550
  62. package/content/extensions/helpers/inversion/reference.md +530 -0
  63. package/content/extensions/helpers/kafka/admin.md +23 -3
  64. package/content/extensions/helpers/kafka/compile-binary.md +83 -52
  65. package/content/extensions/helpers/kafka/consumer.md +65 -28
  66. package/content/extensions/helpers/kafka/examples.md +46 -253
  67. package/content/extensions/helpers/kafka/index.md +55 -617
  68. package/content/extensions/helpers/kafka/producer.md +156 -22
  69. package/content/extensions/helpers/kafka/schema-registry.md +59 -79
  70. package/content/extensions/helpers/logger/hf-logger.md +220 -0
  71. package/content/extensions/helpers/logger/index.md +78 -552
  72. package/content/extensions/helpers/logger/pino.md +105 -0
  73. package/content/extensions/helpers/logger/reference.md +937 -0
  74. package/content/extensions/helpers/network/api.md +276 -195
  75. package/content/extensions/helpers/network/index.md +87 -524
  76. package/content/extensions/helpers/queue/index.md +80 -897
  77. package/content/extensions/helpers/queue/reference.md +494 -0
  78. package/content/extensions/helpers/redis/index.md +86 -640
  79. package/content/extensions/helpers/redis/reference.md +784 -0
  80. package/content/extensions/helpers/secrets/index.md +136 -0
  81. package/content/extensions/helpers/socket-io/api.md +325 -204
  82. package/content/extensions/helpers/socket-io/index.md +79 -429
  83. package/content/extensions/helpers/storage/api.md +584 -464
  84. package/content/extensions/helpers/storage/index.md +80 -573
  85. package/content/extensions/helpers/types/index.md +75 -495
  86. package/content/extensions/helpers/types/reference.md +689 -0
  87. package/content/extensions/helpers/uid/index.md +176 -189
  88. package/content/extensions/helpers/websocket/api.md +366 -214
  89. package/content/extensions/helpers/websocket/index.md +68 -503
  90. package/content/extensions/helpers/worker-thread/index.md +62 -396
  91. package/content/extensions/helpers/worker-thread/reference.md +428 -0
  92. package/content/extensions/index.md +38 -39
  93. package/content/extensions/src-details/mcp-server.md +96 -548
  94. package/content/guides/core-concepts/persistent/datasources.md +2 -2
  95. package/content/guides/core-concepts/persistent/index.md +5 -1
  96. package/content/guides/core-concepts/persistent/models.md +1 -1
  97. package/content/guides/core-concepts/persistent/pglite.md +218 -0
  98. package/content/guides/core-concepts/persistent/postgres-drivers.md +21 -15
  99. package/content/guides/core-concepts/persistent/search-meilisearch.md +22 -12
  100. package/content/guides/core-concepts/persistent/search-typesense.md +28 -16
  101. package/content/guides/core-concepts/persistent/sqlite.md +296 -0
  102. package/content/guides/core-concepts/persistent/transactions.md +12 -11
  103. package/content/guides/core-concepts/secrets-vault.md +177 -0
  104. package/content/guides/core-concepts/services.md +1 -1
  105. package/content/guides/get-started/5-minute-quickstart.md +59 -206
  106. package/content/guides/get-started/philosophy.md +135 -670
  107. package/content/guides/get-started/setup.md +53 -74
  108. package/content/guides/migrations/redis-helpers-migration.md +5 -4
  109. package/content/guides/migrations/scoped-rbac-migration.md +5 -5
  110. package/content/guides/migrations/unified-connectors-migration.md +8 -7
  111. package/content/guides/tutorials/ecommerce-api.md +3 -8
  112. package/content/guides/tutorials/realtime-chat.md +1 -1
  113. package/content/references/base/application.md +64 -22
  114. package/content/references/base/components.md +3 -3
  115. package/content/references/base/connectors.md +79 -136
  116. package/content/references/base/controllers.md +12 -12
  117. package/content/references/base/datasources-reference.md +600 -0
  118. package/content/references/base/datasources.md +84 -444
  119. package/content/references/base/dependency-injection.md +25 -46
  120. package/content/references/base/filter-system/application-usage.md +95 -123
  121. package/content/references/base/filter-system/array-operators.md +33 -43
  122. package/content/references/base/filter-system/comparison-operators.md +55 -63
  123. package/content/references/base/filter-system/default-filter.md +144 -350
  124. package/content/references/base/filter-system/fields-order-pagination.md +116 -148
  125. package/content/references/base/filter-system/index.md +114 -253
  126. package/content/references/base/filter-system/json-filtering.md +52 -181
  127. package/content/references/base/filter-system/list-operators.md +28 -44
  128. package/content/references/base/filter-system/logical-operators.md +69 -114
  129. package/content/references/base/filter-system/null-operators.md +41 -98
  130. package/content/references/base/filter-system/pattern-matching.md +48 -51
  131. package/content/references/base/filter-system/quick-reference.md +93 -196
  132. package/content/references/base/filter-system/range-operators.md +22 -38
  133. package/content/references/base/filter-system/tips.md +70 -133
  134. package/content/references/base/filter-system/use-cases.md +173 -232
  135. package/content/references/base/grpc-controllers.md +53 -17
  136. package/content/references/base/index.md +5 -3
  137. package/content/references/base/middlewares.md +43 -28
  138. package/content/references/base/models-reference.md +886 -0
  139. package/content/references/base/models.md +81 -1452
  140. package/content/references/base/providers.md +8 -8
  141. package/content/references/base/repositories/advanced.md +281 -419
  142. package/content/references/base/repositories/index.md +84 -644
  143. package/content/references/base/repositories/mixins.md +25 -21
  144. package/content/references/base/repositories/relations.md +194 -375
  145. package/content/references/base/repositories/soft-deletable.md +67 -55
  146. package/content/references/base/secrets.md +267 -0
  147. package/content/references/base/services.md +8 -6
  148. package/content/references/configuration/environment-variables.md +73 -21
  149. package/content/references/configuration/index.md +51 -31
  150. package/content/references/index.md +1 -1
  151. package/content/references/quick-reference.md +3 -16
  152. package/content/references/utilities/crypto.md +35 -76
  153. package/content/references/utilities/date.md +33 -73
  154. package/content/references/utilities/duration.md +85 -0
  155. package/content/references/utilities/index.md +6 -2
  156. package/content/references/utilities/jsx-reference.md +298 -0
  157. package/content/references/utilities/jsx.md +82 -525
  158. package/content/references/utilities/module.md +81 -61
  159. package/content/references/utilities/parse.md +34 -64
  160. package/content/references/utilities/performance.md +33 -58
  161. package/content/references/utilities/promise.md +28 -62
  162. package/content/references/utilities/request.md +58 -218
  163. package/content/references/utilities/retry.md +139 -0
  164. package/content/references/utilities/schema.md +43 -137
  165. package/content/references/utilities/statuses-reference.md +361 -0
  166. package/content/references/utilities/statuses.md +63 -667
  167. package/dist/mcp-server/index.js +0 -0
  168. package/dist/mcp-server/tools/github/list-project-files.tool.d.ts +1 -1
  169. package/dist/mcp-server/tools/github/list-project-files.tool.d.ts.map +1 -1
  170. package/dist/mcp-server/tools/github/list-project-files.tool.js +3 -3
  171. package/dist/mcp-server/tools/github/search-code.tool.js +1 -1
  172. package/dist/mcp-server/tools/github/verify-dependencies.tool.js +1 -1
  173. package/dist/mcp-server/tools/github/view-source-file.tool.js +1 -1
  174. package/package.json +24 -23
@@ -1,46 +1,52 @@
1
- # Socket.IO -- Error Reference
1
+ ---
2
+ title: Socket.IO Component - Error Reference
3
+ description: Error conditions, failure messages, and troubleshooting for the Socket.IO component, server helper, and client helper
4
+ difficulty: intermediate
5
+ ---
2
6
 
3
- > Error conditions, failure messages, and troubleshooting for the Socket.IO component, server helper, and client helper.
7
+ # Error Reference
4
8
 
5
- ## Error Conditions
9
+ Every error condition the Socket.IO component and its two helpers can raise, plus fixes for the ones you'll actually hit.
6
10
 
7
- ### Component Errors
11
+ ## Error conditions
8
12
 
9
- | Method | Condition | Error Message |
10
- |--------|-----------|---------------|
13
+ ### Component errors
14
+
15
+ | Method | Condition | Error message |
16
+ |---|---|---|
11
17
  | `binding()` | `application` is falsy | `"[binding] Invalid application to bind SocketIOComponent"` |
12
18
  | `binding()` | Unsupported runtime | `"[SocketIOComponent] Unsupported runtime: <runtime>"` |
13
- | `resolveBindings()` | `REDIS_CONNECTION` not instanceof `AbstractRedisHelper` | `"Invalid instance of redisConnection | Please init connection with RedisSingleHelper for single redis connection, RedisClusterHelper for cluster mode, or RedisSentinelHelper for sentinel mode!"` |
19
+ | `resolveBindings()` | `REDIS_CONNECTION` fails `isRedisHelper()` | `"Invalid instance of redisConnection..."` |
14
20
  | `resolveBindings()` | `AUTHENTICATE_HANDLER` is falsy | `"[DANGER][SocketIOComponent] Invalid authenticateFn to setup io socket server!"` |
15
21
  | `registerNodeHook()` | HTTP server not available | `"[SocketIOComponent] HTTP server not available for Node.js runtime!"` |
16
22
 
17
- ### Server Helper Errors
23
+ ### Server helper errors
18
24
 
19
- | Method | Condition | Error Message |
20
- |--------|-----------|---------------|
25
+ | Method | Condition | Error message |
26
+ |---|---|---|
21
27
  | `setRuntime()` | Node.js runtime, `server` missing | `"[SocketIOServerHelper] Invalid HTTP server for Node.js runtime!"` |
22
28
  | `setRuntime()` | Bun runtime, `engine` missing | `"[SocketIOServerHelper] Invalid @socket.io/bun-engine instance for Bun runtime!"` |
23
29
  | `setRuntime()` | Unknown runtime | `"[SocketIOServerHelper] Unsupported runtime!"` |
24
30
  | `initRedisClients()` | `redisConnection` is falsy | `"Invalid redis connection to config socket.io adapter!"` |
25
- | `initIOServer()` | Node.js runtime, `server` missing at configure time | `"[DANGER] Invalid HTTP server instance to init Socket.io server!"` |
26
- | `initIOServer()` | Bun runtime, `engine` missing at configure time | `"[DANGER] Invalid @socket.io/bun-engine instance to init Socket.io server!"` |
31
+ | `initIOServer()` | Node.js, `server` missing at configure time | `"[DANGER] Invalid HTTP server instance to init Socket.io server!"` |
32
+ | `initIOServer()` | Bun, `engine` missing at configure time | `"[DANGER] Invalid @socket.io/bun-engine instance to init Socket.io server!"` |
27
33
  | `initIOServer()` | Unknown runtime at configure time | `"[configure] Unsupported runtime: <runtime>"` |
28
34
  | `getEngine()` | Runtime is not Bun | `"[getEngine] Engine is only available for Bun runtime!"` |
29
35
  | `on()` | `topic` is empty | `"[on] Invalid topic to start binding handler"` |
30
- | `on()` | `handler` is falsy | `"[on] Invalid event handler | topic: <topic>"` |
36
+ | `on()` | `handler` is falsy | `"[on] Invalid event handler \| topic: <topic>"` |
31
37
  | `on()` | IO server not initialized | `"[on] IOServer is not initialized yet!"` |
32
38
 
33
- ### Client Helper Errors
39
+ ### Client helper errors
34
40
 
35
- | Method | Condition | Error Message |
36
- |--------|-----------|---------------|
37
- | `emit()` | Socket not connected | `"Invalid socket client state to emit"` (statusCode: 400) |
38
- | `emit()` | `topic` is falsy | `"Topic is required to emit"` (statusCode: 400) |
41
+ | Method | Condition | statusCode | Error message |
42
+ |---|---|---|---|
43
+ | `emit()` | Socket not connected | `400` | `"Invalid socket client state to emit"` |
44
+ | `emit()` | `topic` is falsy | `400` | `"Topic is required to emit"` |
39
45
 
40
- ### Server Authentication Errors (sent to client)
46
+ ### Server authentication errors (sent to the client)
41
47
 
42
48
  | Condition | Event | Message |
43
- |-----------|-------|---------|
49
+ |---|---|---|
44
50
  | `authenticateFn` returned `false` | `unauthenticated` | `"Invalid token to authenticate! Please login again!"` |
45
51
  | `authenticateFn` threw an error | `unauthenticated` | `"Failed to authenticate connection! Please login again!"` |
46
52
 
@@ -48,74 +54,66 @@
48
54
 
49
55
  ### "SocketIO not initialized"
50
56
 
51
- **Cause**: You're trying to use `SocketIOServerHelper` before the server has started (e.g., during DI construction).
52
-
53
- **Fix**: Use the lazy getter pattern shown in the [Usage & Examples](./usage) page. Never `@inject` `SOCKET_IO_INSTANCE` directly in a constructor -- it doesn't exist yet at construction time.
57
+ - **Cause:** You used `SocketIOServerHelper` before the server started - typically during DI construction.
58
+ - **Fix:** Use the lazy getter pattern from [Usage & Examples](./usage#inject-the-helper-in-a-service-or-controller). Never `@inject` `SOCKET_IO_INSTANCE` in a constructor - it doesn't exist yet at that point.
54
59
 
55
60
  ### "Invalid instance of redisConnection"
56
61
 
57
- **Cause**: The value bound to `REDIS_CONNECTION` is not an instance of `AbstractRedisHelper` (i.e. not a `RedisSingleHelper`, `RedisClusterHelper`, or `RedisSentinelHelper`).
58
-
59
- **Fix**: Use one of the concrete topology helpers:
62
+ - **Cause:** The value bound to `REDIS_CONNECTION` isn't an `AbstractRedisHelper` instance - not a `RedisSingleHelper`, `RedisClusterHelper`, or `RedisSentinelHelper`.
63
+ - **Fix:** Bind one of the concrete topology helpers, never a raw `ioredis` client.
60
64
 
61
65
  ```typescript
62
66
  import { SocketIOBindingKeys } from '@venizia/ignis/socket-io';
63
67
 
64
- // Correct -- single instance
68
+ // Correct - single instance
65
69
  this.bind({ key: SocketIOBindingKeys.REDIS_CONNECTION })
66
70
  .toValue(new RedisSingleHelper({ name: 'socket-io', host, port, password }));
67
71
 
68
- // Correct -- cluster mode
72
+ // Correct - cluster mode
69
73
  this.bind({ key: SocketIOBindingKeys.REDIS_CONNECTION })
70
74
  .toValue(new RedisClusterHelper({ name: 'socket-io', nodes, password }));
71
75
 
72
- // Wrong -- raw ioredis client
73
- this.bind({ key: SocketIOBindingKeys.REDIS_CONNECTION })
74
- .toValue(new Redis(6379)); // This is NOT an AbstractRedisHelper!
76
+ // Wrong - raw ioredis client, not an AbstractRedisHelper
77
+ this.bind({ key: SocketIOBindingKeys.REDIS_CONNECTION }).toValue(new Redis(6379));
75
78
  ```
76
79
 
77
80
  ### "Cannot find module '@socket.io/bun-engine'"
78
81
 
79
- **Cause**: Running on Bun runtime without the optional peer dependency installed.
80
-
81
- **Fix**: `bun add @socket.io/bun-engine`
82
+ - **Cause:** Running on Bun without the optional peer dependency installed.
83
+ - **Fix:** `bun add @socket.io/bun-engine`
82
84
 
83
85
  ### Socket.IO connects but events aren't received
84
86
 
85
- **Cause**: Clients must emit `authenticate` after connecting. Unauthenticated clients are disconnected after the timeout (default: 10 seconds).
86
-
87
- **Fix**: Ensure your client emits the authenticate event:
87
+ - **Cause:** The client never emitted `authenticate`. Unauthenticated clients are disconnected after the timeout (default: 10 seconds).
88
+ - **Fix:** Emit `authenticate` right after connecting.
88
89
 
89
90
  ```typescript
90
91
  socket.on('connect', () => {
91
92
  socket.emit('authenticate');
92
93
  });
93
94
 
94
- socket.on('authenticated', (data) => {
95
+ socket.on('authenticated', data => {
95
96
  // Now ready to send/receive events
96
97
  });
97
98
  ```
98
99
 
99
100
  ### "Invalid socket client state to emit"
100
101
 
101
- **Cause**: Calling `emit()` on `SocketIOClientHelper` when the socket is not connected.
102
-
103
- **Fix**: Ensure the socket is connected before emitting. Check `client.getSocketClient().connected` or wait for the `onConnected` callback.
102
+ - **Cause:** You called `emit()` on `SocketIOClientHelper` while the socket wasn't connected.
103
+ - **Fix:** Confirm the socket is connected before emitting. Check `client.getSocketClient().connected`, or wait for the `onConnected` callback.
104
104
 
105
105
  ### Client disconnects immediately after connecting
106
106
 
107
- **Cause**: The authentication timeout expired (default: 10 seconds). The client connected but did not emit `authenticate` in time.
108
-
109
- **Fix**: Emit `authenticate` immediately on connect, or increase the `authenticateTimeout` in the server helper options.
107
+ - **Cause:** The authentication timeout expired (default: 10 seconds) before the client emitted `authenticate`.
108
+ - **Fix:** Emit `authenticate` immediately on connect, or raise `authenticateTimeout` in the server helper options.
110
109
 
111
110
  ### Room join requests are silently rejected
112
111
 
113
- **Cause**: No `validateRoomFn` is bound. Without a validation function, all room join requests are rejected by design (security-by-default).
114
-
115
- **Fix**: Bind a `VALIDATE_ROOM_HANDLER` that returns the list of allowed rooms.
112
+ - **Cause:** No `validateRoomFn` is bound. Every join is rejected by design when it's missing - security-by-default.
113
+ - **Fix:** Bind a `VALIDATE_ROOM_HANDLER` that returns the list of allowed rooms.
116
114
 
117
- ## See Also
115
+ ## See also
118
116
 
119
- - [Setup & Configuration](./) -- Quick reference, installation, bindings, constants
120
- - [Usage & Examples](./usage) -- Server-side usage, client helper, advanced patterns
121
- - [API Reference](./api) -- Architecture, method signatures, internals, types
117
+ - [Overview](./) - quick start, imports, common configuration tasks
118
+ - [Usage & Examples](./usage) - full setup steps, server-side usage, client helper, advanced patterns
119
+ - [Full Reference](./api) - architecture, configuration reference, method signatures, internals, types