@tiangong-lca/tidas-sdk 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +0 -0
- package/dist/core/base/TidasEntity.d.ts +97 -0
- package/dist/core/base/TidasEntity.d.ts.map +1 -0
- package/dist/core/base/TidasEntity.js +241 -0
- package/dist/core/base/TidasEntity.js.map +1 -0
- package/dist/core/config/GlobalConfig.d.ts +60 -0
- package/dist/core/config/GlobalConfig.d.ts.map +1 -0
- package/dist/core/config/GlobalConfig.js +110 -0
- package/dist/core/config/GlobalConfig.js.map +1 -0
- package/dist/core/config/ValidationConfig.d.ts +70 -0
- package/dist/core/config/ValidationConfig.d.ts.map +1 -0
- package/dist/core/config/ValidationConfig.js +159 -0
- package/dist/core/config/ValidationConfig.js.map +1 -0
- package/dist/core/entities/TidasContact.d.ts +14 -0
- package/dist/core/entities/TidasContact.d.ts.map +1 -0
- package/dist/core/entities/TidasContact.js +87 -0
- package/dist/core/entities/TidasContact.js.map +1 -0
- package/dist/core/entities/TidasFlow.d.ts +14 -0
- package/dist/core/entities/TidasFlow.d.ts.map +1 -0
- package/dist/core/entities/TidasFlow.js +105 -0
- package/dist/core/entities/TidasFlow.js.map +1 -0
- package/dist/core/entities/TidasFlowProperty.d.ts +14 -0
- package/dist/core/entities/TidasFlowProperty.d.ts.map +1 -0
- package/dist/core/entities/TidasFlowProperty.js +111 -0
- package/dist/core/entities/TidasFlowProperty.js.map +1 -0
- package/dist/core/entities/TidasLCIAMethod.d.ts +14 -0
- package/dist/core/entities/TidasLCIAMethod.d.ts.map +1 -0
- package/dist/core/entities/TidasLCIAMethod.js +125 -0
- package/dist/core/entities/TidasLCIAMethod.js.map +1 -0
- package/dist/core/entities/TidasLifeCycleModel.d.ts +14 -0
- package/dist/core/entities/TidasLifeCycleModel.d.ts.map +1 -0
- package/dist/core/entities/TidasLifeCycleModel.js +117 -0
- package/dist/core/entities/TidasLifeCycleModel.js.map +1 -0
- package/dist/core/entities/TidasProcess.d.ts +14 -0
- package/dist/core/entities/TidasProcess.d.ts.map +1 -0
- package/dist/core/entities/TidasProcess.js +129 -0
- package/dist/core/entities/TidasProcess.js.map +1 -0
- package/dist/core/entities/TidasSource.d.ts +14 -0
- package/dist/core/entities/TidasSource.d.ts.map +1 -0
- package/dist/core/entities/TidasSource.js +101 -0
- package/dist/core/entities/TidasSource.js.map +1 -0
- package/dist/core/entities/TidasUnitGroup.d.ts +14 -0
- package/dist/core/entities/TidasUnitGroup.d.ts.map +1 -0
- package/dist/core/entities/TidasUnitGroup.js +121 -0
- package/dist/core/entities/TidasUnitGroup.js.map +1 -0
- package/dist/core/factories/index.d.ts +49 -0
- package/dist/core/factories/index.d.ts.map +1 -0
- package/dist/core/factories/index.js +171 -0
- package/dist/core/factories/index.js.map +1 -0
- package/dist/core/index.d.ts +11 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +47 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/zod-factories.d.ts +71 -0
- package/dist/core/zod-factories.d.ts.map +1 -0
- package/dist/core/zod-factories.js +169 -0
- package/dist/core/zod-factories.js.map +1 -0
- package/dist/core/zod-proxy.d.ts +108 -0
- package/dist/core/zod-proxy.d.ts.map +1 -0
- package/dist/core/zod-proxy.js +382 -0
- package/dist/core/zod-proxy.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +64 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/index.d.ts +48 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +111 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/tidas_contacts.schema.d.ts +2340 -0
- package/dist/schemas/tidas_contacts.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_contacts.schema.js +75 -0
- package/dist/schemas/tidas_contacts.schema.js.map +1 -0
- package/dist/schemas/tidas_contacts_category.schema.d.ts +3 -0
- package/dist/schemas/tidas_contacts_category.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_contacts_category.schema.js +53 -0
- package/dist/schemas/tidas_contacts_category.schema.js.map +1 -0
- package/dist/schemas/tidas_data_types.schema.d.ts +172 -0
- package/dist/schemas/tidas_data_types.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_data_types.schema.js +74 -0
- package/dist/schemas/tidas_data_types.schema.js.map +1 -0
- package/dist/schemas/tidas_flowproperties.schema.d.ts +2505 -0
- package/dist/schemas/tidas_flowproperties.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_flowproperties.schema.js +78 -0
- package/dist/schemas/tidas_flowproperties.schema.js.map +1 -0
- package/dist/schemas/tidas_flowproperties_category.schema.d.ts +3 -0
- package/dist/schemas/tidas_flowproperties_category.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_flowproperties_category.schema.js +28 -0
- package/dist/schemas/tidas_flowproperties_category.schema.js.map +1 -0
- package/dist/schemas/tidas_flows.schema.d.ts +3366 -0
- package/dist/schemas/tidas_flows.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_flows.schema.js +125 -0
- package/dist/schemas/tidas_flows.schema.js.map +1 -0
- package/dist/schemas/tidas_flows_elementary_category.schema.d.ts +3 -0
- package/dist/schemas/tidas_flows_elementary_category.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_flows_elementary_category.schema.js +309 -0
- package/dist/schemas/tidas_flows_elementary_category.schema.js.map +1 -0
- package/dist/schemas/tidas_flows_product_category.schema.d.ts +3 -0
- package/dist/schemas/tidas_flows_product_category.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_flows_product_category.schema.js +28508 -0
- package/dist/schemas/tidas_flows_product_category.schema.js.map +1 -0
- package/dist/schemas/tidas_lciamethods.schema.d.ts +11025 -0
- package/dist/schemas/tidas_lciamethods.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_lciamethods.schema.js +439 -0
- package/dist/schemas/tidas_lciamethods.schema.js.map +1 -0
- package/dist/schemas/tidas_lciamethods_category.schema.d.ts +3 -0
- package/dist/schemas/tidas_lciamethods_category.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_lciamethods_category.schema.js +278 -0
- package/dist/schemas/tidas_lciamethods_category.schema.js.map +1 -0
- package/dist/schemas/tidas_lifecyclemodels.schema.d.ts +9362 -0
- package/dist/schemas/tidas_lifecyclemodels.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_lifecyclemodels.schema.js +384 -0
- package/dist/schemas/tidas_lifecyclemodels.schema.js.map +1 -0
- package/dist/schemas/tidas_locations_category.schema.d.ts +3 -0
- package/dist/schemas/tidas_locations_category.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_locations_category.schema.js +655 -0
- package/dist/schemas/tidas_locations_category.schema.js.map +1 -0
- package/dist/schemas/tidas_processes.schema.d.ts +12861 -0
- package/dist/schemas/tidas_processes.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_processes.schema.js +547 -0
- package/dist/schemas/tidas_processes.schema.js.map +1 -0
- package/dist/schemas/tidas_processes_category.schema.d.ts +3 -0
- package/dist/schemas/tidas_processes_category.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_processes_category.schema.js +4480 -0
- package/dist/schemas/tidas_processes_category.schema.js.map +1 -0
- package/dist/schemas/tidas_sources.schema.d.ts +2007 -0
- package/dist/schemas/tidas_sources.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_sources.schema.js +73 -0
- package/dist/schemas/tidas_sources.schema.js.map +1 -0
- package/dist/schemas/tidas_sources_category.schema.d.ts +3 -0
- package/dist/schemas/tidas_sources_category.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_sources_category.schema.js +43 -0
- package/dist/schemas/tidas_sources_category.schema.js.map +1 -0
- package/dist/schemas/tidas_unitgroups.schema.d.ts +2088 -0
- package/dist/schemas/tidas_unitgroups.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_unitgroups.schema.js +92 -0
- package/dist/schemas/tidas_unitgroups.schema.js.map +1 -0
- package/dist/schemas/tidas_unitgroups_category.schema.d.ts +3 -0
- package/dist/schemas/tidas_unitgroups_category.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_unitgroups_category.schema.js +28 -0
- package/dist/schemas/tidas_unitgroups_category.schema.js.map +1 -0
- package/dist/types/index.d.ts +21 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/tidas_contacts.d.ts +72 -0
- package/dist/types/tidas_contacts.d.ts.map +1 -0
- package/dist/types/tidas_contacts.js +8 -0
- package/dist/types/tidas_contacts.js.map +1 -0
- package/dist/types/tidas_contacts_category.d.ts +43 -0
- package/dist/types/tidas_contacts_category.d.ts.map +1 -0
- package/dist/types/tidas_contacts_category.js +8 -0
- package/dist/types/tidas_contacts_category.js.map +1 -0
- package/dist/types/tidas_data_types.d.ts +145 -0
- package/dist/types/tidas_data_types.d.ts.map +1 -0
- package/dist/types/tidas_data_types.js +8 -0
- package/dist/types/tidas_data_types.js.map +1 -0
- package/dist/types/tidas_flowproperties.d.ts +70 -0
- package/dist/types/tidas_flowproperties.d.ts.map +1 -0
- package/dist/types/tidas_flowproperties.js +8 -0
- package/dist/types/tidas_flowproperties.js.map +1 -0
- package/dist/types/tidas_flowproperties_category.d.ts +23 -0
- package/dist/types/tidas_flowproperties_category.d.ts.map +1 -0
- package/dist/types/tidas_flowproperties_category.js +8 -0
- package/dist/types/tidas_flowproperties_category.js.map +1 -0
- package/dist/types/tidas_flows.d.ts +98 -0
- package/dist/types/tidas_flows.d.ts.map +1 -0
- package/dist/types/tidas_flows.js +8 -0
- package/dist/types/tidas_flows.js.map +1 -0
- package/dist/types/tidas_flows_elementary_category.d.ts +227 -0
- package/dist/types/tidas_flows_elementary_category.d.ts.map +1 -0
- package/dist/types/tidas_flows_elementary_category.js +8 -0
- package/dist/types/tidas_flows_elementary_category.js.map +1 -0
- package/dist/types/tidas_flows_product_category.d.ts +18391 -0
- package/dist/types/tidas_flows_product_category.d.ts.map +1 -0
- package/dist/types/tidas_flows_product_category.js +8 -0
- package/dist/types/tidas_flows_product_category.js.map +1 -0
- package/dist/types/tidas_lciamethods.d.ts +218 -0
- package/dist/types/tidas_lciamethods.d.ts.map +1 -0
- package/dist/types/tidas_lciamethods.js +8 -0
- package/dist/types/tidas_lciamethods.js.map +1 -0
- package/dist/types/tidas_lciamethods_category.d.ts +215 -0
- package/dist/types/tidas_lciamethods_category.d.ts.map +1 -0
- package/dist/types/tidas_lciamethods_category.js +8 -0
- package/dist/types/tidas_lciamethods_category.js.map +1 -0
- package/dist/types/tidas_lifecyclemodels.d.ts +250 -0
- package/dist/types/tidas_lifecyclemodels.d.ts.map +1 -0
- package/dist/types/tidas_lifecyclemodels.js +8 -0
- package/dist/types/tidas_lifecyclemodels.js.map +1 -0
- package/dist/types/tidas_locations_category.d.ts +7 -0
- package/dist/types/tidas_locations_category.d.ts.map +1 -0
- package/dist/types/tidas_locations_category.js +8 -0
- package/dist/types/tidas_locations_category.js.map +1 -0
- package/dist/types/tidas_processes.d.ts +278 -0
- package/dist/types/tidas_processes.d.ts.map +1 -0
- package/dist/types/tidas_processes.js +8 -0
- package/dist/types/tidas_processes.js.map +1 -0
- package/dist/types/tidas_processes_category.d.ts +3071 -0
- package/dist/types/tidas_processes_category.d.ts.map +1 -0
- package/dist/types/tidas_processes_category.js +8 -0
- package/dist/types/tidas_processes_category.js.map +1 -0
- package/dist/types/tidas_sources.d.ts +58 -0
- package/dist/types/tidas_sources.d.ts.map +1 -0
- package/dist/types/tidas_sources.js +8 -0
- package/dist/types/tidas_sources.js.map +1 -0
- package/dist/types/tidas_sources_category.d.ts +35 -0
- package/dist/types/tidas_sources_category.d.ts.map +1 -0
- package/dist/types/tidas_sources_category.js +8 -0
- package/dist/types/tidas_sources_category.js.map +1 -0
- package/dist/types/tidas_unitgroups.d.ts +81 -0
- package/dist/types/tidas_unitgroups.d.ts.map +1 -0
- package/dist/types/tidas_unitgroups.js +8 -0
- package/dist/types/tidas_unitgroups.js.map +1 -0
- package/dist/types/tidas_unitgroups_category.d.ts +23 -0
- package/dist/types/tidas_unitgroups_category.d.ts.map +1 -0
- package/dist/types/tidas_unitgroups_category.js +8 -0
- package/dist/types/tidas_unitgroups_category.js.map +1 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +31 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/object-utils.d.ts +29 -0
- package/dist/utils/object-utils.d.ts.map +1 -0
- package/dist/utils/object-utils.js +156 -0
- package/dist/utils/object-utils.js.map +1 -0
- package/package.json +90 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 TIDAS TypeScript SDK
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
File without changes
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ValidationConfig, EnhancedValidationResult, ValidationMode } from '../config/ValidationConfig';
|
|
3
|
+
/**
|
|
4
|
+
* Legacy validation result type (maintained for backward compatibility)
|
|
5
|
+
*/
|
|
6
|
+
export type ValidationResult<T> = {
|
|
7
|
+
success: true;
|
|
8
|
+
data: T;
|
|
9
|
+
} | {
|
|
10
|
+
success: false;
|
|
11
|
+
error: z.ZodError;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Abstract base class for all TIDAS entities
|
|
15
|
+
* Provides basic validation and data container functionality without property mapping
|
|
16
|
+
*/
|
|
17
|
+
export declare abstract class TidasEntity<T = any> {
|
|
18
|
+
protected _schema: z.ZodSchema<T>;
|
|
19
|
+
protected _data: Partial<T>;
|
|
20
|
+
protected _proxy: any;
|
|
21
|
+
protected _validationConfig: ValidationConfig;
|
|
22
|
+
constructor(schema: z.ZodSchema<T>, initialData?: Partial<T>, validationConfig?: Partial<ValidationConfig>);
|
|
23
|
+
/**
|
|
24
|
+
* Abstract method to be implemented by subclasses
|
|
25
|
+
* Initializes default values and ensures required structure
|
|
26
|
+
*/
|
|
27
|
+
protected abstract initializeDefaults(): void;
|
|
28
|
+
/**
|
|
29
|
+
* Creates a basic proxy that provides direct data access
|
|
30
|
+
*/
|
|
31
|
+
private createBasicProxy;
|
|
32
|
+
/**
|
|
33
|
+
* Get nested value using dot notation path
|
|
34
|
+
*/
|
|
35
|
+
protected getNestedValue(path: string): any;
|
|
36
|
+
/**
|
|
37
|
+
* Set nested value using dot notation path
|
|
38
|
+
*/
|
|
39
|
+
protected setNestedValue(path: string, value: any): void;
|
|
40
|
+
/**
|
|
41
|
+
* Resolve a nested path in an object
|
|
42
|
+
*/
|
|
43
|
+
private resolvePath;
|
|
44
|
+
/**
|
|
45
|
+
* Set a nested path in an object
|
|
46
|
+
*/
|
|
47
|
+
private setPath;
|
|
48
|
+
/**
|
|
49
|
+
* Ensure nested structure exists
|
|
50
|
+
*/
|
|
51
|
+
protected ensureNestedStructure(paths: string[]): void;
|
|
52
|
+
/**
|
|
53
|
+
* Get current validation configuration
|
|
54
|
+
*/
|
|
55
|
+
getValidationConfig(): ValidationConfig;
|
|
56
|
+
/**
|
|
57
|
+
* Set validation mode
|
|
58
|
+
*/
|
|
59
|
+
setValidationMode(mode: ValidationMode): void;
|
|
60
|
+
/**
|
|
61
|
+
* Set validation configuration
|
|
62
|
+
*/
|
|
63
|
+
setValidationConfig(config: Partial<ValidationConfig>): void;
|
|
64
|
+
/**
|
|
65
|
+
* Enhanced validation with configurable modes
|
|
66
|
+
*/
|
|
67
|
+
validateEnhanced(): EnhancedValidationResult<T>;
|
|
68
|
+
/**
|
|
69
|
+
* Legacy validation method (maintained for backward compatibility)
|
|
70
|
+
* Uses current validation configuration but returns legacy result format
|
|
71
|
+
*/
|
|
72
|
+
validate(): ValidationResult<T>;
|
|
73
|
+
/**
|
|
74
|
+
* Convert to JSON (complete TIDAS structure)
|
|
75
|
+
* Ensures clean JSON output without non-serializable objects
|
|
76
|
+
*/
|
|
77
|
+
toJSON(): T;
|
|
78
|
+
/**
|
|
79
|
+
* Convert to JSON string
|
|
80
|
+
* Returns a properly formatted JSON string
|
|
81
|
+
*/
|
|
82
|
+
toJSONString(indent?: number): string;
|
|
83
|
+
/**
|
|
84
|
+
* Clean data for JSON serialization
|
|
85
|
+
* Removes undefined values, functions, and ensures proper structure
|
|
86
|
+
*/
|
|
87
|
+
private cleanForJSON;
|
|
88
|
+
/**
|
|
89
|
+
* Get raw data access
|
|
90
|
+
*/
|
|
91
|
+
get rawData(): Partial<T>;
|
|
92
|
+
/**
|
|
93
|
+
* Clone the entity
|
|
94
|
+
*/
|
|
95
|
+
clone(): this;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=TidasEntity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TidasEntity.d.ts","sourceRoot":"","sources":["../../../src/core/base/TidasEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EAExB,cAAc,EACf,MAAM,4BAA4B,CAAC;AAGpC;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;IAChC,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,CAAC,CAAC;CACT,GAAG;IACF,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,8BAAsB,WAAW,CAAC,CAAC,GAAG,GAAG;IACvC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAClC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAM;IACjC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC;IACtB,SAAS,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;gBAElC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC;IAY1G;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,kBAAkB,IAAI,IAAI;IAE7C;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAwDxB;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG;IAI3C;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAIxD;;OAEG;IACH,OAAO,CAAC,WAAW;IAWnB;;OAEG;IACH,OAAO,CAAC,OAAO;IA0Bf;;OAEG;IACH,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAQtD;;OAEG;IACH,mBAAmB,IAAI,gBAAgB;IAIvC;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAI7C;;OAEG;IACH,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAO5D;;OAEG;IACH,gBAAgB,IAAI,wBAAwB,CAAC,CAAC,CAAC;IAQ/C;;;OAGG;IACH,QAAQ,IAAI,gBAAgB,CAAC,CAAC,CAAC;IAgB/B;;;OAGG;IACH,MAAM,IAAI,CAAC;IAIX;;;OAGG;IACH,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IAKrC;;;OAGG;IACH,OAAO,CAAC,YAAY;IA4BpB;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAExB;IAED;;OAEG;IACH,KAAK,IAAI,IAAI;CAId"}
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TidasEntity = void 0;
|
|
4
|
+
const ValidationConfig_1 = require("../config/ValidationConfig");
|
|
5
|
+
const GlobalConfig_1 = require("../config/GlobalConfig");
|
|
6
|
+
/**
|
|
7
|
+
* Abstract base class for all TIDAS entities
|
|
8
|
+
* Provides basic validation and data container functionality without property mapping
|
|
9
|
+
*/
|
|
10
|
+
class TidasEntity {
|
|
11
|
+
constructor(schema, initialData, validationConfig) {
|
|
12
|
+
this._data = {};
|
|
13
|
+
this._schema = schema;
|
|
14
|
+
this._data = initialData || {};
|
|
15
|
+
this._validationConfig = {
|
|
16
|
+
...GlobalConfig_1.globalConfig.getDefaultValidationConfig(),
|
|
17
|
+
...validationConfig
|
|
18
|
+
};
|
|
19
|
+
this._proxy = this.createBasicProxy();
|
|
20
|
+
this.initializeDefaults();
|
|
21
|
+
return this._proxy;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Creates a basic proxy that provides direct data access
|
|
25
|
+
*/
|
|
26
|
+
createBasicProxy() {
|
|
27
|
+
return new Proxy(this, {
|
|
28
|
+
get(target, prop) {
|
|
29
|
+
if (typeof prop === 'symbol') {
|
|
30
|
+
return target[prop];
|
|
31
|
+
}
|
|
32
|
+
// 1. Method calls - return bound methods
|
|
33
|
+
if (typeof target[prop] === 'function') {
|
|
34
|
+
return target[prop].bind(target);
|
|
35
|
+
}
|
|
36
|
+
// 2. Direct data access
|
|
37
|
+
if (prop in target._data) {
|
|
38
|
+
return target._data[prop];
|
|
39
|
+
}
|
|
40
|
+
// 3. Dynamic path access (supports dot notation)
|
|
41
|
+
if (prop.includes('.') || prop.includes('[')) {
|
|
42
|
+
return target.getNestedValue(prop);
|
|
43
|
+
}
|
|
44
|
+
// 4. Other properties
|
|
45
|
+
return target[prop];
|
|
46
|
+
},
|
|
47
|
+
set(target, prop, value) {
|
|
48
|
+
if (typeof prop === 'symbol') {
|
|
49
|
+
target[prop] = value;
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
// 1. Dynamic path setting (supports dot notation)
|
|
53
|
+
if (prop.includes('.') || prop.includes('[')) {
|
|
54
|
+
target.setNestedValue(prop, value);
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
// 2. Top-level property setting
|
|
58
|
+
target._data[prop] = value;
|
|
59
|
+
return true;
|
|
60
|
+
},
|
|
61
|
+
has(target, prop) {
|
|
62
|
+
return prop in target._data || prop in target;
|
|
63
|
+
},
|
|
64
|
+
ownKeys(target) {
|
|
65
|
+
return [
|
|
66
|
+
...Object.keys(target._data),
|
|
67
|
+
...Object.getOwnPropertyNames(target)
|
|
68
|
+
];
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Get nested value using dot notation path
|
|
74
|
+
*/
|
|
75
|
+
getNestedValue(path) {
|
|
76
|
+
return this.resolvePath(this._data, path);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Set nested value using dot notation path
|
|
80
|
+
*/
|
|
81
|
+
setNestedValue(path, value) {
|
|
82
|
+
this.setPath(this._data, path, value);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Resolve a nested path in an object
|
|
86
|
+
*/
|
|
87
|
+
resolvePath(obj, path) {
|
|
88
|
+
return path.split('.').reduce((current, key) => {
|
|
89
|
+
if (key.includes('[') && key.includes(']')) {
|
|
90
|
+
const [arrayKey, indexStr] = key.split('[');
|
|
91
|
+
const index = parseInt(indexStr.replace(']', ''));
|
|
92
|
+
return current?.[arrayKey]?.[index];
|
|
93
|
+
}
|
|
94
|
+
return current?.[key];
|
|
95
|
+
}, obj);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Set a nested path in an object
|
|
99
|
+
*/
|
|
100
|
+
setPath(obj, path, value) {
|
|
101
|
+
const keys = path.split('.');
|
|
102
|
+
const lastKey = keys.pop();
|
|
103
|
+
const target = keys.reduce((current, key) => {
|
|
104
|
+
if (key.includes('[') && key.includes(']')) {
|
|
105
|
+
const [arrayKey, indexStr] = key.split('[');
|
|
106
|
+
const index = parseInt(indexStr.replace(']', ''));
|
|
107
|
+
if (!current[arrayKey])
|
|
108
|
+
current[arrayKey] = [];
|
|
109
|
+
if (!current[arrayKey][index])
|
|
110
|
+
current[arrayKey][index] = {};
|
|
111
|
+
return current[arrayKey][index];
|
|
112
|
+
}
|
|
113
|
+
if (!current[key])
|
|
114
|
+
current[key] = {};
|
|
115
|
+
return current[key];
|
|
116
|
+
}, obj);
|
|
117
|
+
if (lastKey.includes('[') && lastKey.includes(']')) {
|
|
118
|
+
const [arrayKey, indexStr] = lastKey.split('[');
|
|
119
|
+
const index = parseInt(indexStr.replace(']', ''));
|
|
120
|
+
if (!target[arrayKey])
|
|
121
|
+
target[arrayKey] = [];
|
|
122
|
+
target[arrayKey][index] = value;
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
target[lastKey] = value;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Ensure nested structure exists
|
|
130
|
+
*/
|
|
131
|
+
ensureNestedStructure(paths) {
|
|
132
|
+
paths.forEach(path => {
|
|
133
|
+
if (!this.getNestedValue(path)) {
|
|
134
|
+
this.setNestedValue(path, {});
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Get current validation configuration
|
|
140
|
+
*/
|
|
141
|
+
getValidationConfig() {
|
|
142
|
+
return { ...this._validationConfig };
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Set validation mode
|
|
146
|
+
*/
|
|
147
|
+
setValidationMode(mode) {
|
|
148
|
+
this._validationConfig.mode = mode;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Set validation configuration
|
|
152
|
+
*/
|
|
153
|
+
setValidationConfig(config) {
|
|
154
|
+
this._validationConfig = {
|
|
155
|
+
...this._validationConfig,
|
|
156
|
+
...config
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Enhanced validation with configurable modes
|
|
161
|
+
*/
|
|
162
|
+
validateEnhanced() {
|
|
163
|
+
return ValidationConfig_1.ValidationUtils.performValidation(this._schema, this._data, this._validationConfig);
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Legacy validation method (maintained for backward compatibility)
|
|
167
|
+
* Uses current validation configuration but returns legacy result format
|
|
168
|
+
*/
|
|
169
|
+
validate() {
|
|
170
|
+
const enhancedResult = this.validateEnhanced();
|
|
171
|
+
if (enhancedResult.success) {
|
|
172
|
+
return {
|
|
173
|
+
success: true,
|
|
174
|
+
data: enhancedResult.data
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
return {
|
|
179
|
+
success: false,
|
|
180
|
+
error: enhancedResult.error
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Convert to JSON (complete TIDAS structure)
|
|
186
|
+
* Ensures clean JSON output without non-serializable objects
|
|
187
|
+
*/
|
|
188
|
+
toJSON() {
|
|
189
|
+
return this.cleanForJSON(this._data);
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Convert to JSON string
|
|
193
|
+
* Returns a properly formatted JSON string
|
|
194
|
+
*/
|
|
195
|
+
toJSONString(indent) {
|
|
196
|
+
const cleanData = this.cleanForJSON(this._data);
|
|
197
|
+
return JSON.stringify(cleanData, null, indent);
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Clean data for JSON serialization
|
|
201
|
+
* Removes undefined values, functions, and ensures proper structure
|
|
202
|
+
*/
|
|
203
|
+
cleanForJSON(obj) {
|
|
204
|
+
if (obj === null || obj === undefined) {
|
|
205
|
+
return null;
|
|
206
|
+
}
|
|
207
|
+
if (typeof obj === 'function') {
|
|
208
|
+
return undefined;
|
|
209
|
+
}
|
|
210
|
+
if (Array.isArray(obj)) {
|
|
211
|
+
return obj.map(item => this.cleanForJSON(item)).filter(item => item !== undefined);
|
|
212
|
+
}
|
|
213
|
+
if (typeof obj === 'object') {
|
|
214
|
+
const cleaned = {};
|
|
215
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
216
|
+
const cleanedValue = this.cleanForJSON(value);
|
|
217
|
+
if (cleanedValue !== undefined) {
|
|
218
|
+
cleaned[key] = cleanedValue;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
return cleaned;
|
|
222
|
+
}
|
|
223
|
+
// Primitive values
|
|
224
|
+
return obj;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Get raw data access
|
|
228
|
+
*/
|
|
229
|
+
get rawData() {
|
|
230
|
+
return this._data;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Clone the entity
|
|
234
|
+
*/
|
|
235
|
+
clone() {
|
|
236
|
+
const Constructor = this.constructor;
|
|
237
|
+
return new Constructor(this._schema, structuredClone(this._data), this._validationConfig);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
exports.TidasEntity = TidasEntity;
|
|
241
|
+
//# sourceMappingURL=TidasEntity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TidasEntity.js","sourceRoot":"","sources":["../../../src/core/base/TidasEntity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { ValidationConfig, ValidationMode } from './ValidationConfig';
|
|
2
|
+
/**
|
|
3
|
+
* Global configuration for TIDAS SDK
|
|
4
|
+
*/
|
|
5
|
+
declare class TidasGlobalConfig {
|
|
6
|
+
private _defaultValidationConfig;
|
|
7
|
+
/**
|
|
8
|
+
* Get the current default validation configuration
|
|
9
|
+
*/
|
|
10
|
+
getDefaultValidationConfig(): ValidationConfig;
|
|
11
|
+
/**
|
|
12
|
+
* Set the default validation mode globally
|
|
13
|
+
*/
|
|
14
|
+
setDefaultValidationMode(mode: ValidationMode): void;
|
|
15
|
+
/**
|
|
16
|
+
* Set the complete default validation configuration
|
|
17
|
+
*/
|
|
18
|
+
setDefaultValidationConfig(config: Partial<ValidationConfig>): void;
|
|
19
|
+
/**
|
|
20
|
+
* Reset to default configuration
|
|
21
|
+
*/
|
|
22
|
+
resetToDefaults(): void;
|
|
23
|
+
/**
|
|
24
|
+
* Load configuration from environment variables
|
|
25
|
+
*/
|
|
26
|
+
loadFromEnvironment(): void;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Global configuration instance
|
|
30
|
+
*/
|
|
31
|
+
export declare const globalConfig: TidasGlobalConfig;
|
|
32
|
+
/**
|
|
33
|
+
* Convenience functions for global configuration
|
|
34
|
+
*/
|
|
35
|
+
/**
|
|
36
|
+
* Set global validation mode
|
|
37
|
+
*/
|
|
38
|
+
export declare function setGlobalValidationMode(mode: ValidationMode): void;
|
|
39
|
+
/**
|
|
40
|
+
* Get current global validation mode
|
|
41
|
+
*/
|
|
42
|
+
export declare function getGlobalValidationMode(): ValidationMode;
|
|
43
|
+
/**
|
|
44
|
+
* Set global validation configuration
|
|
45
|
+
*/
|
|
46
|
+
export declare function setGlobalValidationConfig(config: Partial<ValidationConfig>): void;
|
|
47
|
+
/**
|
|
48
|
+
* Get current global validation configuration
|
|
49
|
+
*/
|
|
50
|
+
export declare function getGlobalValidationConfig(): ValidationConfig;
|
|
51
|
+
/**
|
|
52
|
+
* Reset global configuration to defaults
|
|
53
|
+
*/
|
|
54
|
+
export declare function resetGlobalConfig(): void;
|
|
55
|
+
/**
|
|
56
|
+
* Load configuration from environment variables
|
|
57
|
+
*/
|
|
58
|
+
export declare function loadConfigFromEnvironment(): void;
|
|
59
|
+
export {};
|
|
60
|
+
//# sourceMappingURL=GlobalConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlobalConfig.d.ts","sourceRoot":"","sources":["../../../src/core/config/GlobalConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAA6B,MAAM,oBAAoB,CAAC;AAEjG;;GAEG;AACH,cAAM,iBAAiB;IACrB,OAAO,CAAC,wBAAwB,CAAsD;IAEtF;;OAEG;IACH,0BAA0B,IAAI,gBAAgB;IAI9C;;OAEG;IACH,wBAAwB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAIpD;;OAEG;IACH,0BAA0B,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAOnE;;OAEG;IACH,eAAe,IAAI,IAAI;IAIvB;;OAEG;IACH,mBAAmB,IAAI,IAAI;CAgB5B;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,mBAA0B,CAAC;AAEpD;;GAEG;AAEH;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAElE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,cAAc,CAExD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAEjF;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,gBAAgB,CAE5D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.globalConfig = void 0;
|
|
4
|
+
exports.setGlobalValidationMode = setGlobalValidationMode;
|
|
5
|
+
exports.getGlobalValidationMode = getGlobalValidationMode;
|
|
6
|
+
exports.setGlobalValidationConfig = setGlobalValidationConfig;
|
|
7
|
+
exports.getGlobalValidationConfig = getGlobalValidationConfig;
|
|
8
|
+
exports.resetGlobalConfig = resetGlobalConfig;
|
|
9
|
+
exports.loadConfigFromEnvironment = loadConfigFromEnvironment;
|
|
10
|
+
const ValidationConfig_1 = require("./ValidationConfig");
|
|
11
|
+
/**
|
|
12
|
+
* Global configuration for TIDAS SDK
|
|
13
|
+
*/
|
|
14
|
+
class TidasGlobalConfig {
|
|
15
|
+
constructor() {
|
|
16
|
+
this._defaultValidationConfig = { ...ValidationConfig_1.DEFAULT_VALIDATION_CONFIG };
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Get the current default validation configuration
|
|
20
|
+
*/
|
|
21
|
+
getDefaultValidationConfig() {
|
|
22
|
+
return { ...this._defaultValidationConfig };
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Set the default validation mode globally
|
|
26
|
+
*/
|
|
27
|
+
setDefaultValidationMode(mode) {
|
|
28
|
+
this._defaultValidationConfig.mode = mode;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Set the complete default validation configuration
|
|
32
|
+
*/
|
|
33
|
+
setDefaultValidationConfig(config) {
|
|
34
|
+
this._defaultValidationConfig = {
|
|
35
|
+
...this._defaultValidationConfig,
|
|
36
|
+
...config
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Reset to default configuration
|
|
41
|
+
*/
|
|
42
|
+
resetToDefaults() {
|
|
43
|
+
this._defaultValidationConfig = { ...ValidationConfig_1.DEFAULT_VALIDATION_CONFIG };
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Load configuration from environment variables
|
|
47
|
+
*/
|
|
48
|
+
loadFromEnvironment() {
|
|
49
|
+
const envMode = process.env.TIDAS_VALIDATION_MODE;
|
|
50
|
+
if (envMode && ['strict', 'weak', 'ignore'].includes(envMode)) {
|
|
51
|
+
this._defaultValidationConfig.mode = envMode;
|
|
52
|
+
}
|
|
53
|
+
const envThrowOnError = process.env.TIDAS_THROW_ON_ERROR;
|
|
54
|
+
if (envThrowOnError !== undefined) {
|
|
55
|
+
this._defaultValidationConfig.throwOnError = envThrowOnError === 'true';
|
|
56
|
+
}
|
|
57
|
+
const envIncludeWarnings = process.env.TIDAS_INCLUDE_WARNINGS;
|
|
58
|
+
if (envIncludeWarnings !== undefined) {
|
|
59
|
+
this._defaultValidationConfig.includeWarnings = envIncludeWarnings === 'true';
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Global configuration instance
|
|
65
|
+
*/
|
|
66
|
+
exports.globalConfig = new TidasGlobalConfig();
|
|
67
|
+
/**
|
|
68
|
+
* Convenience functions for global configuration
|
|
69
|
+
*/
|
|
70
|
+
/**
|
|
71
|
+
* Set global validation mode
|
|
72
|
+
*/
|
|
73
|
+
function setGlobalValidationMode(mode) {
|
|
74
|
+
exports.globalConfig.setDefaultValidationMode(mode);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get current global validation mode
|
|
78
|
+
*/
|
|
79
|
+
function getGlobalValidationMode() {
|
|
80
|
+
return exports.globalConfig.getDefaultValidationConfig().mode;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Set global validation configuration
|
|
84
|
+
*/
|
|
85
|
+
function setGlobalValidationConfig(config) {
|
|
86
|
+
exports.globalConfig.setDefaultValidationConfig(config);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Get current global validation configuration
|
|
90
|
+
*/
|
|
91
|
+
function getGlobalValidationConfig() {
|
|
92
|
+
return exports.globalConfig.getDefaultValidationConfig();
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Reset global configuration to defaults
|
|
96
|
+
*/
|
|
97
|
+
function resetGlobalConfig() {
|
|
98
|
+
exports.globalConfig.resetToDefaults();
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Load configuration from environment variables
|
|
102
|
+
*/
|
|
103
|
+
function loadConfigFromEnvironment() {
|
|
104
|
+
exports.globalConfig.loadFromEnvironment();
|
|
105
|
+
}
|
|
106
|
+
// Auto-load from environment on module initialization
|
|
107
|
+
if (typeof process !== 'undefined' && process.env) {
|
|
108
|
+
loadConfigFromEnvironment();
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=GlobalConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlobalConfig.js","sourceRoot":"","sources":["../../../src/core/config/GlobalConfig.ts"],"names":[],"mappings":";;;AAwEA,0DAEC;AAKD,0DAEC;AAKD,8DAEC;AAKD,8DAEC;AAKD,8CAEC;AAKD,8DAEC;AA7GD,yDAAiG;AAEjG;;GAEG;AACH,MAAM,iBAAiB;IAAvB;QACU,6BAAwB,GAAqB,EAAE,GAAG,4CAAyB,EAAE,CAAC;IAoDxF,CAAC;IAlDC;;OAEG;IACH,0BAA0B;QACxB,OAAO,EAAE,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,wBAAwB,CAAC,IAAoB;QAC3C,IAAI,CAAC,wBAAwB,CAAC,IAAI,GAAG,IAAI,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,0BAA0B,CAAC,MAAiC;QAC1D,IAAI,CAAC,wBAAwB,GAAG;YAC9B,GAAG,IAAI,CAAC,wBAAwB;YAChC,GAAG,MAAM;SACV,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe;QACb,IAAI,CAAC,wBAAwB,GAAG,EAAE,GAAG,4CAAyB,EAAE,CAAC;IACnE,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAuC,CAAC;QACpE,IAAI,OAAO,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9D,IAAI,CAAC,wBAAwB,CAAC,IAAI,GAAG,OAAO,CAAC;QAC/C,CAAC;QAED,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;QACzD,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,wBAAwB,CAAC,YAAY,GAAG,eAAe,KAAK,MAAM,CAAC;QAC1E,CAAC;QAED,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;QAC9D,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACrC,IAAI,CAAC,wBAAwB,CAAC,eAAe,GAAG,kBAAkB,KAAK,MAAM,CAAC;QAChF,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACU,QAAA,YAAY,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAEpD;;GAEG;AAEH;;GAEG;AACH,SAAgB,uBAAuB,CAAC,IAAoB;IAC1D,oBAAY,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,SAAgB,uBAAuB;IACrC,OAAO,oBAAY,CAAC,0BAA0B,EAAE,CAAC,IAAI,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,SAAgB,yBAAyB,CAAC,MAAiC;IACzE,oBAAY,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,SAAgB,yBAAyB;IACvC,OAAO,oBAAY,CAAC,0BAA0B,EAAE,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB;IAC/B,oBAAY,CAAC,eAAe,EAAE,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,SAAgB,yBAAyB;IACvC,oBAAY,CAAC,mBAAmB,EAAE,CAAC;AACrC,CAAC;AAED,sDAAsD;AACtD,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAClD,yBAAyB,EAAE,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Validation mode types
|
|
4
|
+
*/
|
|
5
|
+
export type ValidationMode = 'strict' | 'weak' | 'ignore';
|
|
6
|
+
/**
|
|
7
|
+
* Validation configuration interface
|
|
8
|
+
*/
|
|
9
|
+
export interface ValidationConfig {
|
|
10
|
+
mode: ValidationMode;
|
|
11
|
+
throwOnError?: boolean;
|
|
12
|
+
includeWarnings?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Validation warning interface
|
|
16
|
+
*/
|
|
17
|
+
export interface ValidationWarning {
|
|
18
|
+
path: string[];
|
|
19
|
+
message: string;
|
|
20
|
+
code: string;
|
|
21
|
+
severity: 'low' | 'medium' | 'high';
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Enhanced validation result type
|
|
25
|
+
*/
|
|
26
|
+
export type EnhancedValidationResult<T> = {
|
|
27
|
+
success: true;
|
|
28
|
+
data: T;
|
|
29
|
+
warnings?: ValidationWarning[];
|
|
30
|
+
mode: ValidationMode;
|
|
31
|
+
} | {
|
|
32
|
+
success: false;
|
|
33
|
+
error: z.ZodError;
|
|
34
|
+
warnings?: ValidationWarning[];
|
|
35
|
+
mode: ValidationMode;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Error severity classification
|
|
39
|
+
*/
|
|
40
|
+
export declare enum ErrorSeverity {
|
|
41
|
+
CRITICAL = "critical",
|
|
42
|
+
WARNING = "warning",
|
|
43
|
+
INFO = "info"
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Validation utilities class
|
|
47
|
+
*/
|
|
48
|
+
export declare class ValidationUtils {
|
|
49
|
+
/**
|
|
50
|
+
* Categorize Zod error by severity
|
|
51
|
+
*/
|
|
52
|
+
static categorizeError(error: z.ZodIssue): ErrorSeverity;
|
|
53
|
+
/**
|
|
54
|
+
* Convert Zod issue to validation warning
|
|
55
|
+
*/
|
|
56
|
+
static issueToWarning(issue: z.ZodIssue): ValidationWarning;
|
|
57
|
+
/**
|
|
58
|
+
* Perform weak validation that returns warnings instead of errors
|
|
59
|
+
*/
|
|
60
|
+
static performWeakValidation<T>(schema: z.ZodSchema<T>, data: any, config: ValidationConfig): EnhancedValidationResult<T>;
|
|
61
|
+
/**
|
|
62
|
+
* Perform validation based on mode
|
|
63
|
+
*/
|
|
64
|
+
static performValidation<T>(schema: z.ZodSchema<T>, data: any, config: ValidationConfig): EnhancedValidationResult<T>;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Default validation configuration
|
|
68
|
+
*/
|
|
69
|
+
export declare const DEFAULT_VALIDATION_CONFIG: ValidationConfig;
|
|
70
|
+
//# sourceMappingURL=ValidationConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ValidationConfig.d.ts","sourceRoot":"","sources":["../../../src/core/config/ValidationConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI;IACxC,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,CAAC,CAAC;IACR,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC/B,IAAI,EAAE,cAAc,CAAC;CACtB,GAAG;IACF,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC;IAClB,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC/B,IAAI,EAAE,cAAc,CAAC;CACtB,CAAC;AAEF;;GAEG;AACH,oBAAY,aAAa;IACvB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAaD;;GAEG;AACH,qBAAa,eAAe;IAC1B;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,GAAG,aAAa;IAqCxD;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,GAAG,iBAAiB;IAY3D;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,CAAC,EAC5B,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EACtB,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,gBAAgB,GACvB,wBAAwB,CAAC,CAAC,CAAC;IA6C9B;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,CAAC,EACxB,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EACtB,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,gBAAgB,GACvB,wBAAwB,CAAC,CAAC,CAAC;CAiC/B;AAED;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,gBAIvC,CAAC"}
|