@explorins/pers-shared 2.1.10 → 2.1.12
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.
- package/README.md +0 -0
- package/dist/cjs/index.d.ts +1 -3
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +0 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/interfaces/token-transaction-input-data.interface.d.ts +2 -1
- package/dist/cjs/interfaces/token-transaction-input-data.interface.d.ts.map +1 -1
- package/dist/cjs/internal/database/index.d.ts +6 -0
- package/dist/cjs/internal/database/index.d.ts.map +1 -0
- package/dist/cjs/internal/database/index.js +24 -0
- package/dist/cjs/internal/database/index.js.map +1 -0
- package/dist/cjs/internal/database/models/base.model.d.ts +7 -0
- package/dist/cjs/internal/database/models/base.model.d.ts.map +1 -0
- package/dist/cjs/internal/database/models/base.model.js +11 -0
- package/dist/cjs/internal/database/models/base.model.js.map +1 -0
- package/dist/cjs/internal/database/models/fixture.model.d.ts +4 -0
- package/dist/cjs/internal/database/models/fixture.model.d.ts.map +1 -0
- package/dist/cjs/internal/database/models/fixture.model.js +8 -0
- package/dist/cjs/internal/database/models/fixture.model.js.map +1 -0
- package/dist/cjs/internal/database/schemas/fixture-fields.schema.d.ts +5 -0
- package/dist/cjs/internal/database/schemas/fixture-fields.schema.d.ts.map +1 -0
- package/dist/cjs/internal/database/schemas/fixture-fields.schema.js +11 -0
- package/dist/cjs/internal/database/schemas/fixture-fields.schema.js.map +1 -0
- package/dist/cjs/internal/database/schemas/shared-fields.schema.d.ts +44 -0
- package/dist/cjs/internal/database/schemas/shared-fields.schema.d.ts.map +1 -0
- package/dist/cjs/internal/database/schemas/shared-fields.schema.js +64 -0
- package/dist/cjs/internal/database/schemas/shared-fields.schema.js.map +1 -0
- package/dist/cjs/internal/database/schemas/tenant-fields.schema.d.ts +51 -0
- package/dist/cjs/internal/database/schemas/tenant-fields.schema.d.ts.map +1 -0
- package/dist/cjs/internal/database/schemas/tenant-fields.schema.js +57 -0
- package/dist/cjs/internal/database/schemas/tenant-fields.schema.js.map +1 -0
- package/dist/cjs/internal/enums/lambda.enum.d.ts +28 -0
- package/dist/cjs/internal/enums/lambda.enum.d.ts.map +1 -0
- package/dist/cjs/internal/enums/lambda.enum.js +34 -0
- package/dist/cjs/internal/enums/lambda.enum.js.map +1 -0
- package/dist/cjs/internal/exceptions/base/error-classification-enums.d.ts +118 -0
- package/dist/cjs/internal/exceptions/base/error-classification-enums.d.ts.map +1 -0
- package/dist/cjs/internal/exceptions/base/error-classification-enums.js +111 -0
- package/dist/cjs/internal/exceptions/base/error-classification-enums.js.map +1 -0
- package/dist/cjs/internal/exceptions/base/error-classification.interface.d.ts +48 -0
- package/dist/cjs/internal/exceptions/base/error-classification.interface.d.ts.map +1 -0
- package/dist/cjs/internal/exceptions/base/error-classification.interface.js +6 -0
- package/dist/cjs/internal/exceptions/base/error-classification.interface.js.map +1 -0
- package/dist/cjs/internal/exceptions/base/error-classifier.d.ts +23 -0
- package/dist/cjs/internal/exceptions/base/error-classifier.d.ts.map +1 -0
- package/dist/cjs/internal/exceptions/base/error-classifier.js +149 -0
- package/dist/cjs/internal/exceptions/base/error-classifier.js.map +1 -0
- package/dist/cjs/internal/exceptions/index.d.ts +3 -0
- package/dist/cjs/internal/exceptions/index.d.ts.map +1 -0
- package/dist/cjs/internal/exceptions/index.js +24 -0
- package/dist/cjs/internal/exceptions/index.js.map +1 -0
- package/dist/cjs/internal/functions/crypto.functions.d.ts +16 -0
- package/dist/cjs/internal/functions/crypto.functions.d.ts.map +1 -0
- package/dist/cjs/internal/functions/crypto.functions.js +110 -0
- package/dist/cjs/internal/functions/crypto.functions.js.map +1 -0
- package/dist/cjs/internal/functions/helper.functions.d.ts +10 -0
- package/dist/cjs/internal/functions/helper.functions.d.ts.map +1 -0
- package/dist/cjs/internal/functions/helper.functions.js +38 -0
- package/dist/cjs/internal/functions/helper.functions.js.map +1 -0
- package/dist/cjs/internal/functions/index.d.ts +4 -0
- package/dist/cjs/internal/functions/index.d.ts.map +1 -0
- package/dist/cjs/internal/functions/index.js +21 -0
- package/dist/cjs/internal/functions/index.js.map +1 -0
- package/dist/cjs/internal/functions/request.functions.d.ts +14 -0
- package/dist/cjs/internal/functions/request.functions.d.ts.map +1 -0
- package/dist/cjs/internal/functions/request.functions.js +69 -0
- package/dist/cjs/internal/functions/request.functions.js.map +1 -0
- package/dist/cjs/internal/index.d.ts +14 -0
- package/dist/cjs/internal/index.d.ts.map +1 -0
- package/dist/cjs/internal/index.js +42 -0
- package/dist/cjs/internal/index.js.map +1 -0
- package/dist/cjs/internal/interfaces/index.d.ts +3 -0
- package/dist/cjs/internal/interfaces/index.d.ts.map +1 -0
- package/dist/cjs/internal/interfaces/index.js +19 -0
- package/dist/cjs/internal/interfaces/index.js.map +1 -0
- package/dist/cjs/internal/interfaces/request.interface.d.ts +21 -0
- package/dist/cjs/internal/interfaces/request.interface.d.ts.map +1 -0
- package/dist/cjs/internal/interfaces/request.interface.js +15 -0
- package/dist/cjs/internal/interfaces/request.interface.js.map +1 -0
- package/dist/cjs/internal/interfaces/stripe-payment-intent-metadata.interface.d.ts +9 -0
- package/dist/cjs/internal/interfaces/stripe-payment-intent-metadata.interface.d.ts.map +1 -0
- package/dist/cjs/internal/interfaces/stripe-payment-intent-metadata.interface.js +3 -0
- package/dist/cjs/internal/interfaces/stripe-payment-intent-metadata.interface.js.map +1 -0
- package/dist/cjs/internal/internal-index.d.ts +8 -0
- package/dist/cjs/internal/internal-index.d.ts.map +1 -0
- package/dist/cjs/internal/internal-index.js +33 -0
- package/dist/cjs/internal/internal-index.js.map +1 -0
- package/dist/cjs/internal/orchestrators/base-orchestrator.d.ts +90 -0
- package/dist/cjs/internal/orchestrators/base-orchestrator.d.ts.map +1 -0
- package/dist/cjs/internal/orchestrators/base-orchestrator.js +124 -0
- package/dist/cjs/internal/orchestrators/base-orchestrator.js.map +1 -0
- package/dist/cjs/internal/orchestrators/base-workflow.d.ts +50 -0
- package/dist/cjs/internal/orchestrators/base-workflow.d.ts.map +1 -0
- package/dist/cjs/internal/orchestrators/base-workflow.js +68 -0
- package/dist/cjs/internal/orchestrators/base-workflow.js.map +1 -0
- package/dist/cjs/internal/orchestrators/index.d.ts +26 -0
- package/dist/cjs/internal/orchestrators/index.d.ts.map +1 -0
- package/dist/cjs/internal/orchestrators/index.js +46 -0
- package/dist/cjs/internal/orchestrators/index.js.map +1 -0
- package/dist/cjs/internal/utils/index.d.ts +2 -0
- package/dist/cjs/internal/utils/index.d.ts.map +1 -0
- package/dist/cjs/internal/utils/index.js +19 -0
- package/dist/cjs/internal/utils/index.js.map +1 -0
- package/dist/cjs/internal/utils/validation.utils.d.ts +49 -0
- package/dist/cjs/internal/utils/validation.utils.d.ts.map +1 -0
- package/dist/cjs/internal/utils/validation.utils.js +76 -0
- package/dist/cjs/internal/utils/validation.utils.js.map +1 -0
- package/dist/esm/index.d.ts +1 -3
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +0 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/interfaces/token-transaction-input-data.interface.d.ts +2 -1
- package/dist/esm/interfaces/token-transaction-input-data.interface.d.ts.map +1 -1
- package/dist/esm/internal/database/index.d.ts +6 -0
- package/dist/esm/internal/database/index.d.ts.map +1 -0
- package/dist/esm/internal/database/index.js +8 -0
- package/dist/esm/internal/database/index.js.map +1 -0
- package/dist/esm/internal/database/models/base.model.d.ts +7 -0
- package/dist/esm/internal/database/models/base.model.d.ts.map +1 -0
- package/dist/esm/internal/database/models/base.model.js +7 -0
- package/dist/esm/internal/database/models/base.model.js.map +1 -0
- package/dist/esm/internal/database/models/fixture.model.d.ts +4 -0
- package/dist/esm/internal/database/models/fixture.model.d.ts.map +1 -0
- package/dist/esm/internal/database/models/fixture.model.js +4 -0
- package/dist/esm/internal/database/models/fixture.model.js.map +1 -0
- package/dist/esm/internal/database/schemas/fixture-fields.schema.d.ts +5 -0
- package/dist/esm/internal/database/schemas/fixture-fields.schema.d.ts.map +1 -0
- package/dist/esm/internal/database/schemas/fixture-fields.schema.js +8 -0
- package/dist/esm/internal/database/schemas/fixture-fields.schema.js.map +1 -0
- package/dist/esm/internal/database/schemas/shared-fields.schema.d.ts +44 -0
- package/dist/esm/internal/database/schemas/shared-fields.schema.d.ts.map +1 -0
- package/dist/esm/internal/database/schemas/shared-fields.schema.js +61 -0
- package/dist/esm/internal/database/schemas/shared-fields.schema.js.map +1 -0
- package/dist/esm/internal/database/schemas/tenant-fields.schema.d.ts +51 -0
- package/dist/esm/internal/database/schemas/tenant-fields.schema.d.ts.map +1 -0
- package/dist/esm/internal/database/schemas/tenant-fields.schema.js +54 -0
- package/dist/esm/internal/database/schemas/tenant-fields.schema.js.map +1 -0
- package/dist/esm/internal/enums/lambda.enum.d.ts +28 -0
- package/dist/esm/internal/enums/lambda.enum.d.ts.map +1 -0
- package/dist/esm/internal/enums/lambda.enum.js +31 -0
- package/dist/esm/internal/enums/lambda.enum.js.map +1 -0
- package/dist/esm/internal/exceptions/base/error-classification-enums.d.ts +118 -0
- package/dist/esm/internal/exceptions/base/error-classification-enums.d.ts.map +1 -0
- package/dist/esm/internal/exceptions/base/error-classification-enums.js +108 -0
- package/dist/esm/internal/exceptions/base/error-classification-enums.js.map +1 -0
- package/dist/esm/internal/exceptions/base/error-classification.interface.d.ts +48 -0
- package/dist/esm/internal/exceptions/base/error-classification.interface.d.ts.map +1 -0
- package/dist/esm/internal/exceptions/base/error-classification.interface.js +5 -0
- package/dist/esm/internal/exceptions/base/error-classification.interface.js.map +1 -0
- package/dist/esm/internal/exceptions/base/error-classifier.d.ts +23 -0
- package/dist/esm/internal/exceptions/base/error-classifier.d.ts.map +1 -0
- package/dist/esm/internal/exceptions/base/error-classifier.js +145 -0
- package/dist/esm/internal/exceptions/base/error-classifier.js.map +1 -0
- package/dist/esm/internal/exceptions/index.d.ts +3 -0
- package/dist/esm/internal/exceptions/index.d.ts.map +1 -0
- package/dist/esm/internal/exceptions/index.js +6 -0
- package/dist/esm/internal/exceptions/index.js.map +1 -0
- package/dist/esm/internal/functions/crypto.functions.d.ts +16 -0
- package/dist/esm/internal/functions/crypto.functions.d.ts.map +1 -0
- package/dist/esm/internal/functions/crypto.functions.js +67 -0
- package/dist/esm/internal/functions/crypto.functions.js.map +1 -0
- package/dist/esm/internal/functions/helper.functions.d.ts +10 -0
- package/dist/esm/internal/functions/helper.functions.d.ts.map +1 -0
- package/dist/esm/internal/functions/helper.functions.js +32 -0
- package/dist/esm/internal/functions/helper.functions.js.map +1 -0
- package/dist/esm/internal/functions/index.d.ts +4 -0
- package/dist/esm/internal/functions/index.d.ts.map +1 -0
- package/dist/esm/internal/functions/index.js +5 -0
- package/dist/esm/internal/functions/index.js.map +1 -0
- package/dist/esm/internal/functions/request.functions.d.ts +14 -0
- package/dist/esm/internal/functions/request.functions.d.ts.map +1 -0
- package/dist/esm/internal/functions/request.functions.js +61 -0
- package/dist/esm/internal/functions/request.functions.js.map +1 -0
- package/dist/esm/internal/index.d.ts +14 -0
- package/dist/esm/internal/index.d.ts.map +1 -0
- package/dist/esm/internal/index.js +26 -0
- package/dist/esm/internal/index.js.map +1 -0
- package/dist/esm/internal/interfaces/index.d.ts +3 -0
- package/dist/esm/internal/interfaces/index.d.ts.map +1 -0
- package/dist/esm/internal/interfaces/index.js +3 -0
- package/dist/esm/internal/interfaces/index.js.map +1 -0
- package/dist/esm/internal/interfaces/request.interface.d.ts +21 -0
- package/dist/esm/internal/interfaces/request.interface.d.ts.map +1 -0
- package/dist/esm/internal/interfaces/request.interface.js +11 -0
- package/dist/esm/internal/interfaces/request.interface.js.map +1 -0
- package/dist/esm/internal/interfaces/stripe-payment-intent-metadata.interface.d.ts +9 -0
- package/dist/esm/internal/interfaces/stripe-payment-intent-metadata.interface.d.ts.map +1 -0
- package/dist/esm/internal/interfaces/stripe-payment-intent-metadata.interface.js +2 -0
- package/dist/esm/internal/interfaces/stripe-payment-intent-metadata.interface.js.map +1 -0
- package/dist/esm/internal/internal-index.d.ts +8 -0
- package/dist/esm/internal/internal-index.d.ts.map +1 -0
- package/dist/esm/internal/internal-index.js +17 -0
- package/dist/esm/internal/internal-index.js.map +1 -0
- package/dist/esm/internal/orchestrators/base-orchestrator.d.ts +90 -0
- package/dist/esm/internal/orchestrators/base-orchestrator.d.ts.map +1 -0
- package/dist/esm/internal/orchestrators/base-orchestrator.js +116 -0
- package/dist/esm/internal/orchestrators/base-orchestrator.js.map +1 -0
- package/dist/esm/internal/orchestrators/base-workflow.d.ts +50 -0
- package/dist/esm/internal/orchestrators/base-workflow.d.ts.map +1 -0
- package/dist/esm/internal/orchestrators/base-workflow.js +64 -0
- package/dist/esm/internal/orchestrators/base-workflow.js.map +1 -0
- package/dist/esm/internal/orchestrators/index.d.ts +26 -0
- package/dist/esm/internal/orchestrators/index.d.ts.map +1 -0
- package/dist/esm/internal/orchestrators/index.js +30 -0
- package/dist/esm/internal/orchestrators/index.js.map +1 -0
- package/dist/esm/internal/utils/index.d.ts +2 -0
- package/dist/esm/internal/utils/index.d.ts.map +1 -0
- package/dist/esm/internal/utils/index.js +3 -0
- package/dist/esm/internal/utils/index.js.map +1 -0
- package/dist/esm/internal/utils/validation.utils.d.ts +49 -0
- package/dist/esm/internal/utils/validation.utils.d.ts.map +1 -0
- package/dist/esm/internal/utils/validation.utils.js +70 -0
- package/dist/esm/internal/utils/validation.utils.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,68 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/internal/utils/index.ts"],"names":[],"mappings":"AACA,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/internal/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAoD;AACpD,qDAAmC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
export * from './enum';
|
|
2
|
-
export * from './value-objects';
|
|
3
2
|
export * from './interfaces';
|
|
4
3
|
export * from './types';
|
|
5
|
-
export * from './dto';
|
|
4
|
+
export type * from './dto';
|
|
6
5
|
export * from './errors';
|
|
7
|
-
export * from './types/backend';
|
|
8
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,QAAQ,CAAC;AACvB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,mBAAmB,OAAO,CAAC;AAG3B,cAAc,UAAU,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -2,14 +2,10 @@
|
|
|
2
2
|
// 🌐 PUBLIC: Safe for external consumption - contains only DTOs, interfaces, types, and enums
|
|
3
3
|
// Core domain contracts
|
|
4
4
|
export * from './enum';
|
|
5
|
-
export * from './value-objects';
|
|
6
5
|
export * from './interfaces';
|
|
7
6
|
export * from './types';
|
|
8
|
-
export * from './dto';
|
|
9
7
|
// Error handling system
|
|
10
8
|
export * from './errors';
|
|
11
|
-
// Backend-only exports (Node.js environment)
|
|
12
|
-
export * from './types/backend';
|
|
13
9
|
// Note: Architecture patterns (orchestrators, database schemas) moved to @explorins/pers-shared-patterns
|
|
14
10
|
// This library now contains only pure data contracts safe for external consumption
|
|
15
11
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,8FAA8F;AAE9F,wBAAwB;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,8FAA8F;AAE9F,wBAAwB;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AAGxB,wBAAwB;AACxB,cAAc,UAAU,CAAC;AAEzB,yGAAyG;AACzG,mFAAmF"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ContractAbi } from "web3";
|
|
2
2
|
import { Web3TransactionType } from "../enum/transaction-type.enum";
|
|
3
|
-
import { Address
|
|
3
|
+
import { Address } from "../value-objects";
|
|
4
|
+
import { NativeTokenType } from "..";
|
|
4
5
|
import { AccountOwnerType } from "../enum/owner-type.enum";
|
|
5
6
|
export interface TxParticipants {
|
|
6
7
|
senderAddress: Address;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-transaction-input-data.interface.d.ts","sourceRoot":"","sources":["../../../src/interfaces/token-transaction-input-data.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"token-transaction-input-data.interface.d.ts","sourceRoot":"","sources":["../../../src/interfaces/token-transaction-input-data.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D,MAAM,WAAW,cAAc;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACzC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,kBAAkB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC5C,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,0BAA0B;IACvC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,mBAAmB,CAAC;IAC1B,SAAS,EAAE,eAAe,CAAC;IAG3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC1C"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|