@venizia/ignis-docs 0.0.6-3 → 0.0.7-0

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 (105) hide show
  1. package/README.md +125 -388
  2. package/dist/mcp-server/common/config.d.ts +0 -21
  3. package/dist/mcp-server/common/config.d.ts.map +1 -1
  4. package/dist/mcp-server/common/config.js +1 -36
  5. package/dist/mcp-server/common/config.js.map +1 -1
  6. package/dist/mcp-server/helpers/docs.helper.d.ts +0 -24
  7. package/dist/mcp-server/helpers/docs.helper.d.ts.map +1 -1
  8. package/dist/mcp-server/helpers/docs.helper.js +0 -25
  9. package/dist/mcp-server/helpers/docs.helper.js.map +1 -1
  10. package/dist/mcp-server/helpers/github.helper.d.ts +0 -13
  11. package/dist/mcp-server/helpers/github.helper.d.ts.map +1 -1
  12. package/dist/mcp-server/helpers/github.helper.js +3 -20
  13. package/dist/mcp-server/helpers/github.helper.js.map +1 -1
  14. package/dist/mcp-server/index.js +0 -20
  15. package/dist/mcp-server/index.js.map +1 -1
  16. package/dist/mcp-server/tools/base.tool.d.ts +2 -79
  17. package/dist/mcp-server/tools/base.tool.d.ts.map +1 -1
  18. package/dist/mcp-server/tools/base.tool.js +1 -38
  19. package/dist/mcp-server/tools/base.tool.js.map +1 -1
  20. package/dist/mcp-server/tools/docs/get-document-content.tool.d.ts.map +1 -1
  21. package/dist/mcp-server/tools/docs/get-document-content.tool.js +0 -9
  22. package/dist/mcp-server/tools/docs/get-document-content.tool.js.map +1 -1
  23. package/dist/mcp-server/tools/docs/get-document-metadata.tool.d.ts.map +1 -1
  24. package/dist/mcp-server/tools/docs/get-document-metadata.tool.js +0 -9
  25. package/dist/mcp-server/tools/docs/get-document-metadata.tool.js.map +1 -1
  26. package/dist/mcp-server/tools/docs/get-package-overview.tool.d.ts +0 -6
  27. package/dist/mcp-server/tools/docs/get-package-overview.tool.d.ts.map +1 -1
  28. package/dist/mcp-server/tools/docs/get-package-overview.tool.js +1 -24
  29. package/dist/mcp-server/tools/docs/get-package-overview.tool.js.map +1 -1
  30. package/dist/mcp-server/tools/docs/list-categories.tool.d.ts.map +1 -1
  31. package/dist/mcp-server/tools/docs/list-categories.tool.js +0 -9
  32. package/dist/mcp-server/tools/docs/list-categories.tool.js.map +1 -1
  33. package/dist/mcp-server/tools/docs/list-documents.tool.d.ts.map +1 -1
  34. package/dist/mcp-server/tools/docs/list-documents.tool.js +0 -9
  35. package/dist/mcp-server/tools/docs/list-documents.tool.js.map +1 -1
  36. package/dist/mcp-server/tools/docs/search-documents.tool.d.ts.map +1 -1
  37. package/dist/mcp-server/tools/docs/search-documents.tool.js +0 -9
  38. package/dist/mcp-server/tools/docs/search-documents.tool.js.map +1 -1
  39. package/dist/mcp-server/tools/github/list-project-files.tool.d.ts.map +1 -1
  40. package/dist/mcp-server/tools/github/list-project-files.tool.js +0 -9
  41. package/dist/mcp-server/tools/github/list-project-files.tool.js.map +1 -1
  42. package/dist/mcp-server/tools/github/search-code.tool.d.ts.map +1 -1
  43. package/dist/mcp-server/tools/github/search-code.tool.js +1 -13
  44. package/dist/mcp-server/tools/github/search-code.tool.js.map +1 -1
  45. package/dist/mcp-server/tools/github/verify-dependencies.tool.d.ts +0 -4
  46. package/dist/mcp-server/tools/github/verify-dependencies.tool.d.ts.map +1 -1
  47. package/dist/mcp-server/tools/github/verify-dependencies.tool.js +1 -18
  48. package/dist/mcp-server/tools/github/verify-dependencies.tool.js.map +1 -1
  49. package/dist/mcp-server/tools/github/view-source-file.tool.d.ts.map +1 -1
  50. package/dist/mcp-server/tools/github/view-source-file.tool.js +0 -9
  51. package/dist/mcp-server/tools/github/view-source-file.tool.js.map +1 -1
  52. package/dist/mcp-server/tools/index.d.ts.map +1 -1
  53. package/dist/mcp-server/tools/index.js +0 -2
  54. package/dist/mcp-server/tools/index.js.map +1 -1
  55. package/package.json +1 -1
  56. package/wiki/best-practices/api-usage-examples.md +7 -5
  57. package/wiki/best-practices/code-style-standards/advanced-patterns.md +1 -1
  58. package/wiki/best-practices/code-style-standards/constants-configuration.md +1 -1
  59. package/wiki/best-practices/code-style-standards/control-flow.md +1 -1
  60. package/wiki/best-practices/code-style-standards/function-patterns.md +1 -1
  61. package/wiki/best-practices/common-pitfalls.md +1 -1
  62. package/wiki/best-practices/data-modeling.md +33 -1
  63. package/wiki/best-practices/error-handling.md +7 -4
  64. package/wiki/best-practices/performance-optimization.md +1 -1
  65. package/wiki/best-practices/security-guidelines.md +5 -4
  66. package/wiki/guides/core-concepts/components-guide.md +1 -1
  67. package/wiki/guides/core-concepts/controllers.md +14 -8
  68. package/wiki/guides/core-concepts/persistent/models.md +32 -0
  69. package/wiki/guides/core-concepts/services.md +2 -1
  70. package/wiki/guides/get-started/5-minute-quickstart.md +1 -1
  71. package/wiki/guides/tutorials/building-a-crud-api.md +2 -1
  72. package/wiki/guides/tutorials/complete-installation.md +2 -2
  73. package/wiki/guides/tutorials/ecommerce-api.md +3 -3
  74. package/wiki/guides/tutorials/realtime-chat.md +7 -6
  75. package/wiki/index.md +2 -1
  76. package/wiki/references/base/components.md +2 -1
  77. package/wiki/references/base/controllers.md +8 -4
  78. package/wiki/references/base/middlewares.md +2 -1
  79. package/wiki/references/base/models.md +11 -2
  80. package/wiki/references/base/services.md +2 -1
  81. package/wiki/references/components/authentication/api.md +525 -205
  82. package/wiki/references/components/authentication/errors.md +502 -105
  83. package/wiki/references/components/authentication/index.md +388 -75
  84. package/wiki/references/components/authentication/usage.md +426 -264
  85. package/wiki/references/components/authorization/usage.md +62 -0
  86. package/wiki/references/components/health-check.md +2 -1
  87. package/wiki/references/components/socket-io/index.md +9 -4
  88. package/wiki/references/components/socket-io/usage.md +1 -1
  89. package/wiki/references/components/static-asset/index.md +3 -5
  90. package/wiki/references/components/swagger.md +2 -1
  91. package/wiki/references/configuration/environment-variables.md +2 -1
  92. package/wiki/references/configuration/index.md +2 -1
  93. package/wiki/references/helpers/error/index.md +1 -1
  94. package/wiki/references/helpers/inversion/index.md +1 -1
  95. package/wiki/references/helpers/redis/index.md +2 -9
  96. package/wiki/references/quick-reference.md +3 -5
  97. package/wiki/references/utilities/crypto.md +2 -2
  98. package/wiki/references/utilities/date.md +5 -5
  99. package/wiki/references/utilities/index.md +3 -11
  100. package/wiki/references/utilities/jsx.md +4 -2
  101. package/wiki/references/utilities/module.md +1 -1
  102. package/wiki/references/utilities/parse.md +4 -4
  103. package/wiki/references/utilities/performance.md +2 -2
  104. package/wiki/references/utilities/promise.md +4 -4
  105. package/wiki/references/utilities/request.md +2 -2
@@ -32,7 +32,7 @@ Fundamental building block wrapping a Drizzle ORM schema.
32
32
  | **Schema Encapsulation** | Holds Drizzle `pgTable` schema for consistent repository access |
33
33
  | **Metadata** | Works with `@model` decorator to mark database entities |
34
34
  | **Schema Generation** | Uses `drizzle-zod` to generate Zod schemas (`SELECT`, `CREATE`, `UPDATE`) |
35
- | **Static Properties** | Supports static `schema`, `relations`, and `TABLE_NAME` for cleaner syntax |
35
+ | **Static Properties** | Supports static `schema`, `relations`, `TABLE_NAME`, and `AUTHORIZATION_SUBJECT` |
36
36
  | **Convenience** | Includes `toObject()` and `toJSON()` methods |
37
37
 
38
38
  ### The `@model` Decorator
@@ -49,6 +49,10 @@ The `@model` decorator marks a class as a database entity and configures its beh
49
49
  settings?: {
50
50
  hiddenProperties?: string[], // Properties to exclude from query results
51
51
  defaultFilter?: TFilter, // Filter applied to all repository queries
52
+ authorize?: { // Authorization settings
53
+ principal: string, // Authorization subject name
54
+ [extra: string | symbol]: any, // Extensible metadata
55
+ },
52
56
  }
53
57
  })
54
58
  ```
@@ -60,6 +64,8 @@ The `@model` decorator marks a class as a database entity and configures its beh
60
64
  | `skipMigrate` | `boolean` | Skip this model during schema migrations |
61
65
  | `settings.hiddenProperties` | `string[]` | Array of property names to exclude from all repository query results |
62
66
  | `settings.defaultFilter` | `TFilter` | Filter automatically applied to all repository queries (see [Default Filter](/references/base/filter-system/default-filter)) |
67
+ | `settings.authorize` | `IModelAuthorizeSettings` | Authorization settings — declares the model's authorization principal (see [Authorization](/references/components/authorization/usage#model-based-resource-references)) |
68
+ | `settings.authorize.principal` | `string` | The authorization subject name for this model. Auto-populates `AUTHORIZATION_SUBJECT` static property |
63
69
 
64
70
  ### Hidden Properties
65
71
 
@@ -233,6 +239,7 @@ export class User extends BaseEntity<typeof userTable> {
233
239
  | `schema` | `TTableSchemaWithId` | Drizzle table schema defined with `pgTable()` |
234
240
  | `relations` | `TValueOrResolver<Array<TRelationConfig>>` | Relation definitions (can be a function for lazy loading) |
235
241
  | `TABLE_NAME` | `string \| undefined` | Optional table name (defaults to class name if not set) |
242
+ | `AUTHORIZATION_SUBJECT` | `string \| undefined` | Authorization principal name. Auto-populated from `@model` settings `authorize.principal` |
236
243
 
237
244
  ### IEntity Interface
238
245
 
@@ -269,6 +276,7 @@ export class BaseEntity<Schema extends TTableSchemaWithId = TTableSchemaWithId>
269
276
  static schema: TTableSchemaWithId;
270
277
  static relations?: TValueOrResolver<Array<TRelationConfig>>;
271
278
  static TABLE_NAME?: string; // Optional, defaults to class name
279
+ static AUTHORIZATION_SUBJECT?: string; // Auto-set by @model decorator from authorize.principal
272
280
 
273
281
  // Static singleton for schemaFactory - shared across all instances
274
282
  // Performance optimization: avoids creating new factory per entity
@@ -902,7 +910,8 @@ console.log(result);
902
910
  **Use case:** API endpoint that accepts snake_case but works with camelCase internally
903
911
 
904
912
  ```typescript
905
- import { BaseController, controller, snakeToCamel, HTTP } from '@venizia/ignis';
913
+ import { BaseController, controller, snakeToCamel } from '@venizia/ignis';
914
+ import { HTTP } from '@venizia/ignis-helpers';
906
915
  import { z } from '@hono/zod-openapi';
907
916
 
908
917
  const createUserSchema = snakeToCamel({
@@ -64,7 +64,8 @@ Services are the core of your application's logic. They act as a bridge between
64
64
  ### Example
65
65
 
66
66
  ```typescript
67
- import { BaseService, inject, getError } from '@venizia/ignis';
67
+ import { BaseService, inject } from '@venizia/ignis';
68
+ import { getError } from '@venizia/ignis-helpers';
68
69
  import { UserRepository } from '../repositories/user.repository';
69
70
  import { TUser } from '../models/entities';
70
71