@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.
- package/README.md +14 -14
- package/content/best-practices/api-usage-examples.md +39 -19
- package/content/best-practices/architectural-patterns.md +24 -13
- package/content/best-practices/architecture-decisions.md +29 -16
- package/content/best-practices/code-style-standards/advanced-patterns.md +43 -31
- package/content/best-practices/code-style-standards/constants-configuration.md +19 -4
- package/content/best-practices/code-style-standards/control-flow.md +33 -1
- package/content/best-practices/code-style-standards/documentation.md +28 -8
- package/content/best-practices/code-style-standards/function-patterns.md +15 -4
- package/content/best-practices/code-style-standards/index.md +7 -2
- package/content/best-practices/code-style-standards/naming-conventions.md +27 -3
- package/content/best-practices/code-style-standards/route-definitions.md +9 -5
- package/content/best-practices/code-style-standards/tooling.md +14 -1
- package/content/best-practices/code-style-standards/type-safety.md +39 -6
- package/content/best-practices/common-pitfalls.md +59 -35
- package/content/best-practices/contribution-workflow.md +8 -4
- package/content/best-practices/data-modeling.md +78 -62
- package/content/best-practices/deployment-strategies.md +56 -19
- package/content/best-practices/error-handling.md +247 -153
- package/content/best-practices/index.md +6 -0
- package/content/best-practices/performance-optimization.md +26 -13
- package/content/best-practices/security-guidelines.md +35 -9
- package/content/best-practices/testing-strategies.md +7 -2
- package/content/best-practices/troubleshooting-tips.md +27 -17
- package/content/extensions/components/api-reference.md +109 -323
- package/content/extensions/components/authentication/api.md +489 -602
- package/content/extensions/components/authentication/errors.md +135 -498
- package/content/extensions/components/authentication/index.md +89 -801
- package/content/extensions/components/authentication/usage.md +231 -955
- package/content/extensions/components/authorization/api.md +991 -644
- package/content/extensions/components/authorization/errors.md +204 -208
- package/content/extensions/components/authorization/getting-started.md +227 -0
- package/content/extensions/components/authorization/index.md +88 -795
- package/content/extensions/components/authorization/usage.md +219 -528
- package/content/extensions/components/health-check.md +77 -243
- package/content/extensions/components/index.md +24 -90
- package/content/extensions/components/mail/api.md +553 -285
- package/content/extensions/components/mail/errors.md +76 -62
- package/content/extensions/components/mail/index.md +111 -463
- package/content/extensions/components/mail/usage.md +139 -173
- package/content/extensions/components/request-tracker.md +70 -173
- package/content/extensions/components/socket-io/api.md +462 -785
- package/content/extensions/components/socket-io/errors.md +49 -51
- package/content/extensions/components/socket-io/index.md +69 -372
- package/content/extensions/components/socket-io/usage.md +212 -105
- package/content/extensions/components/static-asset/api.md +461 -141
- package/content/extensions/components/static-asset/errors.md +121 -53
- package/content/extensions/components/static-asset/index.md +84 -606
- package/content/extensions/components/static-asset/usage.md +184 -299
- package/content/extensions/components/template/index.md +3 -3
- package/content/extensions/components/websocket/api.md +311 -404
- package/content/extensions/components/websocket/errors.md +47 -56
- package/content/extensions/components/websocket/index.md +75 -407
- package/content/extensions/components/websocket/usage.md +120 -338
- package/content/extensions/helpers/cron/index.md +52 -160
- package/content/extensions/helpers/crypto/index.md +67 -480
- package/content/extensions/helpers/crypto/reference.md +528 -0
- package/content/extensions/helpers/env/index.md +64 -178
- package/content/extensions/helpers/error/index.md +286 -196
- package/content/extensions/helpers/index.md +61 -47
- package/content/extensions/helpers/inversion/index.md +76 -550
- package/content/extensions/helpers/inversion/reference.md +530 -0
- package/content/extensions/helpers/kafka/admin.md +23 -3
- package/content/extensions/helpers/kafka/compile-binary.md +83 -52
- package/content/extensions/helpers/kafka/consumer.md +65 -28
- package/content/extensions/helpers/kafka/examples.md +46 -253
- package/content/extensions/helpers/kafka/index.md +55 -617
- package/content/extensions/helpers/kafka/producer.md +156 -22
- package/content/extensions/helpers/kafka/schema-registry.md +59 -79
- package/content/extensions/helpers/logger/hf-logger.md +220 -0
- package/content/extensions/helpers/logger/index.md +78 -552
- package/content/extensions/helpers/logger/pino.md +105 -0
- package/content/extensions/helpers/logger/reference.md +937 -0
- package/content/extensions/helpers/network/api.md +276 -195
- package/content/extensions/helpers/network/index.md +87 -524
- package/content/extensions/helpers/queue/index.md +80 -897
- package/content/extensions/helpers/queue/reference.md +494 -0
- package/content/extensions/helpers/redis/index.md +86 -640
- package/content/extensions/helpers/redis/reference.md +784 -0
- package/content/extensions/helpers/secrets/index.md +136 -0
- package/content/extensions/helpers/socket-io/api.md +325 -204
- package/content/extensions/helpers/socket-io/index.md +79 -429
- package/content/extensions/helpers/storage/api.md +584 -464
- package/content/extensions/helpers/storage/index.md +80 -573
- package/content/extensions/helpers/types/index.md +75 -495
- package/content/extensions/helpers/types/reference.md +689 -0
- package/content/extensions/helpers/uid/index.md +176 -189
- package/content/extensions/helpers/websocket/api.md +366 -214
- package/content/extensions/helpers/websocket/index.md +68 -503
- package/content/extensions/helpers/worker-thread/index.md +62 -396
- package/content/extensions/helpers/worker-thread/reference.md +428 -0
- package/content/extensions/index.md +38 -39
- package/content/extensions/src-details/mcp-server.md +96 -548
- package/content/guides/core-concepts/persistent/datasources.md +2 -2
- package/content/guides/core-concepts/persistent/index.md +5 -1
- package/content/guides/core-concepts/persistent/models.md +1 -1
- package/content/guides/core-concepts/persistent/pglite.md +218 -0
- package/content/guides/core-concepts/persistent/postgres-drivers.md +21 -15
- package/content/guides/core-concepts/persistent/search-meilisearch.md +22 -12
- package/content/guides/core-concepts/persistent/search-typesense.md +28 -16
- package/content/guides/core-concepts/persistent/sqlite.md +296 -0
- package/content/guides/core-concepts/persistent/transactions.md +12 -11
- package/content/guides/core-concepts/secrets-vault.md +177 -0
- package/content/guides/core-concepts/services.md +1 -1
- package/content/guides/get-started/5-minute-quickstart.md +59 -206
- package/content/guides/get-started/philosophy.md +135 -670
- package/content/guides/get-started/setup.md +53 -74
- package/content/guides/migrations/redis-helpers-migration.md +5 -4
- package/content/guides/migrations/scoped-rbac-migration.md +5 -5
- package/content/guides/migrations/unified-connectors-migration.md +8 -7
- package/content/guides/tutorials/ecommerce-api.md +3 -8
- package/content/guides/tutorials/realtime-chat.md +1 -1
- package/content/references/base/application.md +64 -22
- package/content/references/base/components.md +3 -3
- package/content/references/base/connectors.md +79 -136
- package/content/references/base/controllers.md +12 -12
- package/content/references/base/datasources-reference.md +600 -0
- package/content/references/base/datasources.md +84 -444
- package/content/references/base/dependency-injection.md +25 -46
- package/content/references/base/filter-system/application-usage.md +95 -123
- package/content/references/base/filter-system/array-operators.md +33 -43
- package/content/references/base/filter-system/comparison-operators.md +55 -63
- package/content/references/base/filter-system/default-filter.md +144 -350
- package/content/references/base/filter-system/fields-order-pagination.md +116 -148
- package/content/references/base/filter-system/index.md +114 -253
- package/content/references/base/filter-system/json-filtering.md +52 -181
- package/content/references/base/filter-system/list-operators.md +28 -44
- package/content/references/base/filter-system/logical-operators.md +69 -114
- package/content/references/base/filter-system/null-operators.md +41 -98
- package/content/references/base/filter-system/pattern-matching.md +48 -51
- package/content/references/base/filter-system/quick-reference.md +93 -196
- package/content/references/base/filter-system/range-operators.md +22 -38
- package/content/references/base/filter-system/tips.md +70 -133
- package/content/references/base/filter-system/use-cases.md +173 -232
- package/content/references/base/grpc-controllers.md +53 -17
- package/content/references/base/index.md +5 -3
- package/content/references/base/middlewares.md +43 -28
- package/content/references/base/models-reference.md +886 -0
- package/content/references/base/models.md +81 -1452
- package/content/references/base/providers.md +8 -8
- package/content/references/base/repositories/advanced.md +281 -419
- package/content/references/base/repositories/index.md +84 -644
- package/content/references/base/repositories/mixins.md +25 -21
- package/content/references/base/repositories/relations.md +194 -375
- package/content/references/base/repositories/soft-deletable.md +67 -55
- package/content/references/base/secrets.md +267 -0
- package/content/references/base/services.md +8 -6
- package/content/references/configuration/environment-variables.md +73 -21
- package/content/references/configuration/index.md +51 -31
- package/content/references/index.md +1 -1
- package/content/references/quick-reference.md +3 -16
- package/content/references/utilities/crypto.md +35 -76
- package/content/references/utilities/date.md +33 -73
- package/content/references/utilities/duration.md +85 -0
- package/content/references/utilities/index.md +6 -2
- package/content/references/utilities/jsx-reference.md +298 -0
- package/content/references/utilities/jsx.md +82 -525
- package/content/references/utilities/module.md +81 -61
- package/content/references/utilities/parse.md +34 -64
- package/content/references/utilities/performance.md +33 -58
- package/content/references/utilities/promise.md +28 -62
- package/content/references/utilities/request.md +58 -218
- package/content/references/utilities/retry.md +139 -0
- package/content/references/utilities/schema.md +43 -137
- package/content/references/utilities/statuses-reference.md +361 -0
- package/content/references/utilities/statuses.md +63 -667
- package/dist/mcp-server/index.js +0 -0
- package/dist/mcp-server/tools/github/list-project-files.tool.d.ts +1 -1
- package/dist/mcp-server/tools/github/list-project-files.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/github/list-project-files.tool.js +3 -3
- package/dist/mcp-server/tools/github/search-code.tool.js +1 -1
- package/dist/mcp-server/tools/github/verify-dependencies.tool.js +1 -1
- package/dist/mcp-server/tools/github/view-source-file.tool.js +1 -1
- package/package.json +24 -23
|
@@ -1,46 +1,52 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
7
|
+
# Error Reference
|
|
4
8
|
|
|
5
|
-
|
|
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
|
-
|
|
11
|
+
## Error conditions
|
|
8
12
|
|
|
9
|
-
|
|
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`
|
|
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
|
|
23
|
+
### Server helper errors
|
|
18
24
|
|
|
19
|
-
| Method | Condition | Error
|
|
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
|
|
26
|
-
| `initIOServer()` | Bun
|
|
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
|
|
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
|
|
39
|
+
### Client helper errors
|
|
34
40
|
|
|
35
|
-
| Method | Condition | Error
|
|
36
|
-
|
|
37
|
-
| `emit()` | Socket not connected | `"Invalid socket client state to emit"`
|
|
38
|
-
| `emit()` | `topic` is falsy | `"Topic is required to emit"`
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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',
|
|
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
|
|
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
|
|
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
|
|
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
|
|
115
|
+
## See also
|
|
118
116
|
|
|
119
|
-
- [
|
|
120
|
-
- [Usage & Examples](./usage)
|
|
121
|
-
- [
|
|
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
|