@explorins/pers-shared 2.1.12 → 2.1.13

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 (201) hide show
  1. package/package.json +1 -1
  2. package/dist/cjs/internal/database/index.d.ts +0 -6
  3. package/dist/cjs/internal/database/index.d.ts.map +0 -1
  4. package/dist/cjs/internal/database/index.js +0 -24
  5. package/dist/cjs/internal/database/index.js.map +0 -1
  6. package/dist/cjs/internal/database/models/base.model.d.ts +0 -7
  7. package/dist/cjs/internal/database/models/base.model.d.ts.map +0 -1
  8. package/dist/cjs/internal/database/models/base.model.js +0 -11
  9. package/dist/cjs/internal/database/models/base.model.js.map +0 -1
  10. package/dist/cjs/internal/database/models/fixture.model.d.ts +0 -4
  11. package/dist/cjs/internal/database/models/fixture.model.d.ts.map +0 -1
  12. package/dist/cjs/internal/database/models/fixture.model.js +0 -8
  13. package/dist/cjs/internal/database/models/fixture.model.js.map +0 -1
  14. package/dist/cjs/internal/database/schemas/fixture-fields.schema.d.ts +0 -5
  15. package/dist/cjs/internal/database/schemas/fixture-fields.schema.d.ts.map +0 -1
  16. package/dist/cjs/internal/database/schemas/fixture-fields.schema.js +0 -11
  17. package/dist/cjs/internal/database/schemas/fixture-fields.schema.js.map +0 -1
  18. package/dist/cjs/internal/database/schemas/shared-fields.schema.d.ts +0 -44
  19. package/dist/cjs/internal/database/schemas/shared-fields.schema.d.ts.map +0 -1
  20. package/dist/cjs/internal/database/schemas/shared-fields.schema.js +0 -64
  21. package/dist/cjs/internal/database/schemas/shared-fields.schema.js.map +0 -1
  22. package/dist/cjs/internal/database/schemas/tenant-fields.schema.d.ts +0 -51
  23. package/dist/cjs/internal/database/schemas/tenant-fields.schema.d.ts.map +0 -1
  24. package/dist/cjs/internal/database/schemas/tenant-fields.schema.js +0 -57
  25. package/dist/cjs/internal/database/schemas/tenant-fields.schema.js.map +0 -1
  26. package/dist/cjs/internal/enums/lambda.enum.d.ts +0 -28
  27. package/dist/cjs/internal/enums/lambda.enum.d.ts.map +0 -1
  28. package/dist/cjs/internal/enums/lambda.enum.js +0 -34
  29. package/dist/cjs/internal/enums/lambda.enum.js.map +0 -1
  30. package/dist/cjs/internal/exceptions/base/error-classification-enums.d.ts +0 -118
  31. package/dist/cjs/internal/exceptions/base/error-classification-enums.d.ts.map +0 -1
  32. package/dist/cjs/internal/exceptions/base/error-classification-enums.js +0 -111
  33. package/dist/cjs/internal/exceptions/base/error-classification-enums.js.map +0 -1
  34. package/dist/cjs/internal/exceptions/base/error-classification.interface.d.ts +0 -48
  35. package/dist/cjs/internal/exceptions/base/error-classification.interface.d.ts.map +0 -1
  36. package/dist/cjs/internal/exceptions/base/error-classification.interface.js +0 -6
  37. package/dist/cjs/internal/exceptions/base/error-classification.interface.js.map +0 -1
  38. package/dist/cjs/internal/exceptions/base/error-classifier.d.ts +0 -23
  39. package/dist/cjs/internal/exceptions/base/error-classifier.d.ts.map +0 -1
  40. package/dist/cjs/internal/exceptions/base/error-classifier.js +0 -149
  41. package/dist/cjs/internal/exceptions/base/error-classifier.js.map +0 -1
  42. package/dist/cjs/internal/exceptions/index.d.ts +0 -3
  43. package/dist/cjs/internal/exceptions/index.d.ts.map +0 -1
  44. package/dist/cjs/internal/exceptions/index.js +0 -24
  45. package/dist/cjs/internal/exceptions/index.js.map +0 -1
  46. package/dist/cjs/internal/functions/crypto.functions.d.ts +0 -16
  47. package/dist/cjs/internal/functions/crypto.functions.d.ts.map +0 -1
  48. package/dist/cjs/internal/functions/crypto.functions.js +0 -110
  49. package/dist/cjs/internal/functions/crypto.functions.js.map +0 -1
  50. package/dist/cjs/internal/functions/helper.functions.d.ts +0 -10
  51. package/dist/cjs/internal/functions/helper.functions.d.ts.map +0 -1
  52. package/dist/cjs/internal/functions/helper.functions.js +0 -38
  53. package/dist/cjs/internal/functions/helper.functions.js.map +0 -1
  54. package/dist/cjs/internal/functions/index.d.ts +0 -4
  55. package/dist/cjs/internal/functions/index.d.ts.map +0 -1
  56. package/dist/cjs/internal/functions/index.js +0 -21
  57. package/dist/cjs/internal/functions/index.js.map +0 -1
  58. package/dist/cjs/internal/functions/request.functions.d.ts +0 -14
  59. package/dist/cjs/internal/functions/request.functions.d.ts.map +0 -1
  60. package/dist/cjs/internal/functions/request.functions.js +0 -69
  61. package/dist/cjs/internal/functions/request.functions.js.map +0 -1
  62. package/dist/cjs/internal/index.d.ts +0 -14
  63. package/dist/cjs/internal/index.d.ts.map +0 -1
  64. package/dist/cjs/internal/index.js +0 -42
  65. package/dist/cjs/internal/index.js.map +0 -1
  66. package/dist/cjs/internal/interfaces/index.d.ts +0 -3
  67. package/dist/cjs/internal/interfaces/index.d.ts.map +0 -1
  68. package/dist/cjs/internal/interfaces/index.js +0 -19
  69. package/dist/cjs/internal/interfaces/index.js.map +0 -1
  70. package/dist/cjs/internal/interfaces/request.interface.d.ts +0 -21
  71. package/dist/cjs/internal/interfaces/request.interface.d.ts.map +0 -1
  72. package/dist/cjs/internal/interfaces/request.interface.js +0 -15
  73. package/dist/cjs/internal/interfaces/request.interface.js.map +0 -1
  74. package/dist/cjs/internal/interfaces/stripe-payment-intent-metadata.interface.d.ts +0 -9
  75. package/dist/cjs/internal/interfaces/stripe-payment-intent-metadata.interface.d.ts.map +0 -1
  76. package/dist/cjs/internal/interfaces/stripe-payment-intent-metadata.interface.js +0 -3
  77. package/dist/cjs/internal/interfaces/stripe-payment-intent-metadata.interface.js.map +0 -1
  78. package/dist/cjs/internal/internal-index.d.ts +0 -8
  79. package/dist/cjs/internal/internal-index.d.ts.map +0 -1
  80. package/dist/cjs/internal/internal-index.js +0 -33
  81. package/dist/cjs/internal/internal-index.js.map +0 -1
  82. package/dist/cjs/internal/orchestrators/base-orchestrator.d.ts +0 -90
  83. package/dist/cjs/internal/orchestrators/base-orchestrator.d.ts.map +0 -1
  84. package/dist/cjs/internal/orchestrators/base-orchestrator.js +0 -124
  85. package/dist/cjs/internal/orchestrators/base-orchestrator.js.map +0 -1
  86. package/dist/cjs/internal/orchestrators/base-workflow.d.ts +0 -50
  87. package/dist/cjs/internal/orchestrators/base-workflow.d.ts.map +0 -1
  88. package/dist/cjs/internal/orchestrators/base-workflow.js +0 -68
  89. package/dist/cjs/internal/orchestrators/base-workflow.js.map +0 -1
  90. package/dist/cjs/internal/orchestrators/index.d.ts +0 -26
  91. package/dist/cjs/internal/orchestrators/index.d.ts.map +0 -1
  92. package/dist/cjs/internal/orchestrators/index.js +0 -46
  93. package/dist/cjs/internal/orchestrators/index.js.map +0 -1
  94. package/dist/cjs/internal/utils/index.d.ts +0 -2
  95. package/dist/cjs/internal/utils/index.d.ts.map +0 -1
  96. package/dist/cjs/internal/utils/index.js +0 -19
  97. package/dist/cjs/internal/utils/index.js.map +0 -1
  98. package/dist/cjs/internal/utils/validation.utils.d.ts +0 -49
  99. package/dist/cjs/internal/utils/validation.utils.d.ts.map +0 -1
  100. package/dist/cjs/internal/utils/validation.utils.js +0 -76
  101. package/dist/cjs/internal/utils/validation.utils.js.map +0 -1
  102. package/dist/esm/internal/database/index.d.ts +0 -6
  103. package/dist/esm/internal/database/index.d.ts.map +0 -1
  104. package/dist/esm/internal/database/index.js +0 -8
  105. package/dist/esm/internal/database/index.js.map +0 -1
  106. package/dist/esm/internal/database/models/base.model.d.ts +0 -7
  107. package/dist/esm/internal/database/models/base.model.d.ts.map +0 -1
  108. package/dist/esm/internal/database/models/base.model.js +0 -7
  109. package/dist/esm/internal/database/models/base.model.js.map +0 -1
  110. package/dist/esm/internal/database/models/fixture.model.d.ts +0 -4
  111. package/dist/esm/internal/database/models/fixture.model.d.ts.map +0 -1
  112. package/dist/esm/internal/database/models/fixture.model.js +0 -4
  113. package/dist/esm/internal/database/models/fixture.model.js.map +0 -1
  114. package/dist/esm/internal/database/schemas/fixture-fields.schema.d.ts +0 -5
  115. package/dist/esm/internal/database/schemas/fixture-fields.schema.d.ts.map +0 -1
  116. package/dist/esm/internal/database/schemas/fixture-fields.schema.js +0 -8
  117. package/dist/esm/internal/database/schemas/fixture-fields.schema.js.map +0 -1
  118. package/dist/esm/internal/database/schemas/shared-fields.schema.d.ts +0 -44
  119. package/dist/esm/internal/database/schemas/shared-fields.schema.d.ts.map +0 -1
  120. package/dist/esm/internal/database/schemas/shared-fields.schema.js +0 -61
  121. package/dist/esm/internal/database/schemas/shared-fields.schema.js.map +0 -1
  122. package/dist/esm/internal/database/schemas/tenant-fields.schema.d.ts +0 -51
  123. package/dist/esm/internal/database/schemas/tenant-fields.schema.d.ts.map +0 -1
  124. package/dist/esm/internal/database/schemas/tenant-fields.schema.js +0 -54
  125. package/dist/esm/internal/database/schemas/tenant-fields.schema.js.map +0 -1
  126. package/dist/esm/internal/enums/lambda.enum.d.ts +0 -28
  127. package/dist/esm/internal/enums/lambda.enum.d.ts.map +0 -1
  128. package/dist/esm/internal/enums/lambda.enum.js +0 -31
  129. package/dist/esm/internal/enums/lambda.enum.js.map +0 -1
  130. package/dist/esm/internal/exceptions/base/error-classification-enums.d.ts +0 -118
  131. package/dist/esm/internal/exceptions/base/error-classification-enums.d.ts.map +0 -1
  132. package/dist/esm/internal/exceptions/base/error-classification-enums.js +0 -108
  133. package/dist/esm/internal/exceptions/base/error-classification-enums.js.map +0 -1
  134. package/dist/esm/internal/exceptions/base/error-classification.interface.d.ts +0 -48
  135. package/dist/esm/internal/exceptions/base/error-classification.interface.d.ts.map +0 -1
  136. package/dist/esm/internal/exceptions/base/error-classification.interface.js +0 -5
  137. package/dist/esm/internal/exceptions/base/error-classification.interface.js.map +0 -1
  138. package/dist/esm/internal/exceptions/base/error-classifier.d.ts +0 -23
  139. package/dist/esm/internal/exceptions/base/error-classifier.d.ts.map +0 -1
  140. package/dist/esm/internal/exceptions/base/error-classifier.js +0 -145
  141. package/dist/esm/internal/exceptions/base/error-classifier.js.map +0 -1
  142. package/dist/esm/internal/exceptions/index.d.ts +0 -3
  143. package/dist/esm/internal/exceptions/index.d.ts.map +0 -1
  144. package/dist/esm/internal/exceptions/index.js +0 -6
  145. package/dist/esm/internal/exceptions/index.js.map +0 -1
  146. package/dist/esm/internal/functions/crypto.functions.d.ts +0 -16
  147. package/dist/esm/internal/functions/crypto.functions.d.ts.map +0 -1
  148. package/dist/esm/internal/functions/crypto.functions.js +0 -67
  149. package/dist/esm/internal/functions/crypto.functions.js.map +0 -1
  150. package/dist/esm/internal/functions/helper.functions.d.ts +0 -10
  151. package/dist/esm/internal/functions/helper.functions.d.ts.map +0 -1
  152. package/dist/esm/internal/functions/helper.functions.js +0 -32
  153. package/dist/esm/internal/functions/helper.functions.js.map +0 -1
  154. package/dist/esm/internal/functions/index.d.ts +0 -4
  155. package/dist/esm/internal/functions/index.d.ts.map +0 -1
  156. package/dist/esm/internal/functions/index.js +0 -5
  157. package/dist/esm/internal/functions/index.js.map +0 -1
  158. package/dist/esm/internal/functions/request.functions.d.ts +0 -14
  159. package/dist/esm/internal/functions/request.functions.d.ts.map +0 -1
  160. package/dist/esm/internal/functions/request.functions.js +0 -61
  161. package/dist/esm/internal/functions/request.functions.js.map +0 -1
  162. package/dist/esm/internal/index.d.ts +0 -14
  163. package/dist/esm/internal/index.d.ts.map +0 -1
  164. package/dist/esm/internal/index.js +0 -26
  165. package/dist/esm/internal/index.js.map +0 -1
  166. package/dist/esm/internal/interfaces/index.d.ts +0 -3
  167. package/dist/esm/internal/interfaces/index.d.ts.map +0 -1
  168. package/dist/esm/internal/interfaces/index.js +0 -3
  169. package/dist/esm/internal/interfaces/index.js.map +0 -1
  170. package/dist/esm/internal/interfaces/request.interface.d.ts +0 -21
  171. package/dist/esm/internal/interfaces/request.interface.d.ts.map +0 -1
  172. package/dist/esm/internal/interfaces/request.interface.js +0 -11
  173. package/dist/esm/internal/interfaces/request.interface.js.map +0 -1
  174. package/dist/esm/internal/interfaces/stripe-payment-intent-metadata.interface.d.ts +0 -9
  175. package/dist/esm/internal/interfaces/stripe-payment-intent-metadata.interface.d.ts.map +0 -1
  176. package/dist/esm/internal/interfaces/stripe-payment-intent-metadata.interface.js +0 -2
  177. package/dist/esm/internal/interfaces/stripe-payment-intent-metadata.interface.js.map +0 -1
  178. package/dist/esm/internal/internal-index.d.ts +0 -8
  179. package/dist/esm/internal/internal-index.d.ts.map +0 -1
  180. package/dist/esm/internal/internal-index.js +0 -17
  181. package/dist/esm/internal/internal-index.js.map +0 -1
  182. package/dist/esm/internal/orchestrators/base-orchestrator.d.ts +0 -90
  183. package/dist/esm/internal/orchestrators/base-orchestrator.d.ts.map +0 -1
  184. package/dist/esm/internal/orchestrators/base-orchestrator.js +0 -116
  185. package/dist/esm/internal/orchestrators/base-orchestrator.js.map +0 -1
  186. package/dist/esm/internal/orchestrators/base-workflow.d.ts +0 -50
  187. package/dist/esm/internal/orchestrators/base-workflow.d.ts.map +0 -1
  188. package/dist/esm/internal/orchestrators/base-workflow.js +0 -64
  189. package/dist/esm/internal/orchestrators/base-workflow.js.map +0 -1
  190. package/dist/esm/internal/orchestrators/index.d.ts +0 -26
  191. package/dist/esm/internal/orchestrators/index.d.ts.map +0 -1
  192. package/dist/esm/internal/orchestrators/index.js +0 -30
  193. package/dist/esm/internal/orchestrators/index.js.map +0 -1
  194. package/dist/esm/internal/utils/index.d.ts +0 -2
  195. package/dist/esm/internal/utils/index.d.ts.map +0 -1
  196. package/dist/esm/internal/utils/index.js +0 -3
  197. package/dist/esm/internal/utils/index.js.map +0 -1
  198. package/dist/esm/internal/utils/validation.utils.d.ts +0 -49
  199. package/dist/esm/internal/utils/validation.utils.d.ts.map +0 -1
  200. package/dist/esm/internal/utils/validation.utils.js +0 -70
  201. package/dist/esm/internal/utils/validation.utils.js.map +0 -1
@@ -1,68 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseWorkflow = void 0;
4
- const common_1 = require("@nestjs/common");
5
- /**
6
- * BaseWorkflow - Business Process Coordination Pattern
7
- *
8
- * @description Foundation for business workflow coordination in PERS domains.
9
- * Distinct from BaseOrchestrator which handles technical CQRS coordination.
10
- *
11
- * ARCHITECTURAL DISTINCTION:
12
- * - BaseOrchestrator: Technical coordination (CQRS, queries, commands)
13
- * - BaseWorkflow: Business process coordination (orchestrator choreography)
14
- *
15
- * @usage Extend this class for domain-specific business workflows:
16
- * ```typescript
17
- * @Injectable()
18
- * export class ServerTransactionWorkflow extends BaseWorkflow {
19
- * constructor(
20
- * private readonly walletOrchestrator: WalletResolutionOrchestrator,
21
- * private readonly tokenOrchestrator: TokenResolutionOrchestrator
22
- * ) {
23
- * super(ServerTransactionWorkflow.name);
24
- * }
25
- *
26
- * async executeTransactionFlow(dto: TransactionRequestDTO): Promise<TransactionDTO> {
27
- * return this.executeWorkflowStep(async () => {
28
- * const token = await this.tokenOrchestrator.resolveToken(dto.token);
29
- * const addresses = await this.walletOrchestrator.resolveAddresses(dto, token.chainId);
30
- * return this.createTransaction(token, addresses, dto);
31
- * }, 'Transaction Creation Flow');
32
- * }
33
- * }
34
- * ```
35
- *
36
- * @library @explorins/pers-shared-patterns
37
- * @version 1.0.0
38
- * @since September 2025
39
- */
40
- class BaseWorkflow {
41
- logger;
42
- constructor(loggerContext) {
43
- this.logger = new common_1.Logger(loggerContext);
44
- }
45
- /**
46
- * Execute a workflow step with standardized logging and error handling
47
- *
48
- * @param step - Function to execute as workflow step
49
- * @param stepName - Human-readable name for the step
50
- * @param context - Optional context for logging
51
- * @returns Promise resolving to step result
52
- */
53
- async executeWorkflowStep(step, stepName, context) {
54
- try {
55
- this.logger.debug(`🎯 Starting workflow step: ${stepName}`, context);
56
- const result = await step();
57
- this.logger.debug(`✅ Completed workflow step: ${stepName}`, context);
58
- return result;
59
- }
60
- catch (error) {
61
- const errorMessage = error instanceof Error ? error.message : String(error);
62
- this.logger.error(`❌ Failed workflow step: ${stepName}: ${errorMessage}`, { ...context, error });
63
- throw error; // Let business errors flow through unchanged
64
- }
65
- }
66
- }
67
- exports.BaseWorkflow = BaseWorkflow;
68
- //# sourceMappingURL=base-workflow.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base-workflow.js","sourceRoot":"","sources":["../../../../src/internal/orchestrators/base-workflow.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAsB,YAAY;IACb,MAAM,CAAS;IAElC,YAAsB,aAAqB;QACzC,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,aAAa,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;;OAOG;IACO,KAAK,CAAC,mBAAmB,CACjC,IAAsB,EACtB,QAAgB,EAChB,OAA6B;QAE7B,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;YACrE,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;YACrE,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,QAAQ,KAAK,YAAY,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YACjG,MAAM,KAAK,CAAC,CAAC,6CAA6C;QAC5D,CAAC;IACH,CAAC;CACF;AA/BD,oCA+BC"}
@@ -1,26 +0,0 @@
1
- /**
2
- * PERS Orchestrators - Application Layer Patterns
3
- *
4
- * @description Centralized orchestration utilities for DDD-compliant applications
5
- * - BaseOrchestrator: Foundation for all domain orchestrators (technical coordination)
6
- * - BaseWorkflow: Foundation for business process workflows (business coordination)
7
- * - OrchestrationError: Standard error handling
8
- * - OrchestrationResult: Type-safe result pattern
9
- * - Utility functions for error handling and result processing
10
- *
11
- * @usage Import directly from shared library:
12
- * ```typescript
13
- * import { BaseOrchestrator, BaseWorkflow, OrchestrationError } from '@explorins/pers-shared-patterns';
14
- * ```
15
- *
16
- * ARCHITECTURAL DISTINCTION:
17
- * - BaseOrchestrator: Technical coordination (CQRS, queries, commands)
18
- * - BaseWorkflow: Business process coordination (orchestrator choreography)
19
- *
20
- * @library @explorins/pers-shared-patterns
21
- * @version 2.0.0
22
- * @since August 2025
23
- */
24
- export * from './base-orchestrator';
25
- export * from './base-workflow';
26
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/internal/orchestrators/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC"}
@@ -1,46 +0,0 @@
1
- "use strict";
2
- /**
3
- * PERS Orchestrators - Application Layer Patterns
4
- *
5
- * @description Centralized orchestration utilities for DDD-compliant applications
6
- * - BaseOrchestrator: Foundation for all domain orchestrators (technical coordination)
7
- * - BaseWorkflow: Foundation for business process workflows (business coordination)
8
- * - OrchestrationError: Standard error handling
9
- * - OrchestrationResult: Type-safe result pattern
10
- * - Utility functions for error handling and result processing
11
- *
12
- * @usage Import directly from shared library:
13
- * ```typescript
14
- * import { BaseOrchestrator, BaseWorkflow, OrchestrationError } from '@explorins/pers-shared-patterns';
15
- * ```
16
- *
17
- * ARCHITECTURAL DISTINCTION:
18
- * - BaseOrchestrator: Technical coordination (CQRS, queries, commands)
19
- * - BaseWorkflow: Business process coordination (orchestrator choreography)
20
- *
21
- * @library @explorins/pers-shared-patterns
22
- * @version 2.0.0
23
- * @since August 2025
24
- */
25
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
26
- if (k2 === undefined) k2 = k;
27
- var desc = Object.getOwnPropertyDescriptor(m, k);
28
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
29
- desc = { enumerable: true, get: function() { return m[k]; } };
30
- }
31
- Object.defineProperty(o, k2, desc);
32
- }) : (function(o, m, k, k2) {
33
- if (k2 === undefined) k2 = k;
34
- o[k2] = m[k];
35
- }));
36
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
37
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
38
- };
39
- Object.defineProperty(exports, "__esModule", { value: true });
40
- __exportStar(require("./base-orchestrator"), exports);
41
- __exportStar(require("./base-workflow"), exports);
42
- // Future orchestration utilities can be added here:
43
- // export * from './validation-orchestrator';
44
- // export * from './audit-orchestrator';
45
- // export * from './notification-orchestrator';
46
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/internal/orchestrators/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;;;;;;;;;;;;;;;;AAEH,sDAAoC;AACpC,kDAAgC;AAEhC,oDAAoD;AACpD,6CAA6C;AAC7C,wCAAwC;AACxC,+CAA+C"}
@@ -1,2 +0,0 @@
1
- export * from './validation.utils';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/internal/utils/index.ts"],"names":[],"mappings":"AACA,cAAc,oBAAoB,CAAC"}
@@ -1,19 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- // Internal utilities for PERS architecture patterns
18
- __exportStar(require("./validation.utils"), exports);
19
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/internal/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAoD;AACpD,qDAAmC"}
@@ -1,49 +0,0 @@
1
- /**
2
- * PERS Validation Utilities
3
- *
4
- * Centralized validation functions for consistent data validation
5
- * across all PERS backend modules and domains.
6
- */
7
- /**
8
- * Validates email format according to RFC standards
9
- *
10
- * Features:
11
- * - RFC-compliant email regex pattern
12
- * - RFC 5321 length limit enforcement (254 characters)
13
- * - Performance optimized with length check first
14
- * - DoS protection against extremely long strings
15
- *
16
- * @param email - Email address to validate
17
- * @returns true if email is valid, false otherwise
18
- *
19
- * @example
20
- * ```typescript
21
- * isValidEmail('user@example.com'); // true
22
- * isValidEmail('invalid-email'); // false
23
- * isValidEmail('a'.repeat(300) + '@example.com'); // false (too long)
24
- * ```
25
- */
26
- export declare function isValidEmail(email: string): boolean;
27
- /**
28
- * Validates wallet address format
29
- *
30
- * @param address - Wallet address to validate
31
- * @returns true if address format is valid
32
- */
33
- export declare function isValidWalletAddress(address: string): boolean;
34
- /**
35
- * Validates that a string is not empty and meets minimum length requirements
36
- *
37
- * @param value - String to validate
38
- * @param minLength - Minimum required length (default: 1)
39
- * @returns true if string meets requirements
40
- */
41
- export declare function isValidNonEmptyString(value: string, minLength?: number): boolean;
42
- /**
43
- * Validates UUID format (v4)
44
- *
45
- * @param uuid - UUID string to validate
46
- * @returns true if UUID format is valid
47
- */
48
- export declare function isValidUuid(uuid: string): boolean;
49
- //# sourceMappingURL=validation.utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.utils.d.ts","sourceRoot":"","sources":["../../../../src/internal/utils/validation.utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CASnD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAM7D;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,GAAE,MAAU,GAAG,OAAO,CAEnF;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKjD"}
@@ -1,76 +0,0 @@
1
- "use strict";
2
- /**
3
- * PERS Validation Utilities
4
- *
5
- * Centralized validation functions for consistent data validation
6
- * across all PERS backend modules and domains.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.isValidEmail = isValidEmail;
10
- exports.isValidWalletAddress = isValidWalletAddress;
11
- exports.isValidNonEmptyString = isValidNonEmptyString;
12
- exports.isValidUuid = isValidUuid;
13
- /**
14
- * Validates email format according to RFC standards
15
- *
16
- * Features:
17
- * - RFC-compliant email regex pattern
18
- * - RFC 5321 length limit enforcement (254 characters)
19
- * - Performance optimized with length check first
20
- * - DoS protection against extremely long strings
21
- *
22
- * @param email - Email address to validate
23
- * @returns true if email is valid, false otherwise
24
- *
25
- * @example
26
- * ```typescript
27
- * isValidEmail('user@example.com'); // true
28
- * isValidEmail('invalid-email'); // false
29
- * isValidEmail('a'.repeat(300) + '@example.com'); // false (too long)
30
- * ```
31
- */
32
- function isValidEmail(email) {
33
- // Quick length check first for performance and RFC 5321 compliance
34
- if (!email || email.length > 254) {
35
- return false;
36
- }
37
- // RFC-compliant email regex pattern
38
- const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
39
- return emailRegex.test(email);
40
- }
41
- /**
42
- * Validates wallet address format
43
- *
44
- * @param address - Wallet address to validate
45
- * @returns true if address format is valid
46
- */
47
- function isValidWalletAddress(address) {
48
- if (!address)
49
- return false;
50
- // Ethereum address format: 0x followed by 40 hexadecimal characters
51
- const ethereumAddressRegex = /^0x[a-fA-F0-9]{40}$/;
52
- return ethereumAddressRegex.test(address);
53
- }
54
- /**
55
- * Validates that a string is not empty and meets minimum length requirements
56
- *
57
- * @param value - String to validate
58
- * @param minLength - Minimum required length (default: 1)
59
- * @returns true if string meets requirements
60
- */
61
- function isValidNonEmptyString(value, minLength = 1) {
62
- return typeof value === 'string' && value.trim().length >= minLength;
63
- }
64
- /**
65
- * Validates UUID format (v4)
66
- *
67
- * @param uuid - UUID string to validate
68
- * @returns true if UUID format is valid
69
- */
70
- function isValidUuid(uuid) {
71
- if (!uuid)
72
- return false;
73
- const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
74
- return uuidRegex.test(uuid);
75
- }
76
- //# sourceMappingURL=validation.utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.utils.js","sourceRoot":"","sources":["../../../../src/internal/utils/validation.utils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAqBH,oCASC;AAQD,oDAMC;AASD,sDAEC;AAQD,kCAKC;AAlED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,YAAY,CAAC,KAAa;IACxC,mEAAmE;IACnE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oCAAoC;IACpC,MAAM,UAAU,GAAG,4BAA4B,CAAC;IAChD,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,OAAe;IAClD,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAE3B,oEAAoE;IACpE,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;IACnD,OAAO,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,qBAAqB,CAAC,KAAa,EAAE,YAAoB,CAAC;IACxE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,SAAS,CAAC;AACvE,CAAC;AAED;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,IAAY;IACtC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAExB,MAAM,SAAS,GAAG,wEAAwE,CAAC;IAC3F,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC"}
@@ -1,6 +0,0 @@
1
- export * from './models/base.model';
2
- export * from './models/fixture.model';
3
- export * from './schemas/fixture-fields.schema';
4
- export * from './schemas/tenant-fields.schema';
5
- export * from './schemas/shared-fields.schema';
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/internal/database/index.ts"],"names":[],"mappings":"AAEA,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AAIvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC"}
@@ -1,8 +0,0 @@
1
- // Exporting models
2
- export * from './models/base.model';
3
- export * from './models/fixture.model';
4
- // Exporting schemas for shared fields
5
- export * from './schemas/fixture-fields.schema';
6
- export * from './schemas/tenant-fields.schema';
7
- export * from './schemas/shared-fields.schema';
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/internal/database/index.ts"],"names":[],"mappings":"AACA,mBAAmB;AACnB,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AAGvC,sCAAsC;AACtC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC"}
@@ -1,7 +0,0 @@
1
- export declare abstract class BaseModel {
2
- id?: string;
3
- createdAt?: Date;
4
- updatedAt?: Date;
5
- deletedAt?: Date;
6
- }
7
- //# sourceMappingURL=base.model.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.model.d.ts","sourceRoot":"","sources":["../../../../../src/internal/database/models/base.model.ts"],"names":[],"mappings":"AAAA,8BAAsB,SAAS;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB"}
@@ -1,7 +0,0 @@
1
- export class BaseModel {
2
- id;
3
- createdAt;
4
- updatedAt;
5
- deletedAt;
6
- }
7
- //# sourceMappingURL=base.model.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.model.js","sourceRoot":"","sources":["../../../../../src/internal/database/models/base.model.ts"],"names":[],"mappings":"AAAA,MAAM,OAAgB,SAAS;IAC7B,EAAE,CAAU;IACZ,SAAS,CAAQ;IACjB,SAAS,CAAQ;IACjB,SAAS,CAAQ;CAClB"}
@@ -1,4 +0,0 @@
1
- export declare abstract class FixtureModel {
2
- id?: number;
3
- }
4
- //# sourceMappingURL=fixture.model.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fixture.model.d.ts","sourceRoot":"","sources":["../../../../../src/internal/database/models/fixture.model.ts"],"names":[],"mappings":"AAAA,8BAAsB,YAAY;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;CACb"}
@@ -1,4 +0,0 @@
1
- export class FixtureModel {
2
- id;
3
- }
4
- //# sourceMappingURL=fixture.model.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fixture.model.js","sourceRoot":"","sources":["../../../../../src/internal/database/models/fixture.model.ts"],"names":[],"mappings":"AAAA,MAAM,OAAgB,YAAY;IAChC,EAAE,CAAU;CACb"}
@@ -1,5 +0,0 @@
1
- import { EntitySchemaColumnOptions } from "typeorm";
2
- export declare const fixtureFields: {
3
- [key: string]: EntitySchemaColumnOptions;
4
- };
5
- //# sourceMappingURL=fixture-fields.schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fixture-fields.schema.d.ts","sourceRoot":"","sources":["../../../../../src/internal/database/schemas/fixture-fields.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAEnD,eAAO,MAAM,aAAa,EAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAI,yBAAyB,CAAA;CAMvE,CAAC"}
@@ -1,8 +0,0 @@
1
- export const fixtureFields = {
2
- id: {
3
- type: Number,
4
- primary: true,
5
- generated: 'increment',
6
- },
7
- };
8
- //# sourceMappingURL=fixture-fields.schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fixture-fields.schema.js","sourceRoot":"","sources":["../../../../../src/internal/database/schemas/fixture-fields.schema.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAmD;IAC3E,EAAE,EAAE;QACF,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,WAAW;KACvB;CACF,CAAC"}
@@ -1,44 +0,0 @@
1
- import { EntitySchemaColumnOptions } from "typeorm";
2
- /**
3
- * Shared TypeORM Entity Fields
4
- *
5
- * MANDATORY for ALL TypeORM schemas in PERS Loyalty Backend
6
- *
7
- * Usage Pattern:
8
- * ```typescript
9
- * import { sharedFields } from '../../../base/infrastructure/typeorm/shared-fields.schema';
10
- *
11
- * // For non-tenant entities (system-wide data)
12
- * export const SystemSchema = new EntitySchema<SystemModel>({
13
- * columns: {
14
- * ...sharedFields, // ALWAYS include first
15
- * // entity-specific fields below
16
- * }
17
- * });
18
- *
19
- * // For tenant-specific entities (most common case)
20
- * import { tenantFields } from '../../../base/infrastructure/typeorm/multi-tenant-fields.schema';
21
- *
22
- * export const TenantSchema = new EntitySchema<TenantModel>({
23
- * columns: {
24
- * ...sharedFields, // ALWAYS include first
25
- * ...tenantFields, // Include for tenant isolation
26
- * // entity-specific fields below
27
- * },
28
- * indices: [
29
- * {
30
- * name: 'IDX_tenant_entities_tenant_id',
31
- * columns: ['tenantId'], // REQUIRED for tenant schemas
32
- * },
33
- * ],
34
- * });
35
- * ```
36
- *
37
- * Provides: id (UUID), createdAt, updatedAt, deletedAt (soft delete)
38
- * Combines with: tenantFields for multi-tenant support
39
- * See: /documentation/domain-model-best-practices.md
40
- */
41
- export declare const sharedFields: {
42
- [key: string]: EntitySchemaColumnOptions;
43
- };
44
- //# sourceMappingURL=shared-fields.schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shared-fields.schema.d.ts","sourceRoot":"","sources":["../../../../../src/internal/database/schemas/shared-fields.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,eAAO,MAAM,YAAY,EAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAI,yBAAyB,CAAA;CAoBtE,CAAC"}
@@ -1,61 +0,0 @@
1
- /**
2
- * Shared TypeORM Entity Fields
3
- *
4
- * MANDATORY for ALL TypeORM schemas in PERS Loyalty Backend
5
- *
6
- * Usage Pattern:
7
- * ```typescript
8
- * import { sharedFields } from '../../../base/infrastructure/typeorm/shared-fields.schema';
9
- *
10
- * // For non-tenant entities (system-wide data)
11
- * export const SystemSchema = new EntitySchema<SystemModel>({
12
- * columns: {
13
- * ...sharedFields, // ALWAYS include first
14
- * // entity-specific fields below
15
- * }
16
- * });
17
- *
18
- * // For tenant-specific entities (most common case)
19
- * import { tenantFields } from '../../../base/infrastructure/typeorm/multi-tenant-fields.schema';
20
- *
21
- * export const TenantSchema = new EntitySchema<TenantModel>({
22
- * columns: {
23
- * ...sharedFields, // ALWAYS include first
24
- * ...tenantFields, // Include for tenant isolation
25
- * // entity-specific fields below
26
- * },
27
- * indices: [
28
- * {
29
- * name: 'IDX_tenant_entities_tenant_id',
30
- * columns: ['tenantId'], // REQUIRED for tenant schemas
31
- * },
32
- * ],
33
- * });
34
- * ```
35
- *
36
- * Provides: id (UUID), createdAt, updatedAt, deletedAt (soft delete)
37
- * Combines with: tenantFields for multi-tenant support
38
- * See: /documentation/domain-model-best-practices.md
39
- */
40
- export const sharedFields = {
41
- id: {
42
- type: 'uuid',
43
- primary: true,
44
- generated: 'uuid',
45
- },
46
- createdAt: {
47
- type: Date,
48
- createDate: true,
49
- },
50
- updatedAt: {
51
- type: Date,
52
- nullable: true,
53
- updateDate: true,
54
- },
55
- deletedAt: {
56
- type: Date,
57
- nullable: true,
58
- deleteDate: true,
59
- },
60
- };
61
- //# sourceMappingURL=shared-fields.schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shared-fields.schema.js","sourceRoot":"","sources":["../../../../../src/internal/database/schemas/shared-fields.schema.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,CAAC,MAAM,YAAY,GAAmD;IAC1E,EAAE,EAAE;QACF,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,MAAM;KAClB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,IAAI;KACjB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,IAAI;KACjB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,IAAI;KACjB;CACF,CAAC"}
@@ -1,51 +0,0 @@
1
- import { EntitySchemaColumnOptions } from "typeorm";
2
- /**
3
- * Multi-Tenant TypeORM Entity Fields
4
- *
5
- * MANDATORY for tenant-specific data in PERS Loyalty Backend
6
- *
7
- * ✅ ALWAYS INCLUDE tenantFields for:
8
- * - User-specific data: SigningAccount, UserWallet, UserProfile, UserPreferences
9
- * - Business domain data: Campaign, Redemption, Transaction, TokenBalance
10
- * - API keys and authentication: ApiKey, RefreshToken, UserSession
11
- * - Tenant-specific configuration: BusinessSettings, CampaignTemplates
12
- * - Any data that varies by tenant/client
13
- *
14
- * ❌ EXCLUDE tenantFields for:
15
- * - System-wide shared data: TokenContract, GeolocationData, SystemSettings
16
- * - Static reference data: Country codes, currency rates, blockchain configs
17
- * - Cross-tenant shared resources (explicitly designed to be shared)
18
- *
19
- * Usage Pattern:
20
- * ```typescript
21
- * export const MySchema = new EntitySchema<MyModel>({
22
- * columns: {
23
- * ...sharedFields, // Base fields (id, timestamps, soft delete)
24
- * ...tenantFields, // Multi-tenant support (tenantId with RLS)
25
- * // entity-specific fields below
26
- * }
27
- * });
28
- * ```
29
- *
30
- * CRITICAL: When using tenantFields, MUST include RLS module:
31
- * ```typescript
32
- * @Module({
33
- * imports: [
34
- * TypeOrmModule.forFeature([MySchema]),
35
- * RLSModule.forFeature([MySchema]), // REQUIRED for Row Level Security
36
- * ],
37
- * })
38
- * ```
39
- *
40
- * Technical Details:
41
- * - Provides: tenantId with RLS (Row Level Security) automatic population
42
- * - RLS Function: Uses current_setting('rls.tenant_id') for automatic tenant isolation
43
- * - Database-level security: Prevents cross-tenant data leaks automatically
44
- * - Transparent filtering: All queries automatically filter by current tenant
45
- *
46
- * See: /documentation/domain-model-best-practices.md for complete patterns
47
- */
48
- export declare const tenantFields: {
49
- [key: string]: EntitySchemaColumnOptions;
50
- };
51
- //# sourceMappingURL=tenant-fields.schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tenant-fields.schema.d.ts","sourceRoot":"","sources":["../../../../../src/internal/database/schemas/tenant-fields.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,eAAO,MAAM,YAAY,EAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAI,yBAAyB,CAAA;CAMtE,CAAC"}
@@ -1,54 +0,0 @@
1
- /**
2
- * Multi-Tenant TypeORM Entity Fields
3
- *
4
- * MANDATORY for tenant-specific data in PERS Loyalty Backend
5
- *
6
- * ✅ ALWAYS INCLUDE tenantFields for:
7
- * - User-specific data: SigningAccount, UserWallet, UserProfile, UserPreferences
8
- * - Business domain data: Campaign, Redemption, Transaction, TokenBalance
9
- * - API keys and authentication: ApiKey, RefreshToken, UserSession
10
- * - Tenant-specific configuration: BusinessSettings, CampaignTemplates
11
- * - Any data that varies by tenant/client
12
- *
13
- * ❌ EXCLUDE tenantFields for:
14
- * - System-wide shared data: TokenContract, GeolocationData, SystemSettings
15
- * - Static reference data: Country codes, currency rates, blockchain configs
16
- * - Cross-tenant shared resources (explicitly designed to be shared)
17
- *
18
- * Usage Pattern:
19
- * ```typescript
20
- * export const MySchema = new EntitySchema<MyModel>({
21
- * columns: {
22
- * ...sharedFields, // Base fields (id, timestamps, soft delete)
23
- * ...tenantFields, // Multi-tenant support (tenantId with RLS)
24
- * // entity-specific fields below
25
- * }
26
- * });
27
- * ```
28
- *
29
- * CRITICAL: When using tenantFields, MUST include RLS module:
30
- * ```typescript
31
- * @Module({
32
- * imports: [
33
- * TypeOrmModule.forFeature([MySchema]),
34
- * RLSModule.forFeature([MySchema]), // REQUIRED for Row Level Security
35
- * ],
36
- * })
37
- * ```
38
- *
39
- * Technical Details:
40
- * - Provides: tenantId with RLS (Row Level Security) automatic population
41
- * - RLS Function: Uses current_setting('rls.tenant_id') for automatic tenant isolation
42
- * - Database-level security: Prevents cross-tenant data leaks automatically
43
- * - Transparent filtering: All queries automatically filter by current tenant
44
- *
45
- * See: /documentation/domain-model-best-practices.md for complete patterns
46
- */
47
- export const tenantFields = {
48
- tenantId: {
49
- type: String,
50
- nullable: true,
51
- default: () => "current_setting('rls.tenant_id')",
52
- },
53
- };
54
- //# sourceMappingURL=tenant-fields.schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tenant-fields.schema.js","sourceRoot":"","sources":["../../../../../src/internal/database/schemas/tenant-fields.schema.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,CAAC,MAAM,YAAY,GAAmD;IAC1E,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,GAAG,EAAE,CAAC,kCAAkC;KAClD;CACF,CAAC"}