@explorins/pers-shared 2.1.36 → 2.1.37
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/CHANGELOG.md +21 -0
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +5 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/shared-lib/errors/domains/wallet-errors.js.map +1 -1
- package/dist/cjs/shared-patterns/database/index.d.ts +6 -0
- package/dist/cjs/shared-patterns/database/index.d.ts.map +1 -0
- package/dist/cjs/shared-patterns/database/index.js +24 -0
- package/dist/cjs/shared-patterns/database/index.js.map +1 -0
- package/dist/cjs/shared-patterns/database/models/base.model.d.ts +7 -0
- package/dist/cjs/shared-patterns/database/models/base.model.d.ts.map +1 -0
- package/dist/cjs/shared-patterns/database/models/base.model.js +11 -0
- package/dist/cjs/shared-patterns/database/models/base.model.js.map +1 -0
- package/dist/cjs/shared-patterns/database/models/fixture.model.d.ts +4 -0
- package/dist/cjs/shared-patterns/database/models/fixture.model.d.ts.map +1 -0
- package/dist/cjs/shared-patterns/database/models/fixture.model.js +8 -0
- package/dist/cjs/shared-patterns/database/models/fixture.model.js.map +1 -0
- package/dist/cjs/shared-patterns/database/schemas/fixture-fields.schema.d.ts +5 -0
- package/dist/cjs/shared-patterns/database/schemas/fixture-fields.schema.d.ts.map +1 -0
- package/dist/cjs/shared-patterns/database/schemas/fixture-fields.schema.js +11 -0
- package/dist/cjs/shared-patterns/database/schemas/fixture-fields.schema.js.map +1 -0
- package/dist/cjs/shared-patterns/database/schemas/shared-fields.schema.d.ts +44 -0
- package/dist/cjs/shared-patterns/database/schemas/shared-fields.schema.d.ts.map +1 -0
- package/dist/cjs/shared-patterns/database/schemas/shared-fields.schema.js +64 -0
- package/dist/cjs/shared-patterns/database/schemas/shared-fields.schema.js.map +1 -0
- package/dist/cjs/shared-patterns/database/schemas/tenant-fields.schema.d.ts +51 -0
- package/dist/cjs/shared-patterns/database/schemas/tenant-fields.schema.d.ts.map +1 -0
- package/dist/cjs/shared-patterns/database/schemas/tenant-fields.schema.js +57 -0
- package/dist/cjs/shared-patterns/database/schemas/tenant-fields.schema.js.map +1 -0
- package/dist/cjs/shared-patterns/enums/lambda.enum.d.ts +28 -0
- package/dist/cjs/shared-patterns/enums/lambda.enum.d.ts.map +1 -0
- package/dist/cjs/shared-patterns/enums/lambda.enum.js +34 -0
- package/dist/cjs/shared-patterns/enums/lambda.enum.js.map +1 -0
- package/dist/cjs/shared-patterns/errors/error-factory.d.ts +150 -0
- package/dist/cjs/shared-patterns/errors/error-factory.d.ts.map +1 -0
- package/dist/cjs/shared-patterns/errors/error-factory.js +257 -0
- package/dist/cjs/shared-patterns/errors/error-factory.js.map +1 -0
- package/dist/cjs/shared-patterns/exceptions/base/error-classification-enums.d.ts +118 -0
- package/dist/cjs/shared-patterns/exceptions/base/error-classification-enums.d.ts.map +1 -0
- package/dist/cjs/shared-patterns/exceptions/base/error-classification-enums.js +111 -0
- package/dist/cjs/shared-patterns/exceptions/base/error-classification-enums.js.map +1 -0
- package/dist/cjs/shared-patterns/exceptions/base/error-classifier.d.ts +23 -0
- package/dist/cjs/shared-patterns/exceptions/base/error-classifier.d.ts.map +1 -0
- package/dist/cjs/shared-patterns/exceptions/base/error-classifier.js +165 -0
- package/dist/cjs/shared-patterns/exceptions/base/error-classifier.js.map +1 -0
- package/dist/cjs/shared-patterns/exceptions/index.d.ts +3 -0
- package/dist/cjs/shared-patterns/exceptions/index.d.ts.map +1 -0
- package/dist/cjs/shared-patterns/exceptions/index.js +24 -0
- package/dist/cjs/shared-patterns/exceptions/index.js.map +1 -0
- package/dist/cjs/shared-patterns/functions/crypto.functions.d.ts +16 -0
- package/dist/cjs/shared-patterns/functions/crypto.functions.d.ts.map +1 -0
- package/dist/cjs/shared-patterns/functions/crypto.functions.js +110 -0
- package/dist/cjs/shared-patterns/functions/crypto.functions.js.map +1 -0
- package/dist/cjs/shared-patterns/functions/helper.functions.d.ts +10 -0
- package/dist/cjs/shared-patterns/functions/helper.functions.d.ts.map +1 -0
- package/dist/cjs/shared-patterns/functions/helper.functions.js +38 -0
- package/dist/cjs/shared-patterns/functions/helper.functions.js.map +1 -0
- package/dist/cjs/shared-patterns/functions/index.d.ts +4 -0
- package/dist/cjs/shared-patterns/functions/index.d.ts.map +1 -0
- package/dist/cjs/shared-patterns/functions/index.js +21 -0
- package/dist/cjs/shared-patterns/functions/index.js.map +1 -0
- package/dist/cjs/shared-patterns/functions/request.functions.d.ts +14 -0
- package/dist/cjs/shared-patterns/functions/request.functions.d.ts.map +1 -0
- package/dist/cjs/shared-patterns/functions/request.functions.js +69 -0
- package/dist/cjs/shared-patterns/functions/request.functions.js.map +1 -0
- package/dist/cjs/shared-patterns/index.d.ts +15 -0
- package/dist/cjs/shared-patterns/index.d.ts.map +1 -0
- package/dist/cjs/shared-patterns/index.js +44 -0
- package/dist/cjs/shared-patterns/index.js.map +1 -0
- package/dist/cjs/shared-patterns/interfaces/index.d.ts +3 -0
- package/dist/cjs/shared-patterns/interfaces/index.d.ts.map +1 -0
- package/dist/cjs/shared-patterns/interfaces/index.js +19 -0
- package/dist/cjs/shared-patterns/interfaces/index.js.map +1 -0
- package/dist/cjs/shared-patterns/interfaces/request.interface.d.ts +21 -0
- package/dist/cjs/shared-patterns/interfaces/request.interface.d.ts.map +1 -0
- package/dist/cjs/shared-patterns/interfaces/request.interface.js +15 -0
- package/dist/cjs/shared-patterns/interfaces/request.interface.js.map +1 -0
- package/dist/cjs/shared-patterns/interfaces/stripe-payment-intent-metadata.interface.d.ts +9 -0
- package/dist/cjs/shared-patterns/interfaces/stripe-payment-intent-metadata.interface.d.ts.map +1 -0
- package/dist/cjs/shared-patterns/interfaces/stripe-payment-intent-metadata.interface.js +3 -0
- package/dist/cjs/shared-patterns/interfaces/stripe-payment-intent-metadata.interface.js.map +1 -0
- package/dist/cjs/shared-patterns/orchestrators/base-orchestrator.d.ts +90 -0
- package/dist/cjs/shared-patterns/orchestrators/base-orchestrator.d.ts.map +1 -0
- package/dist/cjs/shared-patterns/orchestrators/base-orchestrator.js +124 -0
- package/dist/cjs/shared-patterns/orchestrators/base-orchestrator.js.map +1 -0
- package/dist/cjs/shared-patterns/orchestrators/base-workflow.d.ts +50 -0
- package/dist/cjs/shared-patterns/orchestrators/base-workflow.d.ts.map +1 -0
- package/dist/cjs/shared-patterns/orchestrators/base-workflow.js +68 -0
- package/dist/cjs/shared-patterns/orchestrators/base-workflow.js.map +1 -0
- package/dist/cjs/shared-patterns/orchestrators/index.d.ts +26 -0
- package/dist/cjs/shared-patterns/orchestrators/index.d.ts.map +1 -0
- package/dist/cjs/shared-patterns/orchestrators/index.js +46 -0
- package/dist/cjs/shared-patterns/orchestrators/index.js.map +1 -0
- package/dist/cjs/shared-patterns/utils/error-message.utils.d.ts +175 -0
- package/dist/cjs/shared-patterns/utils/error-message.utils.d.ts.map +1 -0
- package/dist/cjs/shared-patterns/utils/error-message.utils.js +258 -0
- package/dist/cjs/shared-patterns/utils/error-message.utils.js.map +1 -0
- package/dist/cjs/shared-patterns/utils/index.d.ts +3 -0
- package/dist/cjs/shared-patterns/utils/index.d.ts.map +1 -0
- package/dist/cjs/shared-patterns/utils/index.js +20 -0
- package/dist/cjs/shared-patterns/utils/index.js.map +1 -0
- package/dist/cjs/shared-patterns/utils/validation.utils.d.ts +49 -0
- package/dist/cjs/shared-patterns/utils/validation.utils.d.ts.map +1 -0
- package/dist/cjs/shared-patterns/utils/validation.utils.js +76 -0
- package/dist/cjs/shared-patterns/utils/validation.utils.js.map +1 -0
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +5 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/shared-lib/errors/domains/wallet-errors.js.map +1 -1
- package/dist/esm/shared-lib/interfaces/wallet-signing-scenario.interface.d.ts +0 -2
- package/dist/esm/shared-lib/interfaces/wallet-signing-scenario.interface.d.ts.map +1 -1
- package/dist/esm/shared-patterns/database/index.d.ts +6 -0
- package/dist/esm/shared-patterns/database/index.d.ts.map +1 -0
- package/dist/esm/shared-patterns/database/index.js +8 -0
- package/dist/esm/shared-patterns/database/index.js.map +1 -0
- package/dist/esm/shared-patterns/database/models/base.model.d.ts +7 -0
- package/dist/esm/shared-patterns/database/models/base.model.d.ts.map +1 -0
- package/dist/esm/shared-patterns/database/models/base.model.js +7 -0
- package/dist/esm/shared-patterns/database/models/base.model.js.map +1 -0
- package/dist/esm/shared-patterns/database/models/fixture.model.d.ts +4 -0
- package/dist/esm/shared-patterns/database/models/fixture.model.d.ts.map +1 -0
- package/dist/esm/shared-patterns/database/models/fixture.model.js +4 -0
- package/dist/esm/shared-patterns/database/models/fixture.model.js.map +1 -0
- package/dist/esm/shared-patterns/database/schemas/fixture-fields.schema.d.ts +5 -0
- package/dist/esm/shared-patterns/database/schemas/fixture-fields.schema.d.ts.map +1 -0
- package/dist/esm/shared-patterns/database/schemas/fixture-fields.schema.js +8 -0
- package/dist/esm/shared-patterns/database/schemas/fixture-fields.schema.js.map +1 -0
- package/dist/esm/shared-patterns/database/schemas/shared-fields.schema.d.ts +44 -0
- package/dist/esm/shared-patterns/database/schemas/shared-fields.schema.d.ts.map +1 -0
- package/dist/esm/shared-patterns/database/schemas/shared-fields.schema.js +61 -0
- package/dist/esm/shared-patterns/database/schemas/shared-fields.schema.js.map +1 -0
- package/dist/esm/shared-patterns/database/schemas/tenant-fields.schema.d.ts +51 -0
- package/dist/esm/shared-patterns/database/schemas/tenant-fields.schema.d.ts.map +1 -0
- package/dist/esm/shared-patterns/database/schemas/tenant-fields.schema.js +54 -0
- package/dist/esm/shared-patterns/database/schemas/tenant-fields.schema.js.map +1 -0
- package/dist/esm/shared-patterns/enums/lambda.enum.d.ts +28 -0
- package/dist/esm/shared-patterns/enums/lambda.enum.d.ts.map +1 -0
- package/dist/esm/shared-patterns/enums/lambda.enum.js +31 -0
- package/dist/esm/shared-patterns/enums/lambda.enum.js.map +1 -0
- package/dist/esm/shared-patterns/errors/error-factory.d.ts +150 -0
- package/dist/esm/shared-patterns/errors/error-factory.d.ts.map +1 -0
- package/dist/esm/shared-patterns/errors/error-factory.js +254 -0
- package/dist/esm/shared-patterns/errors/error-factory.js.map +1 -0
- package/dist/esm/shared-patterns/exceptions/base/error-classification-enums.d.ts +118 -0
- package/dist/esm/shared-patterns/exceptions/base/error-classification-enums.d.ts.map +1 -0
- package/dist/esm/shared-patterns/exceptions/base/error-classification-enums.js +108 -0
- package/dist/esm/shared-patterns/exceptions/base/error-classification-enums.js.map +1 -0
- package/dist/esm/shared-patterns/exceptions/base/error-classifier.d.ts +23 -0
- package/dist/esm/shared-patterns/exceptions/base/error-classifier.d.ts.map +1 -0
- package/dist/esm/shared-patterns/exceptions/base/error-classifier.js +161 -0
- package/dist/esm/shared-patterns/exceptions/base/error-classifier.js.map +1 -0
- package/dist/esm/shared-patterns/exceptions/index.d.ts +3 -0
- package/dist/esm/shared-patterns/exceptions/index.d.ts.map +1 -0
- package/dist/esm/shared-patterns/exceptions/index.js +6 -0
- package/dist/esm/shared-patterns/exceptions/index.js.map +1 -0
- package/dist/esm/shared-patterns/functions/crypto.functions.d.ts +16 -0
- package/dist/esm/shared-patterns/functions/crypto.functions.d.ts.map +1 -0
- package/dist/esm/shared-patterns/functions/crypto.functions.js +67 -0
- package/dist/esm/shared-patterns/functions/crypto.functions.js.map +1 -0
- package/dist/esm/shared-patterns/functions/helper.functions.d.ts +10 -0
- package/dist/esm/shared-patterns/functions/helper.functions.d.ts.map +1 -0
- package/dist/esm/shared-patterns/functions/helper.functions.js +32 -0
- package/dist/esm/shared-patterns/functions/helper.functions.js.map +1 -0
- package/dist/esm/shared-patterns/functions/index.d.ts +4 -0
- package/dist/esm/shared-patterns/functions/index.d.ts.map +1 -0
- package/dist/esm/shared-patterns/functions/index.js +5 -0
- package/dist/esm/shared-patterns/functions/index.js.map +1 -0
- package/dist/esm/shared-patterns/functions/request.functions.d.ts +14 -0
- package/dist/esm/shared-patterns/functions/request.functions.d.ts.map +1 -0
- package/dist/esm/shared-patterns/functions/request.functions.js +61 -0
- package/dist/esm/shared-patterns/functions/request.functions.js.map +1 -0
- package/dist/esm/shared-patterns/index.d.ts +15 -0
- package/dist/esm/shared-patterns/index.d.ts.map +1 -0
- package/dist/esm/shared-patterns/index.js +28 -0
- package/dist/esm/shared-patterns/index.js.map +1 -0
- package/dist/esm/shared-patterns/interfaces/index.d.ts +3 -0
- package/dist/esm/shared-patterns/interfaces/index.d.ts.map +1 -0
- package/dist/esm/shared-patterns/interfaces/index.js +3 -0
- package/dist/esm/shared-patterns/interfaces/index.js.map +1 -0
- package/dist/esm/shared-patterns/interfaces/request.interface.d.ts +21 -0
- package/dist/esm/shared-patterns/interfaces/request.interface.d.ts.map +1 -0
- package/dist/esm/shared-patterns/interfaces/request.interface.js +11 -0
- package/dist/esm/shared-patterns/interfaces/request.interface.js.map +1 -0
- package/dist/esm/shared-patterns/interfaces/stripe-payment-intent-metadata.interface.d.ts +9 -0
- package/dist/esm/shared-patterns/interfaces/stripe-payment-intent-metadata.interface.d.ts.map +1 -0
- package/dist/esm/shared-patterns/interfaces/stripe-payment-intent-metadata.interface.js +2 -0
- package/dist/esm/shared-patterns/interfaces/stripe-payment-intent-metadata.interface.js.map +1 -0
- package/dist/esm/shared-patterns/orchestrators/base-orchestrator.d.ts +90 -0
- package/dist/esm/shared-patterns/orchestrators/base-orchestrator.d.ts.map +1 -0
- package/dist/esm/shared-patterns/orchestrators/base-orchestrator.js +116 -0
- package/dist/esm/shared-patterns/orchestrators/base-orchestrator.js.map +1 -0
- package/dist/esm/shared-patterns/orchestrators/base-workflow.d.ts +50 -0
- package/dist/esm/shared-patterns/orchestrators/base-workflow.d.ts.map +1 -0
- package/dist/esm/shared-patterns/orchestrators/base-workflow.js +64 -0
- package/dist/esm/shared-patterns/orchestrators/base-workflow.js.map +1 -0
- package/dist/esm/shared-patterns/orchestrators/index.d.ts +26 -0
- package/dist/esm/shared-patterns/orchestrators/index.d.ts.map +1 -0
- package/dist/esm/shared-patterns/orchestrators/index.js +30 -0
- package/dist/esm/shared-patterns/orchestrators/index.js.map +1 -0
- package/dist/esm/shared-patterns/utils/error-message.utils.d.ts +175 -0
- package/dist/esm/shared-patterns/utils/error-message.utils.d.ts.map +1 -0
- package/dist/esm/shared-patterns/utils/error-message.utils.js +244 -0
- package/dist/esm/shared-patterns/utils/error-message.utils.js.map +1 -0
- package/dist/esm/shared-patterns/utils/index.d.ts +3 -0
- package/dist/esm/shared-patterns/utils/index.d.ts.map +1 -0
- package/dist/esm/shared-patterns/utils/index.js +4 -0
- package/dist/esm/shared-patterns/utils/index.js.map +1 -0
- package/dist/esm/shared-patterns/utils/validation.utils.d.ts +49 -0
- package/dist/esm/shared-patterns/utils/validation.utils.d.ts.map +1 -0
- package/dist/esm/shared-patterns/utils/validation.utils.js +70 -0
- package/dist/esm/shared-patterns/utils/validation.utils.js.map +1 -0
- package/package.json +2 -25
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standardized error message generators for consistent error handling across applications
|
|
3
|
+
*
|
|
4
|
+
* This utility provides reusable message generation functions for common error scenarios:
|
|
5
|
+
* - Authentication context errors
|
|
6
|
+
* - Resource not found errors
|
|
7
|
+
* - Access denied errors
|
|
8
|
+
* - Validation errors
|
|
9
|
+
* - Business rule violations
|
|
10
|
+
* - Database operation errors
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* import { generateAuthRequiredMessage, generateNotFoundMessage } from '@explorins/pers-shared-patterns';
|
|
14
|
+
*
|
|
15
|
+
* const message = generateAuthRequiredMessage(['user', 'admin']);
|
|
16
|
+
* // "User or admin authentication required"
|
|
17
|
+
*
|
|
18
|
+
* const notFound = generateNotFoundMessage('transaction', 'tx-123');
|
|
19
|
+
* // "Transaction with identifier 'tx-123' not found"
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Authentication context types supported across applications
|
|
23
|
+
*/
|
|
24
|
+
export type AuthenticationContext = 'user' | 'business' | 'admin' | 'tenant';
|
|
25
|
+
/**
|
|
26
|
+
* Resource types commonly used in error messages
|
|
27
|
+
*/
|
|
28
|
+
export type ResourceType = 'user' | 'business' | 'admin' | 'campaign' | 'transaction' | 'redemption' | 'wallet' | 'contract' | 'tenant' | 'token' | 'signing-account';
|
|
29
|
+
/**
|
|
30
|
+
* Database operation types for error reporting
|
|
31
|
+
*/
|
|
32
|
+
export type DatabaseOperation = 'save' | 'find' | 'delete' | 'update' | 'query';
|
|
33
|
+
/**
|
|
34
|
+
* Generate standardized authentication required error message
|
|
35
|
+
* @param requiredContexts - Array of required authentication contexts
|
|
36
|
+
* @param action - Optional action description (e.g., 'for redemption processing')
|
|
37
|
+
* @returns Standardized error message
|
|
38
|
+
*/
|
|
39
|
+
export declare function generateAuthRequiredMessage(requiredContexts: AuthenticationContext[], action?: string): string;
|
|
40
|
+
/**
|
|
41
|
+
* Generate standardized "not found" error message
|
|
42
|
+
* @param resourceType - Type of resource that was not found
|
|
43
|
+
* @param identifier - Optional identifier (ID, email, etc.)
|
|
44
|
+
* @returns Standardized not found message
|
|
45
|
+
*/
|
|
46
|
+
export declare function generateNotFoundMessage(resourceType: ResourceType, identifier?: string): string;
|
|
47
|
+
/**
|
|
48
|
+
* Generate standardized "access denied" error message
|
|
49
|
+
* @param action - The action being attempted
|
|
50
|
+
* @param resource - Optional resource context
|
|
51
|
+
* @returns Standardized access denied message
|
|
52
|
+
*/
|
|
53
|
+
export declare function generateAccessDeniedMessage(action: string, resource?: string): string;
|
|
54
|
+
/**
|
|
55
|
+
* Generate standardized validation error message
|
|
56
|
+
* @param field - Field that failed validation
|
|
57
|
+
* @param constraint - The validation constraint
|
|
58
|
+
* @returns Standardized validation message
|
|
59
|
+
*/
|
|
60
|
+
export declare function generateValidationMessage(field: string, constraint: string): string;
|
|
61
|
+
/**
|
|
62
|
+
* Generate standardized business rule violation message
|
|
63
|
+
* @param rule - The business rule that was violated
|
|
64
|
+
* @param context - Optional context information
|
|
65
|
+
* @returns Standardized business rule message
|
|
66
|
+
*/
|
|
67
|
+
export declare function generateBusinessRuleMessage(rule: string, context?: string): string;
|
|
68
|
+
/**
|
|
69
|
+
* Generate standardized database error message
|
|
70
|
+
* @param operation - The database operation that failed
|
|
71
|
+
* @param resourceType - Type of resource involved
|
|
72
|
+
* @param details - Optional error details
|
|
73
|
+
* @returns Standardized database error message
|
|
74
|
+
*/
|
|
75
|
+
export declare function generateDatabaseErrorMessage(operation: DatabaseOperation, resourceType: ResourceType, details?: string): string;
|
|
76
|
+
/**
|
|
77
|
+
* Generate standardized input validation error message
|
|
78
|
+
* @param parameter - The parameter that failed validation
|
|
79
|
+
* @param requirement - What the parameter should meet
|
|
80
|
+
* @returns Standardized input validation message
|
|
81
|
+
*/
|
|
82
|
+
export declare function generateInputValidationMessage(parameter: string, requirement: string): string;
|
|
83
|
+
/**
|
|
84
|
+
* Generate standardized operation error message
|
|
85
|
+
* @param operation - The operation that was attempted
|
|
86
|
+
* @param reason - Why it failed
|
|
87
|
+
* @returns Standardized operation error message
|
|
88
|
+
*/
|
|
89
|
+
export declare function generateOperationErrorMessage(operation: string, reason: string): string;
|
|
90
|
+
/**
|
|
91
|
+
* Common error message constants for quick access
|
|
92
|
+
*/
|
|
93
|
+
export declare const ERROR_MESSAGE_TEMPLATES: {
|
|
94
|
+
readonly AUTH: {
|
|
95
|
+
readonly USER_ONLY: () => string;
|
|
96
|
+
readonly BUSINESS_ONLY: () => string;
|
|
97
|
+
readonly ADMIN_ONLY: () => string;
|
|
98
|
+
readonly USER_OR_BUSINESS: () => string;
|
|
99
|
+
readonly USER_OR_ADMIN: () => string;
|
|
100
|
+
readonly BUSINESS_OR_ADMIN: () => string;
|
|
101
|
+
readonly USER_BUSINESS_OR_ADMIN: () => string;
|
|
102
|
+
readonly ANY_AUTH: () => string;
|
|
103
|
+
readonly FOR_REDEMPTION: () => string;
|
|
104
|
+
readonly FOR_TRANSACTION: () => string;
|
|
105
|
+
readonly FOR_ADMIN_ACTION: () => string;
|
|
106
|
+
};
|
|
107
|
+
readonly NOT_FOUND: {
|
|
108
|
+
readonly USER: (id?: string) => string;
|
|
109
|
+
readonly BUSINESS: (id?: string) => string;
|
|
110
|
+
readonly ADMIN: (id?: string) => string;
|
|
111
|
+
readonly CAMPAIGN: (id?: string) => string;
|
|
112
|
+
readonly TRANSACTION: (id?: string) => string;
|
|
113
|
+
readonly REDEMPTION: (id?: string) => string;
|
|
114
|
+
readonly WALLET: (id?: string) => string;
|
|
115
|
+
readonly CONTRACT: (address?: string) => string;
|
|
116
|
+
readonly TENANT: (id?: string) => string;
|
|
117
|
+
readonly TOKEN: (id?: string) => string;
|
|
118
|
+
readonly SIGNING_ACCOUNT: (id?: string) => string;
|
|
119
|
+
};
|
|
120
|
+
readonly ACCESS_DENIED: {
|
|
121
|
+
readonly VIEW_RESOURCE: (resource: string) => string;
|
|
122
|
+
readonly MODIFY_RESOURCE: (resource: string) => string;
|
|
123
|
+
readonly DELETE_RESOURCE: (resource: string) => string;
|
|
124
|
+
readonly EXECUTE_ACTION: (action: string) => string;
|
|
125
|
+
};
|
|
126
|
+
readonly VALIDATION: {
|
|
127
|
+
readonly REQUIRED_FIELD: (field: string) => string;
|
|
128
|
+
readonly INVALID_FORMAT: (field: string, format: string) => string;
|
|
129
|
+
readonly OUT_OF_RANGE: (field: string, min?: number, max?: number) => string;
|
|
130
|
+
};
|
|
131
|
+
readonly BUSINESS_RULES: {
|
|
132
|
+
readonly REDEMPTION_LIMIT_REACHED: () => string;
|
|
133
|
+
readonly INSUFFICIENT_BALANCE: (required?: string) => string;
|
|
134
|
+
readonly GEOGRAPHIC_RESTRICTION: (location: string) => string;
|
|
135
|
+
readonly STATUS_NOT_ALLOWED: (status: string, action: string) => string;
|
|
136
|
+
};
|
|
137
|
+
readonly DATABASE: {
|
|
138
|
+
readonly SAVE_FAILED: (resourceType: ResourceType, details?: string) => string;
|
|
139
|
+
readonly FIND_FAILED: (resourceType: ResourceType, details?: string) => string;
|
|
140
|
+
readonly DELETE_FAILED: (resourceType: ResourceType, details?: string) => string;
|
|
141
|
+
readonly UPDATE_FAILED: (resourceType: ResourceType, details?: string) => string;
|
|
142
|
+
readonly QUERY_FAILED: (resourceType: ResourceType, details?: string) => string;
|
|
143
|
+
};
|
|
144
|
+
readonly INPUT_VALIDATION: {
|
|
145
|
+
readonly REQUIRED: (param: string) => string;
|
|
146
|
+
readonly EMPTY: (param: string) => string;
|
|
147
|
+
readonly INVALID_FORMAT: (param: string, format: string) => string;
|
|
148
|
+
readonly OUT_OF_RANGE: (param: string, range: string) => string;
|
|
149
|
+
readonly INVALID_COMBINATION: (params: string) => string;
|
|
150
|
+
readonly MISSING_FIELD: (param: string) => string;
|
|
151
|
+
};
|
|
152
|
+
readonly OPERATIONS: {
|
|
153
|
+
readonly TRANSACTION_FAILED: (reason: string) => string;
|
|
154
|
+
readonly SIGNATURE_FAILED: (reason: string) => string;
|
|
155
|
+
readonly WALLET_OPERATION_FAILED: (reason: string) => string;
|
|
156
|
+
readonly CONTRACT_INTERACTION_FAILED: (reason: string) => string;
|
|
157
|
+
readonly DATA_PROCESSING_FAILED: (reason: string) => string;
|
|
158
|
+
};
|
|
159
|
+
};
|
|
160
|
+
/**
|
|
161
|
+
* Database operation error helper function
|
|
162
|
+
* Creates appropriate errors for database operations using the centralized ErrorFactory
|
|
163
|
+
*/
|
|
164
|
+
export declare function DatabaseOperationError(operation: DatabaseOperation, resourceType: ResourceType, details?: string): void;
|
|
165
|
+
/**
|
|
166
|
+
* Input validation error helper function
|
|
167
|
+
* Creates appropriate validation errors using the centralized ErrorFactory
|
|
168
|
+
*/
|
|
169
|
+
export declare function InputValidationError(field: string, requirement: string, providedValue?: any): void;
|
|
170
|
+
/**
|
|
171
|
+
* Operation failure error helper function
|
|
172
|
+
* Creates appropriate operation errors using the centralized ErrorFactory
|
|
173
|
+
*/
|
|
174
|
+
export declare function OperationFailureError(operation: string, reason: string, retryable?: boolean): void;
|
|
175
|
+
//# sourceMappingURL=error-message.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-message.utils.d.ts","sourceRoot":"","sources":["../../../../src/shared-patterns/utils/error-message.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE7E;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,iBAAiB,CAAC;AAEtK;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEhF;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACvC,gBAAgB,EAAE,qBAAqB,EAAE,EACzC,MAAM,CAAC,EAAE,MAAM,GAChB,MAAM,CA0BR;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAK/F;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAIrF;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEnF;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAIlF;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CACxC,SAAS,EAAE,iBAAiB,EAC5B,YAAY,EAAE,YAAY,EAC1B,OAAO,CAAC,EAAE,MAAM,GACjB,MAAM,CAUR;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAE7F;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvF;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;6BAoBhB,MAAM;iCACF,MAAM;8BACT,MAAM;iCACH,MAAM;oCACH,MAAM;mCACP,MAAM;+BACV,MAAM;sCACC,MAAM;+BACb,MAAM;8BACP,MAAM;wCACI,MAAM;;;2CAKH,MAAM;6CACJ,MAAM;6CACN,MAAM;0CACT,MAAM;;;yCAKP,MAAM;yCACN,MAAM,UAAU,MAAM;uCACxB,MAAM,QAAQ,MAAM,QAAQ,MAAM;;;;mDAetB,MAAM;oDACL,MAAM;8CACZ,MAAM,UAAU,MAAM;;;6CAKvB,YAAY,YAAY,MAAM;6CAE9B,YAAY,YAAY,MAAM;+CAE5B,YAAY,YAAY,MAAM;+CAE9B,YAAY,YAAY,MAAM;8CAE/B,YAAY,YAAY,MAAM;;;mCAMzC,MAAM;gCACT,MAAM;yCACG,MAAM,UAAU,MAAM;uCACxB,MAAM,SAAS,MAAM;+CACb,MAAM;wCACb,MAAM;;;8CAKA,MAAM;4CACR,MAAM;mDACC,MAAM;uDACF,MAAM;kDACX,MAAM;;CAErC,CAAC;AAEX;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,MAAM,QAKhH;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,GAAG,QAK3F;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,OAAe,QAGlG"}
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Standardized error message generators for consistent error handling across applications
|
|
4
|
+
*
|
|
5
|
+
* This utility provides reusable message generation functions for common error scenarios:
|
|
6
|
+
* - Authentication context errors
|
|
7
|
+
* - Resource not found errors
|
|
8
|
+
* - Access denied errors
|
|
9
|
+
* - Validation errors
|
|
10
|
+
* - Business rule violations
|
|
11
|
+
* - Database operation errors
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* import { generateAuthRequiredMessage, generateNotFoundMessage } from '@explorins/pers-shared-patterns';
|
|
15
|
+
*
|
|
16
|
+
* const message = generateAuthRequiredMessage(['user', 'admin']);
|
|
17
|
+
* // "User or admin authentication required"
|
|
18
|
+
*
|
|
19
|
+
* const notFound = generateNotFoundMessage('transaction', 'tx-123');
|
|
20
|
+
* // "Transaction with identifier 'tx-123' not found"
|
|
21
|
+
*/
|
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
exports.ERROR_MESSAGE_TEMPLATES = void 0;
|
|
24
|
+
exports.generateAuthRequiredMessage = generateAuthRequiredMessage;
|
|
25
|
+
exports.generateNotFoundMessage = generateNotFoundMessage;
|
|
26
|
+
exports.generateAccessDeniedMessage = generateAccessDeniedMessage;
|
|
27
|
+
exports.generateValidationMessage = generateValidationMessage;
|
|
28
|
+
exports.generateBusinessRuleMessage = generateBusinessRuleMessage;
|
|
29
|
+
exports.generateDatabaseErrorMessage = generateDatabaseErrorMessage;
|
|
30
|
+
exports.generateInputValidationMessage = generateInputValidationMessage;
|
|
31
|
+
exports.generateOperationErrorMessage = generateOperationErrorMessage;
|
|
32
|
+
exports.DatabaseOperationError = DatabaseOperationError;
|
|
33
|
+
exports.InputValidationError = InputValidationError;
|
|
34
|
+
exports.OperationFailureError = OperationFailureError;
|
|
35
|
+
/**
|
|
36
|
+
* Generate standardized authentication required error message
|
|
37
|
+
* @param requiredContexts - Array of required authentication contexts
|
|
38
|
+
* @param action - Optional action description (e.g., 'for redemption processing')
|
|
39
|
+
* @returns Standardized error message
|
|
40
|
+
*/
|
|
41
|
+
function generateAuthRequiredMessage(requiredContexts, action) {
|
|
42
|
+
const contextMap = {
|
|
43
|
+
user: 'user',
|
|
44
|
+
business: 'business',
|
|
45
|
+
admin: 'admin',
|
|
46
|
+
tenant: 'tenant'
|
|
47
|
+
};
|
|
48
|
+
if (requiredContexts.length === 0) {
|
|
49
|
+
return `Authentication required${action ? ` ${action}` : ''}`;
|
|
50
|
+
}
|
|
51
|
+
if (requiredContexts.length === 1) {
|
|
52
|
+
return `${contextMap[requiredContexts[0]].charAt(0).toUpperCase() + contextMap[requiredContexts[0]].slice(1)} authentication required${action ? ` ${action}` : ''}`;
|
|
53
|
+
}
|
|
54
|
+
if (requiredContexts.length === 2) {
|
|
55
|
+
return `${contextMap[requiredContexts[0]].charAt(0).toUpperCase() + contextMap[requiredContexts[0]].slice(1)} or ${contextMap[requiredContexts[1]]} authentication required${action ? ` ${action}` : ''}`;
|
|
56
|
+
}
|
|
57
|
+
// For 3+ contexts, use comma separation with "or" before the last one
|
|
58
|
+
const lastContext = requiredContexts[requiredContexts.length - 1];
|
|
59
|
+
const otherContexts = requiredContexts.slice(0, -1);
|
|
60
|
+
const otherContextsStr = otherContexts.map(ctx => contextMap[ctx]).join(', ');
|
|
61
|
+
return `${otherContextsStr.charAt(0).toUpperCase() + otherContextsStr.slice(1)}, or ${contextMap[lastContext]} authentication required${action ? ` ${action}` : ''}`;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Generate standardized "not found" error message
|
|
65
|
+
* @param resourceType - Type of resource that was not found
|
|
66
|
+
* @param identifier - Optional identifier (ID, email, etc.)
|
|
67
|
+
* @returns Standardized not found message
|
|
68
|
+
*/
|
|
69
|
+
function generateNotFoundMessage(resourceType, identifier) {
|
|
70
|
+
const resource = resourceType.charAt(0).toUpperCase() + resourceType.slice(1);
|
|
71
|
+
return identifier
|
|
72
|
+
? `${resource} with identifier '${identifier}' not found`
|
|
73
|
+
: `${resource} not found`;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Generate standardized "access denied" error message
|
|
77
|
+
* @param action - The action being attempted
|
|
78
|
+
* @param resource - Optional resource context
|
|
79
|
+
* @returns Standardized access denied message
|
|
80
|
+
*/
|
|
81
|
+
function generateAccessDeniedMessage(action, resource) {
|
|
82
|
+
return resource
|
|
83
|
+
? `Access denied: cannot ${action} ${resource}`
|
|
84
|
+
: `Access denied: cannot ${action}`;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Generate standardized validation error message
|
|
88
|
+
* @param field - Field that failed validation
|
|
89
|
+
* @param constraint - The validation constraint
|
|
90
|
+
* @returns Standardized validation message
|
|
91
|
+
*/
|
|
92
|
+
function generateValidationMessage(field, constraint) {
|
|
93
|
+
return `Validation failed for '${field}': ${constraint}`;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Generate standardized business rule violation message
|
|
97
|
+
* @param rule - The business rule that was violated
|
|
98
|
+
* @param context - Optional context information
|
|
99
|
+
* @returns Standardized business rule message
|
|
100
|
+
*/
|
|
101
|
+
function generateBusinessRuleMessage(rule, context) {
|
|
102
|
+
return context
|
|
103
|
+
? `Business rule violation: ${rule} (${context})`
|
|
104
|
+
: `Business rule violation: ${rule}`;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Generate standardized database error message
|
|
108
|
+
* @param operation - The database operation that failed
|
|
109
|
+
* @param resourceType - Type of resource involved
|
|
110
|
+
* @param details - Optional error details
|
|
111
|
+
* @returns Standardized database error message
|
|
112
|
+
*/
|
|
113
|
+
function generateDatabaseErrorMessage(operation, resourceType, details) {
|
|
114
|
+
const action = operation === 'find' ? 'retrieving' :
|
|
115
|
+
operation === 'save' ? 'saving' :
|
|
116
|
+
operation === 'delete' ? 'deleting' :
|
|
117
|
+
operation === 'update' ? 'updating' : 'querying';
|
|
118
|
+
const resource = resourceType.charAt(0).toUpperCase() + resourceType.slice(1);
|
|
119
|
+
const baseMessage = `Database error: failed ${action.toLowerCase()} ${resource.toLowerCase()}`;
|
|
120
|
+
return details ? `${baseMessage} - ${details}` : baseMessage;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Generate standardized input validation error message
|
|
124
|
+
* @param parameter - The parameter that failed validation
|
|
125
|
+
* @param requirement - What the parameter should meet
|
|
126
|
+
* @returns Standardized input validation message
|
|
127
|
+
*/
|
|
128
|
+
function generateInputValidationMessage(parameter, requirement) {
|
|
129
|
+
return `Invalid input: ${parameter} ${requirement}`;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Generate standardized operation error message
|
|
133
|
+
* @param operation - The operation that was attempted
|
|
134
|
+
* @param reason - Why it failed
|
|
135
|
+
* @returns Standardized operation error message
|
|
136
|
+
*/
|
|
137
|
+
function generateOperationErrorMessage(operation, reason) {
|
|
138
|
+
return `Operation failed: ${operation} - ${reason}`;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Common error message constants for quick access
|
|
142
|
+
*/
|
|
143
|
+
exports.ERROR_MESSAGE_TEMPLATES = {
|
|
144
|
+
// Authentication patterns
|
|
145
|
+
AUTH: {
|
|
146
|
+
USER_ONLY: () => generateAuthRequiredMessage(['user']),
|
|
147
|
+
BUSINESS_ONLY: () => generateAuthRequiredMessage(['business']),
|
|
148
|
+
ADMIN_ONLY: () => generateAuthRequiredMessage(['admin']),
|
|
149
|
+
USER_OR_BUSINESS: () => generateAuthRequiredMessage(['user', 'business']),
|
|
150
|
+
USER_OR_ADMIN: () => generateAuthRequiredMessage(['user', 'admin']),
|
|
151
|
+
BUSINESS_OR_ADMIN: () => generateAuthRequiredMessage(['business', 'admin']),
|
|
152
|
+
USER_BUSINESS_OR_ADMIN: () => generateAuthRequiredMessage(['user', 'business', 'admin']),
|
|
153
|
+
ANY_AUTH: () => generateAuthRequiredMessage([]),
|
|
154
|
+
// With action context
|
|
155
|
+
FOR_REDEMPTION: () => generateAuthRequiredMessage(['user'], 'for redemption processing'),
|
|
156
|
+
FOR_TRANSACTION: () => generateAuthRequiredMessage(['user', 'business'], 'for transaction access'),
|
|
157
|
+
FOR_ADMIN_ACTION: () => generateAuthRequiredMessage(['admin'], 'for administrative actions'),
|
|
158
|
+
},
|
|
159
|
+
// Resource not found patterns
|
|
160
|
+
NOT_FOUND: {
|
|
161
|
+
USER: (id) => generateNotFoundMessage('user', id),
|
|
162
|
+
BUSINESS: (id) => generateNotFoundMessage('business', id),
|
|
163
|
+
ADMIN: (id) => generateNotFoundMessage('admin', id),
|
|
164
|
+
CAMPAIGN: (id) => generateNotFoundMessage('campaign', id),
|
|
165
|
+
TRANSACTION: (id) => generateNotFoundMessage('transaction', id),
|
|
166
|
+
REDEMPTION: (id) => generateNotFoundMessage('redemption', id),
|
|
167
|
+
WALLET: (id) => generateNotFoundMessage('wallet', id),
|
|
168
|
+
CONTRACT: (address) => generateNotFoundMessage('contract', address),
|
|
169
|
+
TENANT: (id) => generateNotFoundMessage('tenant', id),
|
|
170
|
+
TOKEN: (id) => generateNotFoundMessage('token', id),
|
|
171
|
+
SIGNING_ACCOUNT: (id) => generateNotFoundMessage('signing-account', id),
|
|
172
|
+
},
|
|
173
|
+
// Access control patterns
|
|
174
|
+
ACCESS_DENIED: {
|
|
175
|
+
VIEW_RESOURCE: (resource) => generateAccessDeniedMessage('view', resource),
|
|
176
|
+
MODIFY_RESOURCE: (resource) => generateAccessDeniedMessage('modify', resource),
|
|
177
|
+
DELETE_RESOURCE: (resource) => generateAccessDeniedMessage('delete', resource),
|
|
178
|
+
EXECUTE_ACTION: (action) => generateAccessDeniedMessage(action),
|
|
179
|
+
},
|
|
180
|
+
// Validation patterns
|
|
181
|
+
VALIDATION: {
|
|
182
|
+
REQUIRED_FIELD: (field) => generateValidationMessage(field, 'field is required'),
|
|
183
|
+
INVALID_FORMAT: (field, format) => generateValidationMessage(field, `invalid ${format} format`),
|
|
184
|
+
OUT_OF_RANGE: (field, min, max) => {
|
|
185
|
+
if (min !== undefined && max !== undefined) {
|
|
186
|
+
return generateValidationMessage(field, `value must be between ${min} and ${max}`);
|
|
187
|
+
}
|
|
188
|
+
else if (min !== undefined) {
|
|
189
|
+
return generateValidationMessage(field, `value must be at least ${min}`);
|
|
190
|
+
}
|
|
191
|
+
else if (max !== undefined) {
|
|
192
|
+
return generateValidationMessage(field, `value must be at most ${max}`);
|
|
193
|
+
}
|
|
194
|
+
return generateValidationMessage(field, 'value is out of range');
|
|
195
|
+
},
|
|
196
|
+
},
|
|
197
|
+
// Business rule patterns
|
|
198
|
+
BUSINESS_RULES: {
|
|
199
|
+
REDEMPTION_LIMIT_REACHED: () => generateBusinessRuleMessage('redemption limit reached'),
|
|
200
|
+
INSUFFICIENT_BALANCE: (required) => generateBusinessRuleMessage('insufficient balance', required ? `required: ${required}` : undefined),
|
|
201
|
+
GEOGRAPHIC_RESTRICTION: (location) => generateBusinessRuleMessage('geographic restriction', `not available in ${location}`),
|
|
202
|
+
STATUS_NOT_ALLOWED: (status, action) => generateBusinessRuleMessage(`status '${status}' not allowed for ${action}`),
|
|
203
|
+
},
|
|
204
|
+
// Database operation patterns
|
|
205
|
+
DATABASE: {
|
|
206
|
+
SAVE_FAILED: (resourceType, details) => generateDatabaseErrorMessage('save', resourceType, details),
|
|
207
|
+
FIND_FAILED: (resourceType, details) => generateDatabaseErrorMessage('find', resourceType, details),
|
|
208
|
+
DELETE_FAILED: (resourceType, details) => generateDatabaseErrorMessage('delete', resourceType, details),
|
|
209
|
+
UPDATE_FAILED: (resourceType, details) => generateDatabaseErrorMessage('update', resourceType, details),
|
|
210
|
+
QUERY_FAILED: (resourceType, details) => generateDatabaseErrorMessage('query', resourceType, details),
|
|
211
|
+
},
|
|
212
|
+
// Input validation patterns
|
|
213
|
+
INPUT_VALIDATION: {
|
|
214
|
+
REQUIRED: (param) => generateInputValidationMessage(param, 'is required'),
|
|
215
|
+
EMPTY: (param) => generateInputValidationMessage(param, 'cannot be empty'),
|
|
216
|
+
INVALID_FORMAT: (param, format) => generateInputValidationMessage(param, `must be valid ${format}`),
|
|
217
|
+
OUT_OF_RANGE: (param, range) => generateInputValidationMessage(param, `must be ${range}`),
|
|
218
|
+
INVALID_COMBINATION: (params) => generateInputValidationMessage(params, 'combination is not allowed'),
|
|
219
|
+
MISSING_FIELD: (param) => generateInputValidationMessage(param, 'field is missing'),
|
|
220
|
+
},
|
|
221
|
+
// Operation error patterns
|
|
222
|
+
OPERATIONS: {
|
|
223
|
+
TRANSACTION_FAILED: (reason) => generateOperationErrorMessage('transaction processing', reason),
|
|
224
|
+
SIGNATURE_FAILED: (reason) => generateOperationErrorMessage('signature verification', reason),
|
|
225
|
+
WALLET_OPERATION_FAILED: (reason) => generateOperationErrorMessage('wallet operation', reason),
|
|
226
|
+
CONTRACT_INTERACTION_FAILED: (reason) => generateOperationErrorMessage('contract interaction', reason),
|
|
227
|
+
DATA_PROCESSING_FAILED: (reason) => generateOperationErrorMessage('data processing', reason),
|
|
228
|
+
}
|
|
229
|
+
};
|
|
230
|
+
/**
|
|
231
|
+
* Database operation error helper function
|
|
232
|
+
* Creates appropriate errors for database operations using the centralized ErrorFactory
|
|
233
|
+
*/
|
|
234
|
+
function DatabaseOperationError(operation, resourceType, details) {
|
|
235
|
+
const message = generateDatabaseErrorMessage(operation, resourceType, details);
|
|
236
|
+
// Using systemError as it's available in the current ErrorFactory
|
|
237
|
+
// TODO: Add dedicated databaseOperation method to ErrorFactory
|
|
238
|
+
throw new Error(message); // Temporary - will be replaced with proper ErrorFactory method
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Input validation error helper function
|
|
242
|
+
* Creates appropriate validation errors using the centralized ErrorFactory
|
|
243
|
+
*/
|
|
244
|
+
function InputValidationError(field, requirement, providedValue) {
|
|
245
|
+
const message = generateInputValidationMessage(field, requirement);
|
|
246
|
+
// Using systemError as it's available in the current ErrorFactory
|
|
247
|
+
// TODO: Add dedicated inputValidation method to ErrorFactory
|
|
248
|
+
throw new Error(message); // Temporary - will be replaced with proper ErrorFactory method
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Operation failure error helper function
|
|
252
|
+
* Creates appropriate operation errors using the centralized ErrorFactory
|
|
253
|
+
*/
|
|
254
|
+
function OperationFailureError(operation, reason, retryable = false) {
|
|
255
|
+
const message = generateOperationErrorMessage(operation, reason);
|
|
256
|
+
throw new Error(message); // Temporary - will be replaced with proper ErrorFactory method
|
|
257
|
+
}
|
|
258
|
+
//# sourceMappingURL=error-message.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-message.utils.js","sourceRoot":"","sources":["../../../../src/shared-patterns/utils/error-message.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-patterns/utils/index.ts"],"names":[],"mappings":"AACA,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
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
|
+
__exportStar(require("./error-message.utils"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared-patterns/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAoD;AACpD,qDAAmC;AACnC,wDAAsC"}
|
|
@@ -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/shared-patterns/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/shared-patterns/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
|
@@ -3,4 +3,6 @@ export type * from './shared-lib/interfaces';
|
|
|
3
3
|
export type * from './shared-lib/types';
|
|
4
4
|
export type * from './shared-lib/dto';
|
|
5
5
|
export type * from './shared-lib/errors';
|
|
6
|
+
export * from './shared-lib/errors';
|
|
7
|
+
export * from './shared-patterns';
|
|
6
8
|
//# 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,mBAAmB,CAAC;AAClC,mBAAmB,yBAAyB,CAAC;AAC7C,mBAAmB,oBAAoB,CAAC;AACxC,mBAAmB,kBAAkB,CAAC;AAGtC,mBAAmB,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,mBAAmB,CAAC;AAClC,mBAAmB,yBAAyB,CAAC;AAC7C,mBAAmB,oBAAoB,CAAC;AACxC,mBAAmB,kBAAkB,CAAC;AAGtC,mBAAmB,qBAAqB,CAAC;AACzC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,mBAAmB,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
// 🌐 PUBLIC: Safe for external consumption - contains only DTOs, interfaces, types, and enums
|
|
3
3
|
// Core domain contracts
|
|
4
4
|
export * from './shared-lib/enum';
|
|
5
|
-
|
|
6
|
-
//
|
|
5
|
+
export * from './shared-lib/errors'; // Export actual error classes and functions
|
|
6
|
+
// Shared patterns (architecture components)
|
|
7
|
+
export * from './shared-patterns';
|
|
8
|
+
// Note: This library contains both pure data contracts and internal architecture patterns
|
|
9
|
+
// External consumers should only use the type exports and documented public APIs
|
|
7
10
|
//# sourceMappingURL=index.js.map
|