@venizia/ignis-docs 0.0.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 (123) hide show
  1. package/mcp-server/dist/common/config.d.ts +27 -0
  2. package/mcp-server/dist/common/config.d.ts.map +1 -0
  3. package/mcp-server/dist/common/config.js +27 -0
  4. package/mcp-server/dist/common/config.js.map +1 -0
  5. package/mcp-server/dist/common/index.d.ts +3 -0
  6. package/mcp-server/dist/common/index.d.ts.map +1 -0
  7. package/mcp-server/dist/common/index.js +19 -0
  8. package/mcp-server/dist/common/index.js.map +1 -0
  9. package/mcp-server/dist/common/paths.d.ts +13 -0
  10. package/mcp-server/dist/common/paths.d.ts.map +1 -0
  11. package/mcp-server/dist/common/paths.js +23 -0
  12. package/mcp-server/dist/common/paths.js.map +1 -0
  13. package/mcp-server/dist/helpers/docs.helper.d.ts +81 -0
  14. package/mcp-server/dist/helpers/docs.helper.d.ts.map +1 -0
  15. package/mcp-server/dist/helpers/docs.helper.js +171 -0
  16. package/mcp-server/dist/helpers/docs.helper.js.map +1 -0
  17. package/mcp-server/dist/helpers/index.d.ts +3 -0
  18. package/mcp-server/dist/helpers/index.d.ts.map +1 -0
  19. package/mcp-server/dist/helpers/index.js +19 -0
  20. package/mcp-server/dist/helpers/index.js.map +1 -0
  21. package/mcp-server/dist/helpers/logger.helper.d.ts +7 -0
  22. package/mcp-server/dist/helpers/logger.helper.d.ts.map +1 -0
  23. package/mcp-server/dist/helpers/logger.helper.js +22 -0
  24. package/mcp-server/dist/helpers/logger.helper.js.map +1 -0
  25. package/mcp-server/dist/index.d.ts +3 -0
  26. package/mcp-server/dist/index.d.ts.map +1 -0
  27. package/mcp-server/dist/index.js +62 -0
  28. package/mcp-server/dist/index.js.map +1 -0
  29. package/mcp-server/dist/tools/base.tool.d.ts +98 -0
  30. package/mcp-server/dist/tools/base.tool.d.ts.map +1 -0
  31. package/mcp-server/dist/tools/base.tool.js +47 -0
  32. package/mcp-server/dist/tools/base.tool.js.map +1 -0
  33. package/mcp-server/dist/tools/get-doc-content.tool.d.ts +30 -0
  34. package/mcp-server/dist/tools/get-doc-content.tool.d.ts.map +1 -0
  35. package/mcp-server/dist/tools/get-doc-content.tool.js +127 -0
  36. package/mcp-server/dist/tools/get-doc-content.tool.js.map +1 -0
  37. package/mcp-server/dist/tools/get-doc-metadata.tool.d.ts +40 -0
  38. package/mcp-server/dist/tools/get-doc-metadata.tool.d.ts.map +1 -0
  39. package/mcp-server/dist/tools/get-doc-metadata.tool.js +121 -0
  40. package/mcp-server/dist/tools/get-doc-metadata.tool.js.map +1 -0
  41. package/mcp-server/dist/tools/index.d.ts +8 -0
  42. package/mcp-server/dist/tools/index.d.ts.map +1 -0
  43. package/mcp-server/dist/tools/index.js +18 -0
  44. package/mcp-server/dist/tools/index.js.map +1 -0
  45. package/mcp-server/dist/tools/list-categories.tool.d.ts +20 -0
  46. package/mcp-server/dist/tools/list-categories.tool.d.ts.map +1 -0
  47. package/mcp-server/dist/tools/list-categories.tool.js +105 -0
  48. package/mcp-server/dist/tools/list-categories.tool.js.map +1 -0
  49. package/mcp-server/dist/tools/list-docs.tool.d.ts +32 -0
  50. package/mcp-server/dist/tools/list-docs.tool.d.ts.map +1 -0
  51. package/mcp-server/dist/tools/list-docs.tool.js +121 -0
  52. package/mcp-server/dist/tools/list-docs.tool.js.map +1 -0
  53. package/mcp-server/dist/tools/search-docs.tool.d.ts +32 -0
  54. package/mcp-server/dist/tools/search-docs.tool.d.ts.map +1 -0
  55. package/mcp-server/dist/tools/search-docs.tool.js +120 -0
  56. package/mcp-server/dist/tools/search-docs.tool.js.map +1 -0
  57. package/package.json +102 -0
  58. package/wiki/get-started/5-minute-quickstart.md +266 -0
  59. package/wiki/get-started/best-practices/api-usage-examples.md +222 -0
  60. package/wiki/get-started/best-practices/architectural-patterns.md +129 -0
  61. package/wiki/get-started/best-practices/code-style-standards.md +122 -0
  62. package/wiki/get-started/best-practices/common-pitfalls.md +136 -0
  63. package/wiki/get-started/best-practices/contribution-workflow.md +145 -0
  64. package/wiki/get-started/best-practices/deployment-strategies.md +121 -0
  65. package/wiki/get-started/best-practices/performance-optimization.md +88 -0
  66. package/wiki/get-started/best-practices/security-guidelines.md +97 -0
  67. package/wiki/get-started/best-practices/troubleshooting-tips.md +100 -0
  68. package/wiki/get-started/building-a-crud-api.md +717 -0
  69. package/wiki/get-started/core-concepts/application.md +168 -0
  70. package/wiki/get-started/core-concepts/components.md +96 -0
  71. package/wiki/get-started/core-concepts/controllers.md +441 -0
  72. package/wiki/get-started/core-concepts/dependency-injection.md +160 -0
  73. package/wiki/get-started/core-concepts/persistent.md +591 -0
  74. package/wiki/get-started/core-concepts/services.md +88 -0
  75. package/wiki/get-started/index.md +65 -0
  76. package/wiki/get-started/mcp-docs-server.md +840 -0
  77. package/wiki/get-started/philosophy.md +123 -0
  78. package/wiki/get-started/prerequisites.md +113 -0
  79. package/wiki/get-started/quickstart.md +382 -0
  80. package/wiki/index.md +48 -0
  81. package/wiki/references/base/application.md +67 -0
  82. package/wiki/references/base/components.md +80 -0
  83. package/wiki/references/base/controllers.md +361 -0
  84. package/wiki/references/base/datasources.md +105 -0
  85. package/wiki/references/base/dependency-injection.md +83 -0
  86. package/wiki/references/base/models.md +104 -0
  87. package/wiki/references/base/repositories.md +118 -0
  88. package/wiki/references/base/services.md +97 -0
  89. package/wiki/references/components/authentication.md +224 -0
  90. package/wiki/references/components/health-check.md +190 -0
  91. package/wiki/references/components/index.md +61 -0
  92. package/wiki/references/components/request-tracker.md +35 -0
  93. package/wiki/references/components/socket-io.md +127 -0
  94. package/wiki/references/components/swagger.md +175 -0
  95. package/wiki/references/helpers/cron.md +94 -0
  96. package/wiki/references/helpers/crypto.md +117 -0
  97. package/wiki/references/helpers/env.md +67 -0
  98. package/wiki/references/helpers/error.md +80 -0
  99. package/wiki/references/helpers/index.md +21 -0
  100. package/wiki/references/helpers/inversion.md +141 -0
  101. package/wiki/references/helpers/logger.md +98 -0
  102. package/wiki/references/helpers/network.md +143 -0
  103. package/wiki/references/helpers/queue.md +131 -0
  104. package/wiki/references/helpers/redis.md +121 -0
  105. package/wiki/references/helpers/socket-io.md +103 -0
  106. package/wiki/references/helpers/storage.md +130 -0
  107. package/wiki/references/helpers/testing.md +115 -0
  108. package/wiki/references/helpers/worker-thread.md +162 -0
  109. package/wiki/references/src-details/core.md +249 -0
  110. package/wiki/references/src-details/dev-configs.md +302 -0
  111. package/wiki/references/src-details/docs.md +61 -0
  112. package/wiki/references/src-details/helpers.md +211 -0
  113. package/wiki/references/src-details/inversion.md +345 -0
  114. package/wiki/references/src-details/mcp-server.md +726 -0
  115. package/wiki/references/utilities/crypto.md +39 -0
  116. package/wiki/references/utilities/date.md +72 -0
  117. package/wiki/references/utilities/index.md +12 -0
  118. package/wiki/references/utilities/module.md +40 -0
  119. package/wiki/references/utilities/parse.md +68 -0
  120. package/wiki/references/utilities/performance.md +64 -0
  121. package/wiki/references/utilities/promise.md +83 -0
  122. package/wiki/references/utilities/request.md +66 -0
  123. package/wiki/references/utilities/schema.md +88 -0
@@ -0,0 +1,302 @@
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
+
125
+ ## TypeScript Configuration
126
+
127
+ ### Base Configuration (`tsconfig.base.json`)
128
+
129
+ The base configuration includes all compiler options suitable for Node.js/Bun TypeScript projects.
130
+
131
+ #### Usage
132
+
133
+ ```json
134
+ {
135
+ "$schema": "http://json.schemastore.org/tsconfig",
136
+ "extends": "@venizia/dev-configs/tsconfig.base.json",
137
+ "compilerOptions": {
138
+ "outDir": "dist",
139
+ "rootDir": "src"
140
+ },
141
+ "include": ["src"],
142
+ "exclude": ["node_modules", "dist"]
143
+ }
144
+ ```
145
+
146
+ #### Compiler Options Summary
147
+
148
+ | Category | Options |
149
+ |----------|---------|
150
+ | **Target** | ES2022, lib: ES2022 |
151
+ | **Modules** | Node16, resolveJsonModule, esModuleInterop |
152
+ | **Decorators** | experimentalDecorators, emitDecoratorMetadata |
153
+ | **Emit** | declaration, declarationMap, sourceMap |
154
+ | **Strict** | strict (with selective relaxations) |
155
+ | **Performance** | incremental, skipLibCheck |
156
+
157
+ #### Strict Mode Configuration
158
+
159
+ | Option | Value | Rationale |
160
+ |--------|-------|-----------|
161
+ | `strict` | `true` | Enable all strict checks |
162
+ | `noImplicitAny` | `false` | Allow implicit any for flexibility |
163
+ | `strictNullChecks` | `true` | Enforce null safety |
164
+ | `strictPropertyInitialization` | `false` | Allow uninitialized properties (for DI) |
165
+ | `useUnknownInCatchVariables` | `false` | Use `any` in catch blocks |
166
+
167
+ ### Common Configuration (`tsconfig.common.json`)
168
+
169
+ Extends the base config with settings for standard packages:
170
+
171
+ ```json
172
+ {
173
+ "$schema": "http://json.schemastore.org/tsconfig",
174
+ "extends": "@venizia/dev-configs/tsconfig.common.json",
175
+ "compilerOptions": {
176
+ "outDir": "dist",
177
+ "rootDir": "src",
178
+ "baseUrl": "src",
179
+ "paths": {
180
+ "@/*": ["./*"]
181
+ }
182
+ },
183
+ "include": ["src"],
184
+ "exclude": ["node_modules", "dist"]
185
+ }
186
+ ```
187
+
188
+ **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.
189
+
190
+ ---
191
+
192
+ ## Project Structure
193
+
194
+ ```
195
+ packages/dev-configs/
196
+ ├── package.json
197
+ ├── tsconfig.json
198
+ ├── src/
199
+ │ ├── index.ts # Re-exports all configs
200
+ │ ├── eslint.ts # ESLint configuration
201
+ │ └── prettier.ts # Prettier configuration
202
+ ├── tsconfig/
203
+ │ ├── tsconfig.base.json # Base TypeScript config
204
+ │ └── tsconfig.common.json # Common package config
205
+ ├── prettier/
206
+ │ └── .prettierignore # Prettier ignore patterns
207
+ ├── scripts/
208
+ │ ├── build.sh
209
+ │ ├── clean.sh
210
+ │ └── rebuild.sh
211
+ └── dist/ # Built output
212
+ ├── index.js / .d.ts
213
+ ├── eslint.js / .d.ts
214
+ └── prettier.js / .d.ts
215
+ ```
216
+
217
+ ---
218
+
219
+ ## Integration Guide
220
+
221
+ ### Adding to a New Package
222
+
223
+ 1. Add the dependency to your `package.json`:
224
+
225
+ ```json
226
+ {
227
+ "devDependencies": {
228
+ "@venizia/dev-configs": "latest",
229
+ "eslint": "^9.36.0",
230
+ "prettier": "^3.6.2",
231
+ "typescript": "^5.9.3"
232
+ }
233
+ }
234
+ ```
235
+
236
+ 2. Create configuration files:
237
+
238
+ **`tsconfig.json`:**
239
+ ```json
240
+ {
241
+ "$schema": "http://json.schemastore.org/tsconfig",
242
+ "extends": "@venizia/dev-configs/tsconfig.common.json",
243
+ "compilerOptions": {
244
+ "outDir": "dist",
245
+ "rootDir": "src",
246
+ "baseUrl": "src",
247
+ "paths": { "@/*": ["./*"] }
248
+ },
249
+ "include": ["src"],
250
+ "exclude": ["node_modules", "dist"]
251
+ }
252
+ ```
253
+
254
+ **`eslint.config.mjs`:**
255
+ ```javascript
256
+ import { eslintConfigs } from '@venizia/dev-configs';
257
+
258
+ export default eslintConfigs;
259
+ ```
260
+
261
+ **`.prettierrc.mjs`:**
262
+ ```javascript
263
+ import { prettierConfigs } from '@venizia/dev-configs';
264
+
265
+ export default prettierConfigs;
266
+ ```
267
+
268
+ **`.prettierignore`:**
269
+ ```
270
+ dist
271
+ node_modules
272
+ *.log
273
+ .*-audit.json
274
+ ```
275
+
276
+ 3. Add lint scripts to `package.json`:
277
+
278
+ ```json
279
+ {
280
+ "scripts": {
281
+ "lint": "eslint --report-unused-disable-directives . && prettier \"**/*.{js,ts}\" -l",
282
+ "lint:fix": "eslint --report-unused-disable-directives . --fix && prettier \"**/*.{js,ts}\" --write"
283
+ }
284
+ }
285
+ ```
286
+
287
+ ---
288
+
289
+ ## Building the Package
290
+
291
+ ```bash
292
+ cd packages/dev-configs
293
+
294
+ # Build
295
+ bun run build
296
+
297
+ # Clean
298
+ bun run clean
299
+
300
+ # Rebuild (clean + build)
301
+ bun run rebuild
302
+ ```
@@ -0,0 +1,61 @@
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
+ | `get-started/` | 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`** | Contains the Model Context Protocol (MCP) server implementation for documentation. |
31
+ | **`wiki`** | The main documentation content, built using VitePress. |
32
+
33
+ ---
34
+
35
+ ## Detailed Sections
36
+
37
+ ### `mcp`
38
+
39
+ This directory contains the implementation of a Model Context Protocol (MCP) server, which allows external tools to discover and read documentation resources.
40
+
41
+ | File/Folder | Purpose/Key Details |
42
+ | :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
43
+
44
+
45
+ ### `wiki`
46
+
47
+ This directory holds the actual documentation content and the VitePress configuration for building the documentation website.
48
+
49
+ | File/Folder | Purpose/Key Details |
50
+ | :---------------------- | :----------------------------------------------------------------------------------------------------------------------------- |
51
+ | `.vitepress/` | VitePress-specific configuration and theme files. |
52
+ | `.vitepress/config.mts` | The main configuration file for VitePress, defining the documentation's title, description, navigation, and sidebar structure. |
53
+ | `.vitepress/theme/` | Custom theme files for the VitePress documentation. |
54
+ | `get-started/` | Guides and tutorials for getting started with `Ignis`. |
55
+ | `references/` | Detailed reference documentation for various aspects of the framework. |
56
+ | `index.md` | The homepage content for the documentation site. |
57
+ | `logo.svg` | The logo used in the documentation. |
58
+
59
+ ---
60
+
61
+ This detailed breakdown illustrates the modular and layered design of the `Ignis` framework, emphasizing its extensibility and adherence to robust architectural patterns.
@@ -0,0 +1,211 @@
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.