@venizia/ignis-docs 0.0.5 → 0.0.6-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 (123) hide show
  1. package/package.json +1 -1
  2. package/wiki/best-practices/architectural-patterns.md +0 -2
  3. package/wiki/best-practices/architecture-decisions.md +0 -8
  4. package/wiki/best-practices/code-style-standards/control-flow.md +1 -1
  5. package/wiki/best-practices/code-style-standards/index.md +0 -1
  6. package/wiki/best-practices/code-style-standards/tooling.md +0 -3
  7. package/wiki/best-practices/contribution-workflow.md +12 -12
  8. package/wiki/best-practices/index.md +4 -14
  9. package/wiki/best-practices/performance-optimization.md +3 -3
  10. package/wiki/best-practices/security-guidelines.md +2 -2
  11. package/wiki/best-practices/troubleshooting-tips.md +1 -1
  12. package/wiki/guides/core-concepts/application/bootstrapping.md +6 -7
  13. package/wiki/guides/core-concepts/components-guide.md +1 -1
  14. package/wiki/guides/core-concepts/components.md +2 -2
  15. package/wiki/guides/core-concepts/dependency-injection.md +4 -5
  16. package/wiki/guides/core-concepts/persistent/datasources.md +4 -5
  17. package/wiki/guides/core-concepts/services.md +1 -1
  18. package/wiki/guides/get-started/5-minute-quickstart.md +4 -5
  19. package/wiki/guides/get-started/philosophy.md +12 -24
  20. package/wiki/guides/index.md +2 -9
  21. package/wiki/guides/reference/mcp-docs-server.md +13 -13
  22. package/wiki/guides/tutorials/building-a-crud-api.md +10 -10
  23. package/wiki/guides/tutorials/complete-installation.md +11 -12
  24. package/wiki/guides/tutorials/ecommerce-api.md +3 -3
  25. package/wiki/guides/tutorials/realtime-chat.md +6 -6
  26. package/wiki/guides/tutorials/testing.md +4 -5
  27. package/wiki/index.md +8 -14
  28. package/wiki/references/base/bootstrapping.md +0 -3
  29. package/wiki/references/base/components.md +2 -2
  30. package/wiki/references/base/controllers.md +0 -1
  31. package/wiki/references/base/datasources.md +1 -1
  32. package/wiki/references/base/dependency-injection.md +2 -2
  33. package/wiki/references/base/filter-system/default-filter.md +2 -3
  34. package/wiki/references/base/filter-system/index.md +1 -1
  35. package/wiki/references/base/filter-system/quick-reference.md +0 -14
  36. package/wiki/references/base/middlewares.md +0 -8
  37. package/wiki/references/base/providers.md +0 -9
  38. package/wiki/references/base/repositories/advanced.md +1 -1
  39. package/wiki/references/base/repositories/mixins.md +2 -3
  40. package/wiki/references/base/services.md +0 -1
  41. package/wiki/references/components/authentication/api.md +444 -0
  42. package/wiki/references/components/authentication/errors.md +177 -0
  43. package/wiki/references/components/authentication/index.md +571 -0
  44. package/wiki/references/components/authentication/usage.md +781 -0
  45. package/wiki/references/components/health-check.md +292 -103
  46. package/wiki/references/components/index.md +14 -12
  47. package/wiki/references/components/mail/api.md +505 -0
  48. package/wiki/references/components/mail/errors.md +176 -0
  49. package/wiki/references/components/mail/index.md +535 -0
  50. package/wiki/references/components/mail/usage.md +404 -0
  51. package/wiki/references/components/request-tracker.md +229 -25
  52. package/wiki/references/components/socket-io/api.md +1051 -0
  53. package/wiki/references/components/socket-io/errors.md +119 -0
  54. package/wiki/references/components/socket-io/index.md +410 -0
  55. package/wiki/references/components/socket-io/usage.md +322 -0
  56. package/wiki/references/components/static-asset/api.md +261 -0
  57. package/wiki/references/components/static-asset/errors.md +89 -0
  58. package/wiki/references/components/static-asset/index.md +617 -0
  59. package/wiki/references/components/static-asset/usage.md +364 -0
  60. package/wiki/references/components/swagger.md +390 -110
  61. package/wiki/references/components/template/api-page.md +125 -0
  62. package/wiki/references/components/template/errors-page.md +100 -0
  63. package/wiki/references/components/template/index.md +104 -0
  64. package/wiki/references/components/template/setup-page.md +134 -0
  65. package/wiki/references/components/template/single-page.md +132 -0
  66. package/wiki/references/components/template/usage-page.md +127 -0
  67. package/wiki/references/components/websocket/api.md +508 -0
  68. package/wiki/references/components/websocket/errors.md +123 -0
  69. package/wiki/references/components/websocket/index.md +453 -0
  70. package/wiki/references/components/websocket/usage.md +475 -0
  71. package/wiki/references/helpers/cron/index.md +224 -0
  72. package/wiki/references/helpers/crypto/index.md +537 -0
  73. package/wiki/references/helpers/env/index.md +214 -0
  74. package/wiki/references/helpers/error/index.md +232 -0
  75. package/wiki/references/helpers/index.md +16 -15
  76. package/wiki/references/helpers/inversion/index.md +608 -0
  77. package/wiki/references/helpers/logger/index.md +600 -0
  78. package/wiki/references/helpers/network/api.md +986 -0
  79. package/wiki/references/helpers/network/index.md +620 -0
  80. package/wiki/references/helpers/queue/index.md +589 -0
  81. package/wiki/references/helpers/redis/index.md +495 -0
  82. package/wiki/references/helpers/socket-io/api.md +497 -0
  83. package/wiki/references/helpers/socket-io/index.md +513 -0
  84. package/wiki/references/helpers/storage/api.md +705 -0
  85. package/wiki/references/helpers/storage/index.md +583 -0
  86. package/wiki/references/helpers/template/index.md +66 -0
  87. package/wiki/references/helpers/template/single-page.md +126 -0
  88. package/wiki/references/helpers/testing/index.md +510 -0
  89. package/wiki/references/helpers/types/index.md +512 -0
  90. package/wiki/references/helpers/uid/index.md +272 -0
  91. package/wiki/references/helpers/websocket/api.md +736 -0
  92. package/wiki/references/helpers/websocket/index.md +574 -0
  93. package/wiki/references/helpers/worker-thread/index.md +470 -0
  94. package/wiki/references/index.md +2 -9
  95. package/wiki/references/quick-reference.md +3 -18
  96. package/wiki/references/utilities/jsx.md +1 -8
  97. package/wiki/references/utilities/statuses.md +0 -7
  98. package/wiki/references/components/authentication.md +0 -476
  99. package/wiki/references/components/mail.md +0 -687
  100. package/wiki/references/components/socket-io.md +0 -562
  101. package/wiki/references/components/static-asset.md +0 -1277
  102. package/wiki/references/helpers/cron.md +0 -108
  103. package/wiki/references/helpers/crypto.md +0 -132
  104. package/wiki/references/helpers/env.md +0 -83
  105. package/wiki/references/helpers/error.md +0 -97
  106. package/wiki/references/helpers/inversion.md +0 -176
  107. package/wiki/references/helpers/logger.md +0 -296
  108. package/wiki/references/helpers/network.md +0 -396
  109. package/wiki/references/helpers/queue.md +0 -150
  110. package/wiki/references/helpers/redis.md +0 -142
  111. package/wiki/references/helpers/socket-io.md +0 -932
  112. package/wiki/references/helpers/storage.md +0 -665
  113. package/wiki/references/helpers/testing.md +0 -133
  114. package/wiki/references/helpers/types.md +0 -167
  115. package/wiki/references/helpers/uid.md +0 -167
  116. package/wiki/references/helpers/worker-thread.md +0 -178
  117. package/wiki/references/src-details/boot.md +0 -379
  118. package/wiki/references/src-details/core.md +0 -263
  119. package/wiki/references/src-details/dev-configs.md +0 -298
  120. package/wiki/references/src-details/docs.md +0 -71
  121. package/wiki/references/src-details/helpers.md +0 -211
  122. package/wiki/references/src-details/index.md +0 -86
  123. package/wiki/references/src-details/inversion.md +0 -340
@@ -1,298 +0,0 @@
1
- # Package: `@venizia/dev-configs`
2
-
3
- ## Overview
4
-
5
- The `@venizia/dev-configs` package provides centralized, shared development configurations for all packages in the Venizia/Ignis monorepo. This ensures consistent code style, linting rules, and TypeScript configurations across the entire project.
6
-
7
- ## Package Information
8
-
9
- | Property | Value |
10
- |----------|-------|
11
- | **Package Name** | `@venizia/dev-configs` |
12
- | **Location** | `packages/dev-configs/` |
13
- | **Purpose** | Centralized development configurations |
14
- | **Dependencies** | `@minimaltech/eslint-node` |
15
-
16
- ## Exports
17
-
18
- | Export Path | Type | Description |
19
- |-------------|------|-------------|
20
- | `@venizia/dev-configs` | Module | Named exports: `eslintConfigs`, `prettierConfigs` |
21
- | `@venizia/dev-configs/tsconfig.base.json` | JSON | Base TypeScript configuration |
22
- | `@venizia/dev-configs/tsconfig.common.json` | JSON | Common TypeScript config for packages |
23
-
24
- ### Named Exports
25
-
26
- ```typescript
27
- import { eslintConfigs, prettierConfigs } from '@venizia/dev-configs';
28
- ```
29
-
30
- - **`eslintConfigs`**: `Linter.Config[]` - ESLint flat config array
31
- - **`prettierConfigs`**: `Config` - Prettier configuration object
32
-
33
- ---
34
-
35
- ## ESLint Configuration
36
-
37
- ### Usage
38
-
39
- Create an `eslint.config.mjs` file in your package:
40
-
41
- ```javascript
42
- import { eslintConfigs } from '@venizia/dev-configs';
43
-
44
- export default eslintConfigs;
45
- ```
46
-
47
- ### Extending the Config
48
-
49
- To add package-specific rules:
50
-
51
- ```javascript
52
- import { eslintConfigs } from '@venizia/dev-configs';
53
-
54
- const configs = [
55
- ...eslintConfigs,
56
- {
57
- // Add custom ignores
58
- ignores: ['custom-folder/**'],
59
- },
60
- {
61
- // Add custom rules
62
- rules: {
63
- 'no-console': 'warn',
64
- },
65
- },
66
- ];
67
-
68
- export default configs;
69
- ```
70
-
71
- ### Included Rules
72
-
73
- | Rule | Setting | Description |
74
- |------|---------|-------------|
75
- | `@typescript-eslint/no-explicit-any` | `off` | Allows `any` type usage |
76
- | *Base rules* | *inherited* | All rules from `@minimaltech/eslint-node` |
77
-
78
- ---
79
-
80
- ## Prettier Configuration
81
-
82
- ### Usage
83
-
84
- Create a `.prettierrc.mjs` file in your package:
85
-
86
- ```javascript
87
- import { prettierConfigs } from '@venizia/dev-configs';
88
-
89
- export default prettierConfigs;
90
- ```
91
-
92
- ### Configuration Options
93
-
94
- | Option | Value | Description |
95
- |--------|-------|-------------|
96
- | `bracketSpacing` | `true` | Spaces inside object braces: `{ foo: bar }` |
97
- | `singleQuote` | `false` | Use double quotes (changed from single) |
98
- | `printWidth` | `100` | Maximum line width |
99
- | `tabWidth` | `2` | Spaces per indentation level |
100
- | `trailingComma` | `'all'` | Trailing commas everywhere possible |
101
- | `arrowParens` | `'avoid'` | Omit parens for single arrow function params |
102
- | `semi` | `true` | Add semicolons at statement ends |
103
-
104
- ### Prettier Ignore
105
-
106
- Create a `.prettierignore` file in your package:
107
-
108
- ```
109
- dist
110
- node_modules
111
- *.log
112
- .*-audit.json
113
- ```
114
-
115
- Recommended ignore patterns:
116
- - `dist` - Build output
117
- - `node_modules` - Dependencies
118
- - `*.log` - Log files
119
- - `.*-audit.json` - Audit files
120
- - `coverage` - Test coverage (if applicable)
121
- - `*.min.js` - Minified files (if applicable)
122
-
123
-
124
- ## TypeScript Configuration
125
-
126
- ### Base Configuration (`tsconfig.base.json`)
127
-
128
- The base configuration includes all compiler options suitable for Node.js/Bun TypeScript projects.
129
-
130
- #### Usage
131
-
132
- ```json
133
- {
134
- "$schema": "http://json.schemastore.org/tsconfig",
135
- "extends": "@venizia/dev-configs/tsconfig.base.json",
136
- "compilerOptions": {
137
- "outDir": "dist",
138
- "rootDir": "src"
139
- },
140
- "include": ["src"],
141
- "exclude": ["node_modules", "dist"]
142
- }
143
- ```
144
-
145
- #### Compiler Options Summary
146
-
147
- | Category | Options |
148
- |----------|---------|
149
- | **Target** | ES2022, lib: ES2022 |
150
- | **Modules** | Node16, resolveJsonModule, esModuleInterop |
151
- | **Decorators** | experimentalDecorators, emitDecoratorMetadata |
152
- | **Emit** | declaration, declarationMap, sourceMap |
153
- | **Strict** | strict (with selective relaxations) |
154
- | **Performance** | incremental, skipLibCheck |
155
-
156
- #### Strict Mode Configuration
157
-
158
- | Option | Value | Rationale |
159
- |--------|-------|-----------|
160
- | `strict` | `true` | Enable all strict checks |
161
- | `noImplicitAny` | `false` | Allow implicit any for flexibility |
162
- | `strictNullChecks` | `true` | Enforce null safety |
163
- | `strictPropertyInitialization` | `false` | Allow uninitialized properties (for DI) |
164
- | `useUnknownInCatchVariables` | `false` | Use `any` in catch blocks |
165
-
166
- ### Common Configuration (`tsconfig.common.json`)
167
-
168
- Extends the base config with settings for standard packages:
169
-
170
- ```json
171
- {
172
- "$schema": "http://json.schemastore.org/tsconfig",
173
- "extends": "@venizia/dev-configs/tsconfig.common.json",
174
- "compilerOptions": {
175
- "outDir": "dist",
176
- "rootDir": "src",
177
- "baseUrl": "src",
178
- "paths": {
179
- "@/*": ["./*"]
180
- }
181
- },
182
- "include": ["src"],
183
- "exclude": ["node_modules", "dist"]
184
- }
185
- ```
186
-
187
- **Note:** Path-related options (`outDir`, `rootDir`, `baseUrl`, `paths`, `include`, `exclude`) must be defined in each package's tsconfig.json as they are resolved relative to the config file location.
188
-
189
-
190
- ## Project Structure
191
-
192
- ```
193
- packages/dev-configs/
194
- ├── package.json
195
- ├── tsconfig.json
196
- ├── src/
197
- │ ├── index.ts # Re-exports all configs
198
- │ ├── eslint.ts # ESLint configuration
199
- │ └── prettier.ts # Prettier configuration
200
- ├── tsconfig/
201
- │ ├── tsconfig.base.json # Base TypeScript config
202
- │ └── tsconfig.common.json # Common package config
203
- ├── prettier/
204
- │ └── .prettierignore # Prettier ignore patterns
205
- ├── scripts/
206
- │ ├── build.sh
207
- │ ├── clean.sh
208
- │ └── rebuild.sh
209
- └── dist/ # Built output
210
- ├── index.js / .d.ts
211
- ├── eslint.js / .d.ts
212
- └── prettier.js / .d.ts
213
- ```
214
-
215
-
216
- ## Integration Guide
217
-
218
- ### Adding to a New Package
219
-
220
- 1. Add the dependency to your `package.json`:
221
-
222
- ```json
223
- {
224
- "devDependencies": {
225
- "@venizia/dev-configs": "latest",
226
- "eslint": "^9.36.0",
227
- "prettier": "^3.6.2",
228
- "typescript": "^5.9.3"
229
- }
230
- }
231
- ```
232
-
233
- 2. Create configuration files:
234
-
235
- **`tsconfig.json`:**
236
- ```json
237
- {
238
- "$schema": "http://json.schemastore.org/tsconfig",
239
- "extends": "@venizia/dev-configs/tsconfig.common.json",
240
- "compilerOptions": {
241
- "outDir": "dist",
242
- "rootDir": "src",
243
- "baseUrl": "src",
244
- "paths": { "@/*": ["./*"] }
245
- },
246
- "include": ["src"],
247
- "exclude": ["node_modules", "dist"]
248
- }
249
- ```
250
-
251
- **`eslint.config.mjs`:**
252
- ```javascript
253
- import { eslintConfigs } from '@venizia/dev-configs';
254
-
255
- export default eslintConfigs;
256
- ```
257
-
258
- **`.prettierrc.mjs`:**
259
- ```javascript
260
- import { prettierConfigs } from '@venizia/dev-configs';
261
-
262
- export default prettierConfigs;
263
- ```
264
-
265
- **`.prettierignore`:**
266
- ```
267
- dist
268
- node_modules
269
- *.log
270
- .*-audit.json
271
- ```
272
-
273
- 3. Add lint scripts to `package.json`:
274
-
275
- ```json
276
- {
277
- "scripts": {
278
- "lint": "eslint --report-unused-disable-directives . && prettier \"**/*.{js,ts}\" -l",
279
- "lint:fix": "eslint --report-unused-disable-directives . --fix && prettier \"**/*.{js,ts}\" --write"
280
- }
281
- }
282
- ```
283
-
284
-
285
- ## Building the Package
286
-
287
- ```bash
288
- cd packages/dev-configs
289
-
290
- # Build
291
- bun run build
292
-
293
- # Clean
294
- bun run clean
295
-
296
- # Rebuild (clean + build)
297
- bun run rebuild
298
- ```
@@ -1,71 +0,0 @@
1
- # Package: `@venizia/ignis-docs`
2
-
3
- Documentation package housing guides, references, and MCP server for the Ignis framework.
4
-
5
- ## Quick Reference
6
-
7
- **Package:** Documentation built with VitePress + MCP server for external tool integration.
8
-
9
- ### Main Components
10
-
11
- | Component | Technology | Purpose |
12
- |-----------|------------|---------|
13
- | **Wiki** | VitePress | Main documentation site (guides + references) |
14
- | **MCP Server** | Model Context Protocol | External tool documentation discovery |
15
-
16
- ### Wiki Structure
17
-
18
- | Section | Content |
19
- |---------|---------|
20
- | `guides/` | Tutorials, quickstart, core concepts, best practices |
21
- | `references/` | API reference, components, helpers, base classes |
22
- | `.vitepress/` | Site configuration and theme |
23
-
24
- ## Project Structure Overview
25
-
26
- Top-level breakdown of the `packages/docs/` directory:
27
-
28
- | Folder | Purpose |
29
- | :--------------- | :--------------------------------------------------------------------------------- |
30
- | **`mcp-server`** | Contains the Model Context Protocol (MCP) server implementation for documentation and code search. |
31
- | **`wiki`** | The main documentation content, built using VitePress. |
32
-
33
- ---
34
-
35
- ## Detailed Sections
36
-
37
- ### `mcp-server`
38
-
39
- This directory contains the implementation of a Model Context Protocol (MCP) server, which allows external tools (AI assistants) to discover and read documentation resources, as well as search the source code.
40
-
41
- | File/Folder | Purpose/Key Details |
42
- | :---------- | :------------------ |
43
- | `index.ts` | Server entry point, tool registration, and CLI argument parsing |
44
- | `common/config.ts` | `MCPConfigs` class with server, GitHub, search, and Fuse.js settings |
45
- | `common/paths.ts` | Path resolution for wiki directory |
46
- | `helpers/docs.helper.ts` | `DocsHelper` for documentation loading, caching, and Fuse.js search |
47
- | `helpers/github.helper.ts` | `GithubHelper` for GitHub API integration (code search, file fetching) |
48
- | `helpers/logger.helper.ts` | Logging utilities |
49
- | `tools/base.tool.ts` | Abstract `BaseTool` class for all MCP tools |
50
- | `tools/docs/` | Documentation tools: `searchDocs`, `getDocContent`, `listDocs`, `listCategories`, `getDocMetadata`, `getPackageOverview` |
51
- | `tools/github/` | Code/project tools: `searchCode`, `listProjectFiles`, `viewSourceFile`, `verifyDependencies` |
52
-
53
- For detailed MCP server documentation, see [MCP Server Deep Dive](./mcp-server.md).
54
-
55
- ### `wiki`
56
-
57
- This directory holds the actual documentation content and the VitePress configuration for building the documentation website.
58
-
59
- | File/Folder | Purpose/Key Details |
60
- | :---------------------- | :----------------------------------------------------------------------------------------------------------------------------- |
61
- | `.vitepress/` | VitePress-specific configuration and theme files. |
62
- | `.vitepress/config.mts` | The main configuration file for VitePress, defining the documentation's title, description, navigation, and sidebar structure. |
63
- | `.vitepress/theme/` | Custom theme files for the VitePress documentation. |
64
- | `guides/` | Guides and tutorials for getting started with `Ignis`. |
65
- | `references/` | Detailed reference documentation for various aspects of the framework. |
66
- | `index.md` | The homepage content for the documentation site. |
67
- | `logo.svg` | The logo used in the documentation. |
68
-
69
- ---
70
-
71
- This detailed breakdown illustrates the modular and layered design of the `Ignis` framework, emphasizing its extensibility and adherence to robust architectural patterns.
@@ -1,211 +0,0 @@
1
- # Package: `@venizia/ignis-helpers`
2
-
3
- ## Helpers Package Directory: Detailed Breakdown
4
-
5
- The `@venizia/ignis-helpers` package consolidates a wide array of reusable helper classes and utility functions designed to support various cross-cutting concerns within the Ignis framework. This package promotes modularity by extracting common functionalities into a standalone, easily consumable library.
6
-
7
- ## Project Structure Overview
8
-
9
- Here's the top-level breakdown of the `src` directory within `@packages/helpers/`:
10
-
11
- | Folder | Purpose |
12
- | :-------------- | :----------------------------------------------------------------------------------------------------------- |
13
- | **`__tests__`** | Contains unit and integration tests for the helper utilities. |
14
- | **`base`** | Provides foundational helper classes, such as `BaseHelper`. |
15
- | **`common`** | Stores shared constants and types used across the helpers. |
16
- | **`helpers`** | A collection of specialized helper modules for various functionalities (e.g., cron, crypto, network, queue). |
17
- | **`utilities`** | Contains pure, standalone utility functions for common tasks (e.g., parsing, date manipulation). |
18
-
19
- ---
20
-
21
- ## Detailed Sections
22
-
23
- ### `__tests__`
24
-
25
- This directory is dedicated to the test suite for the `@venizia/ignis-helpers` package.
26
-
27
- | File/Folder | Purpose/Key Details |
28
- | :---------------------- | :------------------------------------------------------------------------- |
29
- | `index.ts` | Entry point for running tests within the helpers package. |
30
- | `jwt/` | Contains test cases specifically for JWT-related helper functions, if any. |
31
- | `jwt/test-cases/jwt.ts` | Example: defines `TestCase001` to check JWT creation in a helper context. |
32
-
33
- ### `base`
34
-
35
- This foundational layer provides base classes that other helpers extend.
36
-
37
- #### `base/helpers`
38
-
39
- | File/Folder | Purpose/Key Details |
40
- | :---------- | :--------------------------------------------------------------------------------------------------------------------------------------- |
41
- | `base.ts` | Defines `BaseHelper`, a generic base class providing common utilities like a logger instance and scope management for all other helpers. |
42
-
43
- ### `common`
44
-
45
- This directory holds various shared definitions and constants used throughout the helpers package.
46
-
47
- | File/Folder | Purpose/Key Details |
48
- | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------ |
49
- | `constants/` | Contains application-wide constants such as `HTTP` methods and status codes, `MimeTypes`, `RuntimeModules` (Bun, Node.js), and `DataTypes`. |
50
- | `types.ts` | Contains general TypeScript utility types like `ValueOrPromise`, `AnyObject`, `IClass`, `TMixinTarget`, and `IProvider`. |
51
-
52
- ### `helpers`
53
-
54
- This directory groups specialized helper modules by their functionality.
55
-
56
- #### `helpers/cron/`
57
-
58
- | File/Folder | Purpose/Key Details |
59
- | :--------------- | :--------------------------------------------------------------------------- |
60
- | `cron.helper.ts` | `CronHelper` for scheduling and managing cron jobs using the `cron` library. |
61
-
62
- #### `helpers/crypto/`
63
-
64
- Cryptographic utilities.
65
-
66
- | File/Folder | Purpose/Key Details |
67
- | :------------ | :------------------------------------------------ |
68
- | `algorithms/` | AES and RSA encryption/decryption algorithms. |
69
- | `common/` | Common types and constants for crypto operations. |
70
-
71
- #### `helpers/env/`
72
-
73
- | File/Folder | Purpose/Key Details |
74
- | :----------- | :----------------------------------------------------------------------- |
75
- | `app-env.ts` | `ApplicationEnvironment` for structured access to environment variables. |
76
-
77
- #### `helpers/error/`
78
-
79
- | File/Folder | Purpose/Key Details |
80
- | :------------- | :-------------------------------------------------------- |
81
- | `app-error.ts` | `ApplicationError` class for standardized error handling. |
82
-
83
- #### `helpers/inversion/`
84
-
85
- Application-enhanced Dependency Injection (DI) module that extends `@venizia/ignis-inversion`.
86
-
87
- > **Note:** The core DI functionality (Container, Binding, MetadataRegistry base classes) has been extracted to the standalone `@venizia/ignis-inversion` package. This module extends and re-exports that functionality with application-specific enhancements.
88
-
89
- | File/Folder | Purpose/Key Details |
90
- | :------------- | :------------------------------------------------------------------------------------------------------------ |
91
- | `container.ts` | Extended `Container` class with `ApplicationLogger` integration. |
92
- | `registry.ts` | Extended `MetadataRegistry` with framework-specific metadata (controllers, models, repositories, datasources).|
93
- | `common/keys.ts`| Framework-specific `MetadataKeys` (CONTROLLER, MODEL, REPOSITORY, etc.) merged with base keys. |
94
- | `common/types.ts`| Framework-specific interfaces (`IControllerMetadata`, `IModelMetadata`, `IRepositoryMetadata`, etc.). |
95
- | `index.ts` | Re-exports core classes from `@venizia/ignis-inversion` plus application extensions. |
96
-
97
- **Re-exported from `@venizia/ignis-inversion`:**
98
- - `Binding`, `BindingKeys`, `BindingScopes`, `BindingValueTypes`
99
-
100
- **Application-specific additions:**
101
- - `Container` with `ApplicationLogger` integration
102
- - `MetadataRegistry` with `setControllerMetadata`, `setModelMetadata`, `setRepositoryMetadata`, etc.
103
- - Framework metadata interfaces for controllers, models, repositories, and data sources
104
-
105
- For standalone DI usage without framework features, import directly from `@venizia/ignis-inversion`.
106
-
107
- #### `helpers/logger/`
108
-
109
- Logging solution built on Winston.
110
-
111
- | File/Folder | Purpose/Key Details |
112
- | :------------------------------ | :--------------------------------------------------------------------- |
113
- | `application-logger.ts` | `ApplicationLogger` for structured logging with scopes. |
114
- | `default-logger.ts` | Default Winston logger configuration with console and file transports. |
115
- | `factory.ts` | `LoggerFactory` for obtaining logger instances. |
116
- | `transports/dgram.transport.ts` | UDP transport for log aggregation. |
117
- | `types.ts` | Log level definitions. |
118
-
119
- #### `helpers/network/`
120
-
121
- Utilities for network communication.
122
-
123
- | File/Folder | Purpose/Key Details |
124
- | :-------------- | :------------------------------------------------------------------------------ |
125
- | `http-request/` | HTTP client implementations (`AxiosNetworkRequest`, `NodeFetchNetworkRequest`). |
126
- | `tcp-socket/` | TCP and TLS socket client/server helpers. |
127
- | `udp-socket/` | UDP client helper. |
128
-
129
- #### `helpers/queue/`
130
-
131
- Message queuing solutions.
132
-
133
- | File/Folder | Purpose/Key Details |
134
- | :---------- | :---------------------------------------------- |
135
- | `bullmq/` | `BullMQHelper` for Redis-backed message queues. |
136
- | `mqtt/` | `MQTTClientHelper` for MQTT broker interaction. |
137
- | `internal/` | `QueueHelper` for simple in-memory queues. |
138
- | `common/` | Common types for queue operations. |
139
-
140
- #### `helpers/redis/`
141
-
142
- Redis client helpers.
143
-
144
- | File/Folder | Purpose/Key Details |
145
- | :------------------ | :----------------------------------------------------------------- |
146
- | `cluster.helper.ts` | `RedisClusterHelper` for Redis cluster connections. |
147
- | `default.helper.ts` | `DefaultRedisHelper` providing a unified API for Redis operations. |
148
- | `single.helper.ts` | `RedisHelper` for single Redis instance connections. |
149
- | `types.ts` | Interfaces and types for Redis helpers. |
150
-
151
- #### `helpers/socket-io/`
152
-
153
- Socket.IO client and server helpers.
154
-
155
- | File/Folder | Purpose/Key Details |
156
- | :---------- | :------------------------------------------------------------ |
157
- | `client/` | `SocketIOClientHelper` for client-side Socket.IO connections. |
158
- | `server/` | `SocketIOServerHelper` for server-side Socket.IO management. |
159
- | `common/` | Common types and constants for Socket.IO. |
160
-
161
- #### `helpers/storage/`
162
-
163
- Storage utilities.
164
-
165
- | File/Folder | Purpose/Key Details |
166
- | :----------- | :----------------------------------------------------- |
167
- | `in-memory/` | `MemoryStorageHelper` for in-memory key-value storage. |
168
- | `minio/` | `MinioHelper` for S3-compatible object storage. |
169
-
170
- #### `helpers/testing/`
171
-
172
- Framework for writing and executing tests using `node:test`.
173
-
174
- | File/Folder | Purpose/Key Details |
175
- | :------------------ | :---------------------------------------------------------- |
176
- | `base-test-plan.ts` | Abstract base for test plans. |
177
- | `common/` | Common types and constants for testing utilities. |
178
- | `describe.ts` | `TestDescribe` integrates with `node:test` lifecycle hooks. |
179
- | `test-case.ts` | Defines individual test cases. |
180
- | `test-handler.ts` | Base class for test case handlers. |
181
- | `test-plan.ts` | `TestPlan` for organizing test suites. |
182
-
183
- #### `helpers/worker-thread/`
184
-
185
- Utilities for Node.js worker threads.
186
-
187
- | File/Folder | Purpose/Key Details |
188
- | :--------------- | :---------------------------------------------------------- |
189
- | `base.ts` | Base classes for workers and worker threads. |
190
- | `types.ts` | Interfaces and types for worker threads. |
191
- | `worker-bus.ts` | Helpers for inter-thread communication using `MessagePort`. |
192
- | `worker-pool.ts` | `WorkerPoolHelper` for managing a pool of worker threads. |
193
-
194
- ### `utilities`
195
-
196
- This directory contains pure, standalone utility functions that perform common, stateless operations.
197
-
198
- | File/Folder | Purpose/Key Details |
199
- | :----------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
200
- | `crypto.utility.ts` | Provides a `hash()` function for cryptographic hashing (SHA256, MD5). |
201
- | `date.utility.ts` | Date and time manipulation functions (`dayjs` integration, `sleep`, `isWeekday`, `getDateTz`, `hrTime`). |
202
- | `module.utility.ts` | `validateModule()` to check for module existence at runtime. |
203
- | `parse.utility.ts` | Functions for type checking (`isInt`, `isFloat`), type conversion (`int`, `float`, `toBoolean`), string/object transformation (`toCamel`, `keysToCamel`), array transformations (`parseArrayToRecordWithKey`, `parseArrayToMapWithKey`), and `getUID()` for unique IDs. |
204
- | `performance.utility.ts` | Utilities for measuring code execution time (`executeWithPerformanceMeasure`, `getPerformanceCheckpoint`, `getExecutedPerformance`). |
205
- | `promise.utility.ts` | Helper functions for Promises (`executePromiseWithLimit`, `isPromiseLike`, `transformValueOrPromise`, `getDeepProperty`). |
206
- | `request.utility.ts` | Utilities for handling HTTP request data, such as `parseMultipartBody` for multipart form data. |
207
- | `schema.utility.ts` | Helper functions and predefined schemas for `zod` and `@hono/zod-openapi` (`jsonContent`, `jsonResponse`, `requiredString`, `AnyObjectSchema`, `IdParamsSchema`, `UUIDParamsSchema`). |
208
-
209
- ---
210
-
211
- This detailed breakdown illustrates the modular and layered design of the Ignis framework, emphasizing its extensibility and adherence to robust architectural patterns.
@@ -1,86 +0,0 @@
1
- # Framework Internals
2
-
3
- Deep dive into Ignis package structure and source code organization.
4
-
5
- ## Quick Reference
6
-
7
- | Package | npm | Purpose |
8
- |---------|-----|---------|
9
- | `@venizia/ignis` | Core | Main framework with controllers, repositories, components |
10
- | `@venizia/ignis-boot` | Boot | Auto-discovery and bootstrapping utilities |
11
- | `@venizia/ignis-helpers` | Helpers | Reusable utilities (logger, crypto, redis, etc.) |
12
- | `@venizia/ignis-inversion` | Inversion | Standalone dependency injection container |
13
- | `@venizia/dev-configs` | Dev Configs | TypeScript, ESLint, Prettier configurations |
14
- | `@venizia/ignis-docs` | Docs | Documentation site and MCP server |
15
-
16
- ## Monorepo Structure
17
-
18
- ```
19
- ignis/
20
- ├── packages/
21
- │ ├── core/ → @venizia/ignis (main framework)
22
- │ ├── boot/ → @venizia/ignis-boot (auto-discovery)
23
- │ ├── helpers/ → @venizia/ignis-helpers (utilities)
24
- │ ├── inversion/ → @venizia/ignis-inversion (DI container)
25
- │ ├── dev-configs/ → @venizia/dev-configs (linting/formatting)
26
- │ └── docs/ → @venizia/ignis-docs (documentation)
27
- ├── examples/ → Example applications
28
- └── scripts/ → Build and maintenance scripts
29
- ```
30
-
31
- ## Package Dependencies
32
-
33
- ```
34
- ┌─────────────────────────────────────────────────────────┐
35
- │ @venizia/ignis │
36
- │ (Core Framework) │
37
- │ │
38
- │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
39
- │ │ base/ │ │ components/ │ │ utilities/ │ │
40
- │ │ (Controllers,│ │ (Auth, Swagger,│ │ (Crypto, │ │
41
- │ │ Repos, etc.)│ │ HealthCheck) │ │ Date, etc.) │ │
42
- │ └──────────────┘ └──────────────┘ └──────────────┘ │
43
- └────────────────────────┬────────────────────────────────┘
44
- │ depends on
45
- ┌───────────────┼───────────────┐
46
- ▼ ▼ ▼
47
- ┌────────────────┐ ┌────────────┐ ┌────────────────┐
48
- │ @vez/ignis-boot│ │@vez/ignis- │ │ @vez/ignis- │
49
- │ (Auto-Discovery)│ │ helpers │ │ inversion │
50
- │ │ │ (Logger, │ │ (DI Container) │
51
- │ │ │ Redis,etc)│ │ │
52
- └────────────────┘ └─────┬──────┘ └────────────────┘
53
- │ depends on
54
-
55
- ┌─────────────────────┐
56
- │ @vez/ignis-inversion│
57
- │ (Standalone DI) │
58
- └─────────────────────┘
59
- ```
60
-
61
- ## What's in This Section
62
-
63
- ### Core Package
64
- - [Core (@venizia/ignis)](./core.md) - Main framework with base classes, components, and utilities
65
-
66
- ### Supporting Packages
67
- - [Boot (@venizia/ignis-boot)](./boot.md) - Automatic artifact discovery and registration
68
- - [Helpers (@venizia/ignis-helpers)](./helpers.md) - Reusable helper classes (logger, crypto, redis, etc.)
69
- - [Inversion (@venizia/ignis-inversion)](./inversion.md) - Standalone dependency injection container
70
-
71
- ### Development Tools
72
- - [Dev Configs (@venizia/dev-configs)](./dev-configs.md) - Shared TypeScript, ESLint, Prettier configs
73
- - [Documentation (@venizia/ignis-docs)](./docs.md) - VitePress site and wiki structure
74
- - [MCP Docs Server](./mcp-server.md) - Model Context Protocol server for AI-assisted development
75
-
76
- ## Package Purposes
77
-
78
- | Package | When to Use |
79
- |---------|-------------|
80
- | **@venizia/ignis** | Building Ignis applications (always needed) |
81
- | **@venizia/ignis-boot** | Auto-discovery of controllers, services, repositories |
82
- | **@venizia/ignis-helpers** | Standalone utilities without full framework |
83
- | **@venizia/ignis-inversion** | DI container without framework dependencies |
84
- | **@venizia/dev-configs** | Consistent dev tooling across projects |
85
-
86
- > **Related:** [Core Concepts Guide](../../guides/core-concepts/application/) | [Base Abstractions Reference](../base/)