@venizia/ignis 0.0.5-2 → 0.0.5-20

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 (146) hide show
  1. package/dist/base/applications/abstract.d.ts.map +1 -1
  2. package/dist/base/applications/abstract.js +1 -0
  3. package/dist/base/applications/abstract.js.map +1 -1
  4. package/dist/base/applications/base.d.ts.map +1 -1
  5. package/dist/base/applications/base.js +8 -1
  6. package/dist/base/applications/base.js.map +1 -1
  7. package/dist/base/applications/types.d.ts +10 -1
  8. package/dist/base/applications/types.d.ts.map +1 -1
  9. package/dist/base/controllers/abstract.d.ts +1 -0
  10. package/dist/base/controllers/abstract.d.ts.map +1 -1
  11. package/dist/base/controllers/abstract.js +12 -1
  12. package/dist/base/controllers/abstract.js.map +1 -1
  13. package/dist/base/controllers/common/types.d.ts +5 -1
  14. package/dist/base/controllers/common/types.d.ts.map +1 -1
  15. package/dist/base/controllers/factory/controller.d.ts +15 -6
  16. package/dist/base/controllers/factory/controller.d.ts.map +1 -1
  17. package/dist/base/controllers/factory/controller.js +46 -21
  18. package/dist/base/controllers/factory/controller.js.map +1 -1
  19. package/dist/base/datasources/base.d.ts.map +1 -1
  20. package/dist/base/datasources/base.js +10 -1
  21. package/dist/base/datasources/base.js.map +1 -1
  22. package/dist/base/metadata/index.d.ts +1 -0
  23. package/dist/base/metadata/index.d.ts.map +1 -1
  24. package/dist/base/metadata/index.js +1 -0
  25. package/dist/base/metadata/index.js.map +1 -1
  26. package/dist/base/metadata/request-context.d.ts +3 -0
  27. package/dist/base/metadata/request-context.d.ts.map +1 -0
  28. package/dist/base/metadata/request-context.js +9 -0
  29. package/dist/base/metadata/request-context.js.map +1 -0
  30. package/dist/base/metadata/routes.d.ts +30 -40
  31. package/dist/base/metadata/routes.d.ts.map +1 -1
  32. package/dist/base/metadata/routes.js +15 -5
  33. package/dist/base/metadata/routes.js.map +1 -1
  34. package/dist/base/middlewares/app-error.middleware.d.ts +1 -0
  35. package/dist/base/middlewares/app-error.middleware.d.ts.map +1 -1
  36. package/dist/base/middlewares/app-error.middleware.js +10 -8
  37. package/dist/base/middlewares/app-error.middleware.js.map +1 -1
  38. package/dist/base/middlewares/request-spy.middleware.d.ts.map +1 -1
  39. package/dist/base/middlewares/request-spy.middleware.js +12 -0
  40. package/dist/base/middlewares/request-spy.middleware.js.map +1 -1
  41. package/dist/base/mixins/component.mixin.d.ts.map +1 -1
  42. package/dist/base/mixins/controller.mixin.d.ts.map +1 -1
  43. package/dist/base/mixins/repository.mixin.d.ts.map +1 -1
  44. package/dist/base/mixins/service.mixin.d.ts.map +1 -1
  45. package/dist/base/models/enrichers/id.enricher.d.ts +15 -10
  46. package/dist/base/models/enrichers/id.enricher.d.ts.map +1 -1
  47. package/dist/base/models/enrichers/id.enricher.js +3 -3
  48. package/dist/base/models/enrichers/id.enricher.js.map +1 -1
  49. package/dist/base/models/enrichers/principal.enricher.d.ts +7 -9
  50. package/dist/base/models/enrichers/principal.enricher.d.ts.map +1 -1
  51. package/dist/base/models/enrichers/principal.enricher.js.map +1 -1
  52. package/dist/base/models/enrichers/user-audit.enricher.d.ts +3 -2
  53. package/dist/base/models/enrichers/user-audit.enricher.d.ts.map +1 -1
  54. package/dist/base/models/enrichers/user-audit.enricher.js +47 -11
  55. package/dist/base/models/enrichers/user-audit.enricher.js.map +1 -1
  56. package/dist/base/repositories/common/constants.d.ts +59 -0
  57. package/dist/base/repositories/common/constants.d.ts.map +1 -1
  58. package/dist/base/repositories/common/constants.js +51 -2
  59. package/dist/base/repositories/common/constants.js.map +1 -1
  60. package/dist/base/repositories/common/types.d.ts +482 -44
  61. package/dist/base/repositories/common/types.d.ts.map +1 -1
  62. package/dist/base/repositories/common/types.js +164 -17
  63. package/dist/base/repositories/common/types.js.map +1 -1
  64. package/dist/base/repositories/core/abstract.d.ts +450 -0
  65. package/dist/base/repositories/core/abstract.d.ts.map +1 -0
  66. package/dist/base/repositories/core/abstract.js +287 -0
  67. package/dist/base/repositories/core/abstract.js.map +1 -0
  68. package/dist/base/repositories/core/default-crud.d.ts +2 -2
  69. package/dist/base/repositories/core/default-crud.d.ts.map +1 -1
  70. package/dist/base/repositories/core/index.d.ts +1 -1
  71. package/dist/base/repositories/core/index.d.ts.map +1 -1
  72. package/dist/base/repositories/core/index.js +1 -1
  73. package/dist/base/repositories/core/index.js.map +1 -1
  74. package/dist/base/repositories/core/persistable.d.ts +91 -36
  75. package/dist/base/repositories/core/persistable.d.ts.map +1 -1
  76. package/dist/base/repositories/core/persistable.js +139 -37
  77. package/dist/base/repositories/core/persistable.js.map +1 -1
  78. package/dist/base/repositories/core/readable.d.ts +166 -62
  79. package/dist/base/repositories/core/readable.d.ts.map +1 -1
  80. package/dist/base/repositories/core/readable.js +185 -56
  81. package/dist/base/repositories/core/readable.js.map +1 -1
  82. package/dist/base/repositories/mixins/default-filter.d.ts +65 -0
  83. package/dist/base/repositories/mixins/default-filter.d.ts.map +1 -0
  84. package/dist/base/repositories/mixins/default-filter.js +97 -0
  85. package/dist/base/repositories/mixins/default-filter.js.map +1 -0
  86. package/dist/base/repositories/mixins/fields-visibility.d.ts +74 -0
  87. package/dist/base/repositories/mixins/fields-visibility.d.ts.map +1 -0
  88. package/dist/base/repositories/mixins/fields-visibility.js +129 -0
  89. package/dist/base/repositories/mixins/fields-visibility.js.map +1 -0
  90. package/dist/base/repositories/mixins/index.d.ts +3 -0
  91. package/dist/base/repositories/mixins/index.d.ts.map +1 -0
  92. package/dist/base/repositories/mixins/index.js +19 -0
  93. package/dist/base/repositories/mixins/index.js.map +1 -0
  94. package/dist/base/repositories/operators/filter.d.ts +146 -12
  95. package/dist/base/repositories/operators/filter.d.ts.map +1 -1
  96. package/dist/base/repositories/operators/filter.js +432 -112
  97. package/dist/base/repositories/operators/filter.js.map +1 -1
  98. package/dist/base/repositories/operators/query.d.ts +69 -0
  99. package/dist/base/repositories/operators/query.d.ts.map +1 -1
  100. package/dist/base/repositories/operators/query.js +190 -2
  101. package/dist/base/repositories/operators/query.js.map +1 -1
  102. package/dist/base/repositories/operators/relation.d.ts +33 -0
  103. package/dist/base/repositories/operators/relation.d.ts.map +1 -1
  104. package/dist/base/repositories/operators/relation.js +36 -0
  105. package/dist/base/repositories/operators/relation.js.map +1 -1
  106. package/dist/common/statuses.d.ts +26 -7
  107. package/dist/common/statuses.d.ts.map +1 -1
  108. package/dist/common/statuses.js +96 -9
  109. package/dist/common/statuses.js.map +1 -1
  110. package/dist/components/auth/authenticate/common/constants.d.ts +1 -0
  111. package/dist/components/auth/authenticate/common/constants.d.ts.map +1 -1
  112. package/dist/components/auth/authenticate/common/constants.js +1 -0
  113. package/dist/components/auth/authenticate/common/constants.js.map +1 -1
  114. package/dist/components/auth/authenticate/common/types.d.ts +7 -0
  115. package/dist/components/auth/authenticate/common/types.d.ts.map +1 -1
  116. package/dist/components/auth/authenticate/controllers/factory.d.ts +1 -0
  117. package/dist/components/auth/authenticate/controllers/factory.d.ts.map +1 -1
  118. package/dist/components/auth/authenticate/strategies/strategy-registry.d.ts.map +1 -1
  119. package/dist/components/auth/authenticate/strategies/strategy-registry.js +3 -0
  120. package/dist/components/auth/authenticate/strategies/strategy-registry.js.map +1 -1
  121. package/dist/components/auth/models/entities/user-role.model.d.ts +1 -1
  122. package/dist/components/auth/models/entities/user-role.model.d.ts.map +1 -1
  123. package/dist/components/auth/models/entities/user-role.model.js +1 -1
  124. package/dist/components/auth/models/entities/user-role.model.js.map +1 -1
  125. package/dist/components/health-check/controller.d.ts +4 -5
  126. package/dist/components/health-check/controller.d.ts.map +1 -1
  127. package/dist/components/health-check/controller.js +12 -12
  128. package/dist/components/health-check/controller.js.map +1 -1
  129. package/dist/components/static-asset/component.d.ts +0 -1
  130. package/dist/components/static-asset/component.d.ts.map +1 -1
  131. package/dist/components/static-asset/component.js +0 -2
  132. package/dist/components/static-asset/component.js.map +1 -1
  133. package/dist/components/static-asset/controller/factory.d.ts +1 -0
  134. package/dist/components/static-asset/controller/factory.d.ts.map +1 -1
  135. package/dist/components/static-asset/controller/factory.js +1 -1
  136. package/dist/components/static-asset/controller/factory.js.map +1 -1
  137. package/dist/components/static-asset/models/base.model.d.ts +10 -10
  138. package/dist/components/static-asset/models/base.model.js +1 -1
  139. package/dist/components/static-asset/models/base.model.js.map +1 -1
  140. package/dist/helpers/inversion/common/types.d.ts +35 -1
  141. package/dist/helpers/inversion/common/types.d.ts.map +1 -1
  142. package/package.json +4 -5
  143. package/dist/base/repositories/core/base.d.ts +0 -264
  144. package/dist/base/repositories/core/base.d.ts.map +0 -1
  145. package/dist/base/repositories/core/base.js +0 -197
  146. package/dist/base/repositories/core/base.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"user-audit.enricher.d.ts","sourceRoot":"","sources":["../../../../src/base/models/enrichers/user-audit.enricher.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,uBAAuB,EAAE,oBAAoB,EAAQ,MAAM,qBAAqB,CAAC;AACnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAClC,iBAAiB,SAAS,kBAAkB,GAAG,kBAAkB,IAC/D,iBAAiB,GAAG;IACtB,SAAS,EAAE,uBAAuB,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;IACjG,UAAU,EAAE,uBAAuB,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;CACnG,CAAC;AAsBF,eAAO,MAAM,2BAA2B,GAAI,OAAO,yBAAyB;;;CAgB3E,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,iBAAiB,SAAS,kBAAkB,GAAG,kBAAkB,EAC/F,YAAY,iBAAiB,EAC7B,OAAO,yBAAyB,KAC/B,wBAAwB,CAAC,iBAAiB,CAG5C,CAAC"}
1
+ {"version":3,"file":"user-audit.enricher.d.ts","sourceRoot":"","sources":["../../../../src/base/models/enrichers/user-audit.enricher.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,uBAAuB,EAAE,oBAAoB,EAAQ,MAAM,qBAAqB,CAAC;AAGnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAClC,iBAAiB,SAAS,kBAAkB,GAAG,kBAAkB,IAC/D,iBAAiB,GAAG;IACtB,SAAS,EAAE,uBAAuB,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;IACjG,UAAU,EAAE,uBAAuB,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;CACnG,CAAC;AAyEF,eAAO,MAAM,2BAA2B,GAAI,OAAO,yBAAyB;;;CAU3E,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,iBAAiB,SAAS,kBAAkB,GAAG,kBAAkB,EAC/F,YAAY,iBAAiB,EAC7B,OAAO,yBAAyB,KAC/B,wBAAwB,CAAC,iBAAiB,CAG5C,CAAC"}
@@ -3,14 +3,56 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.enrichUserAudit = exports.generateUserAuditColumnDefs = void 0;
4
4
  const ignis_helpers_1 = require("@venizia/ignis-helpers");
5
5
  const pg_core_1 = require("drizzle-orm/pg-core");
6
+ const context_storage_1 = require("hono/context-storage");
7
+ const common_1 = require("../../../components/auth/authenticate/common");
8
+ /**
9
+ * Get current user ID from Hono context storage.
10
+ * Returns null if context unavailable (background jobs, migrations, tests).
11
+ *
12
+ * CAUTIONS: if using fire-and-forget promise, this could be run outside of async context => cannot detect AUDIT_USER_ID
13
+ */
14
+ const getCurrentUserId = (opts) => {
15
+ const context = (0, context_storage_1.tryGetContext)();
16
+ if (!context) {
17
+ if (!opts.allowAnonymous) {
18
+ throw (0, ignis_helpers_1.getError)({
19
+ message: `[getCurrentUserId] Invalid request context to identify user | columnName: ${opts.columnField} | allowAnonymous: ${opts.allowAnonymous}`,
20
+ });
21
+ }
22
+ return null;
23
+ }
24
+ const userId = context.get(common_1.Authentication.AUDIT_USER_ID);
25
+ if (!userId && !opts.allowAnonymous) {
26
+ throw (0, ignis_helpers_1.getError)({
27
+ message: `[getCurrentUserId] No AUDIT_USER_ID found in request context | columnName: ${opts.columnField} | allowAnonymous: ${opts.allowAnonymous} | userId: ${userId}`,
28
+ });
29
+ }
30
+ return userId ?? null;
31
+ };
6
32
  const buildUserAuditColumn = (opts) => {
7
33
  const { columnOpts, columnField } = opts;
8
34
  switch (columnOpts.dataType) {
9
35
  case 'number': {
10
- return (0, pg_core_1.integer)(columnOpts.columnName);
36
+ const col = (0, pg_core_1.integer)(columnOpts.columnName).$type();
37
+ const userIdGetter = () => getCurrentUserId({
38
+ columnField,
39
+ allowAnonymous: columnOpts.allowAnonymous ?? true,
40
+ });
41
+ // createdBy: only set on creation | modifiedBy: set on creation AND update
42
+ return columnField === 'createdBy'
43
+ ? col.$default(userIdGetter)
44
+ : col.$default(userIdGetter).$onUpdate(userIdGetter);
11
45
  }
12
46
  case 'string': {
13
- return (0, pg_core_1.text)(columnOpts.columnName);
47
+ const col = (0, pg_core_1.text)(columnOpts.columnName).$type();
48
+ const userIdGetter = () => getCurrentUserId({
49
+ columnField,
50
+ allowAnonymous: columnOpts.allowAnonymous ?? true,
51
+ });
52
+ // createdBy: only set on creation | modifiedBy: set on creation AND update
53
+ return columnField === 'createdBy'
54
+ ? col.$default(userIdGetter)
55
+ : col.$default(userIdGetter).$onUpdate(userIdGetter);
14
56
  }
15
57
  default: {
16
58
  throw (0, ignis_helpers_1.getError)({
@@ -20,16 +62,10 @@ const buildUserAuditColumn = (opts) => {
20
62
  }
21
63
  };
22
64
  const generateUserAuditColumnDefs = (opts) => {
23
- const { created = { dataType: 'number', columnName: 'created_by' }, modified = { dataType: 'number', columnName: 'modified_by' }, } = opts ?? {};
65
+ const { created = { dataType: 'number', columnName: 'created_by', allowAnonymous: true }, modified = { dataType: 'number', columnName: 'modified_by', allowAnonymous: true }, } = opts ?? {};
24
66
  return {
25
- createdBy: buildUserAuditColumn({
26
- columnOpts: created,
27
- columnField: 'createdBy',
28
- }),
29
- modifiedBy: buildUserAuditColumn({
30
- columnOpts: modified,
31
- columnField: 'modifiedBy',
32
- }),
67
+ createdBy: buildUserAuditColumn({ columnOpts: created, columnField: 'createdBy' }),
68
+ modifiedBy: buildUserAuditColumn({ columnOpts: modified, columnField: 'modifiedBy' }),
33
69
  };
34
70
  };
35
71
  exports.generateUserAuditColumnDefs = generateUserAuditColumnDefs;
@@ -1 +1 @@
1
- {"version":3,"file":"user-audit.enricher.js","sourceRoot":"","sources":["../../../../src/base/models/enrichers/user-audit.enricher.ts"],"names":[],"mappings":";;;AAAA,0DAAkD;AAClD,iDAAmG;AAoBnG,MAAM,oBAAoB,GAAG,CAAC,IAG7B,EAAE,EAAE;IACH,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IACzC,QAAQ,UAAU,CAAC,QAAQ,EAAE,CAAC;QAC5B,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,OAAO,IAAA,iBAAO,EAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,OAAO,IAAA,cAAI,EAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,IAAA,wBAAQ,EAAC;gBACb,OAAO,EAAE,2CAA2C,WAAW,cAAe,UAAmC,CAAC,QAAQ,gCAAgC;aAC3J,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEK,MAAM,2BAA2B,GAAG,CAAC,IAAgC,EAAE,EAAE;IAC9E,MAAM,EACJ,OAAO,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,EAC1D,QAAQ,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,GAC7D,GAAG,IAAI,IAAI,EAAE,CAAC;IAEf,OAAO;QACL,SAAS,EAAE,oBAAoB,CAAC;YAC9B,UAAU,EAAE,OAAO;YACnB,WAAW,EAAE,WAAW;SACzB,CAAC;QACF,UAAU,EAAE,oBAAoB,CAAC;YAC/B,UAAU,EAAE,QAAQ;YACpB,WAAW,EAAE,YAAY;SAC1B,CAAC;KACH,CAAC;AACJ,CAAC,CAAC;AAhBW,QAAA,2BAA2B,+BAgBtC;AAEK,MAAM,eAAe,GAAG,CAC7B,UAA6B,EAC7B,IAAgC,EACa,EAAE;IAC/C,MAAM,IAAI,GAAG,IAAA,mCAA2B,EAAC,IAAI,CAAC,CAAC;IAC/C,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,IAAI,EAAiD,CAAC;AACnF,CAAC,CAAC;AANW,QAAA,eAAe,mBAM1B"}
1
+ {"version":3,"file":"user-audit.enricher.js","sourceRoot":"","sources":["../../../../src/base/models/enrichers/user-audit.enricher.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,77 @@
1
1
  import { TConstValue } from '@venizia/ignis-helpers';
2
+ /**
3
+ * Default pagination limit for repository queries.
4
+ * Used when no limit is explicitly specified in filter options.
5
+ */
2
6
  export declare const DEFAULT_LIMIT = 10;
7
+ /**
8
+ * Defines the operation scope for repository instances.
9
+ * Controls whether a repository can perform read-only or read-write operations.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * // Check if a scope is valid
14
+ * RepositoryOperationScopes.isValid('READ_ONLY'); // true
15
+ *
16
+ * // Use in repository configuration
17
+ * const scope = RepositoryOperationScopes.READ_WRITE;
18
+ * ```
19
+ */
3
20
  export declare class RepositoryOperationScopes {
21
+ /** Repository can only perform read operations (find, count, existsWith). */
4
22
  static readonly READ_ONLY = "READ_ONLY";
23
+ /** Repository can only perform write operations (create, update, delete). */
5
24
  static readonly WRITE_ONLY = "WRITE_ONLY";
25
+ /** Repository can perform both read and write operations. */
6
26
  static readonly READ_WRITE = "READ_WRITE";
27
+ /** Set of all valid operation scopes for validation. */
7
28
  static readonly SCHEME_SET: Set<string>;
29
+ /**
30
+ * Validates if a given string is a valid operation scope.
31
+ *
32
+ * @param orgType - The scope string to validate
33
+ * @returns True if the scope is valid, false otherwise
34
+ */
8
35
  static isValid(orgType: string): boolean;
9
36
  }
37
+ /**
38
+ * Type representing valid repository operation scope values.
39
+ * Derived from {@link RepositoryOperationScopes} static properties.
40
+ */
10
41
  export type TRepositoryOperationScope = TConstValue<typeof RepositoryOperationScopes>;
42
+ /**
43
+ * Defines the type of relation between entities in the ORM.
44
+ * Used for configuring entity relationships (one-to-one, one-to-many, many-to-one).
45
+ *
46
+ * @example
47
+ * ```typescript
48
+ * // Define a one-to-many relation
49
+ * const relation: TRelationConfig = {
50
+ * name: 'posts',
51
+ * type: RelationTypes.MANY,
52
+ * schema: PostSchema,
53
+ * metadata: { fields: [Post.schema.authorId], references: [User.schema.id] }
54
+ * };
55
+ * ```
56
+ */
11
57
  export declare class RelationTypes {
58
+ /** Represents a one-to-one or many-to-one relation. */
12
59
  static readonly ONE = "one";
60
+ /** Represents a one-to-many relation. */
13
61
  static readonly MANY = "many";
62
+ /** Set of all valid relation types for validation. */
14
63
  static readonly SCHEME_SET: Set<string>;
64
+ /**
65
+ * Validates if a given string is a valid relation type.
66
+ *
67
+ * @param orgType - The relation type string to validate
68
+ * @returns True if the relation type is valid, false otherwise
69
+ */
15
70
  static isValid(orgType: string): boolean;
16
71
  }
72
+ /**
73
+ * Type representing valid relation type values.
74
+ * Derived from {@link RelationTypes} static properties.
75
+ */
17
76
  export type TRelationType = TConstValue<typeof RelationTypes>;
18
77
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/base/repositories/common/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,eAAO,MAAM,aAAa,KAAK,CAAC;AAGhC,qBAAa,yBAAyB;IACpC,MAAM,CAAC,QAAQ,CAAC,SAAS,eAAe;IACxC,MAAM,CAAC,QAAQ,CAAC,UAAU,gBAAgB;IAC1C,MAAM,CAAC,QAAQ,CAAC,UAAU,gBAAgB;IAE1C,MAAM,CAAC,QAAQ,CAAC,UAAU,cAA+D;IAEzF,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;CAGzC;AAED,MAAM,MAAM,yBAAyB,GAAG,WAAW,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAGtF,qBAAa,aAAa;IACxB,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAC5B,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;IAE9B,MAAM,CAAC,QAAQ,CAAC,UAAU,cAAkC;IAE5D,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;CAGzC;AAED,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,aAAa,CAAC,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/base/repositories/common/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD;;;GAGG;AACH,eAAO,MAAM,aAAa,KAAK,CAAC;AAEhC;;;;;;;;;;;;GAYG;AACH,qBAAa,yBAAyB;IACpC,6EAA6E;IAC7E,MAAM,CAAC,QAAQ,CAAC,SAAS,eAAe;IAExC,6EAA6E;IAC7E,MAAM,CAAC,QAAQ,CAAC,UAAU,gBAAgB;IAE1C,6DAA6D;IAC7D,MAAM,CAAC,QAAQ,CAAC,UAAU,gBAAgB;IAE1C,wDAAwD;IACxD,MAAM,CAAC,QAAQ,CAAC,UAAU,cAA+D;IAEzF;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;CAGzC;AAED;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG,WAAW,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAEtF;;;;;;;;;;;;;;GAcG;AACH,qBAAa,aAAa;IACxB,uDAAuD;IACvD,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAE5B,yCAAyC;IACzC,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;IAE9B,sDAAsD;IACtD,MAAM,CAAC,QAAQ,CAAC,UAAU,cAAkC;IAE5D;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;CAGzC;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,aAAa,CAAC,CAAC"}
@@ -1,23 +1,72 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RelationTypes = exports.RepositoryOperationScopes = exports.DEFAULT_LIMIT = void 0;
4
+ /**
5
+ * Default pagination limit for repository queries.
6
+ * Used when no limit is explicitly specified in filter options.
7
+ */
4
8
  exports.DEFAULT_LIMIT = 10;
5
- // --------------------------------------------------------------------------------------
9
+ /**
10
+ * Defines the operation scope for repository instances.
11
+ * Controls whether a repository can perform read-only or read-write operations.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * // Check if a scope is valid
16
+ * RepositoryOperationScopes.isValid('READ_ONLY'); // true
17
+ *
18
+ * // Use in repository configuration
19
+ * const scope = RepositoryOperationScopes.READ_WRITE;
20
+ * ```
21
+ */
6
22
  class RepositoryOperationScopes {
23
+ /** Repository can only perform read operations (find, count, existsWith). */
7
24
  static { this.READ_ONLY = 'READ_ONLY'; }
25
+ /** Repository can only perform write operations (create, update, delete). */
8
26
  static { this.WRITE_ONLY = 'WRITE_ONLY'; }
27
+ /** Repository can perform both read and write operations. */
9
28
  static { this.READ_WRITE = 'READ_WRITE'; }
29
+ /** Set of all valid operation scopes for validation. */
10
30
  static { this.SCHEME_SET = new Set([this.READ_ONLY, this.WRITE_ONLY, this.READ_WRITE]); }
31
+ /**
32
+ * Validates if a given string is a valid operation scope.
33
+ *
34
+ * @param orgType - The scope string to validate
35
+ * @returns True if the scope is valid, false otherwise
36
+ */
11
37
  static isValid(orgType) {
12
38
  return this.SCHEME_SET.has(orgType);
13
39
  }
14
40
  }
15
41
  exports.RepositoryOperationScopes = RepositoryOperationScopes;
16
- // --------------------------------------------------------------------------------------
42
+ /**
43
+ * Defines the type of relation between entities in the ORM.
44
+ * Used for configuring entity relationships (one-to-one, one-to-many, many-to-one).
45
+ *
46
+ * @example
47
+ * ```typescript
48
+ * // Define a one-to-many relation
49
+ * const relation: TRelationConfig = {
50
+ * name: 'posts',
51
+ * type: RelationTypes.MANY,
52
+ * schema: PostSchema,
53
+ * metadata: { fields: [Post.schema.authorId], references: [User.schema.id] }
54
+ * };
55
+ * ```
56
+ */
17
57
  class RelationTypes {
58
+ /** Represents a one-to-one or many-to-one relation. */
18
59
  static { this.ONE = 'one'; }
60
+ /** Represents a one-to-many relation. */
19
61
  static { this.MANY = 'many'; }
62
+ /** Set of all valid relation types for validation. */
20
63
  static { this.SCHEME_SET = new Set([this.ONE, this.MANY]); }
64
+ /**
65
+ * Validates if a given string is a valid relation type.
66
+ *
67
+ * @param orgType - The relation type string to validate
68
+ * @returns True if the relation type is valid, false otherwise
69
+ */
21
70
  static isValid(orgType) {
22
71
  return this.SCHEME_SET.has(orgType);
23
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/base/repositories/common/constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,aAAa,GAAG,EAAE,CAAC;AAEhC,yFAAyF;AACzF,MAAa,yBAAyB;aACpB,cAAS,GAAG,WAAW,CAAC;aACxB,eAAU,GAAG,YAAY,CAAC;aAC1B,eAAU,GAAG,YAAY,CAAC;aAE1B,eAAU,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAEzF,MAAM,CAAC,OAAO,CAAC,OAAe;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;;AATH,8DAUC;AAID,yFAAyF;AACzF,MAAa,aAAa;aACR,QAAG,GAAG,KAAK,CAAC;aACZ,SAAI,GAAG,MAAM,CAAC;aAEd,eAAU,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE5D,MAAM,CAAC,OAAO,CAAC,OAAe;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;;AARH,sCASC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/base/repositories/common/constants.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACU,QAAA,aAAa,GAAG,EAAE,CAAC;AAEhC;;;;;;;;;;;;GAYG;AACH,MAAa,yBAAyB;IACpC,6EAA6E;aAC7D,cAAS,GAAG,WAAW,CAAC;IAExC,6EAA6E;aAC7D,eAAU,GAAG,YAAY,CAAC;IAE1C,6DAA6D;aAC7C,eAAU,GAAG,YAAY,CAAC;IAE1C,wDAAwD;aACxC,eAAU,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAEzF;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,OAAe;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;;AArBH,8DAsBC;AAQD;;;;;;;;;;;;;;GAcG;AACH,MAAa,aAAa;IACxB,uDAAuD;aACvC,QAAG,GAAG,KAAK,CAAC;IAE5B,yCAAyC;aACzB,SAAI,GAAG,MAAM,CAAC;IAE9B,sDAAsD;aACtC,eAAU,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE5D;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,OAAe;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;;AAlBH,sCAmBC"}