@tiangong-lca/tidas-sdk 0.1.19 → 0.1.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +7 -4
- package/dist/core/base/TidasEntity.d.ts +0 -190
- package/dist/core/base/TidasEntity.d.ts.map +0 -1
- package/dist/core/base/TidasEntity.js +0 -433
- package/dist/core/base/TidasEntity.js.map +0 -1
- package/dist/core/config/GlobalConfig.d.ts +0 -60
- package/dist/core/config/GlobalConfig.d.ts.map +0 -1
- package/dist/core/config/GlobalConfig.js +0 -110
- package/dist/core/config/GlobalConfig.js.map +0 -1
- package/dist/core/config/ValidationConfig.d.ts +0 -70
- package/dist/core/config/ValidationConfig.d.ts.map +0 -1
- package/dist/core/config/ValidationConfig.js +0 -157
- package/dist/core/config/ValidationConfig.js.map +0 -1
- package/dist/core/copilot/ai.d.ts +0 -150
- package/dist/core/copilot/ai.d.ts.map +0 -1
- package/dist/core/copilot/ai.js +0 -581
- package/dist/core/copilot/ai.js.map +0 -1
- package/dist/core/copilot/base.d.ts +0 -83
- package/dist/core/copilot/base.d.ts.map +0 -1
- package/dist/core/copilot/base.js +0 -193
- package/dist/core/copilot/base.js.map +0 -1
- package/dist/core/copilot/index.d.ts +0 -1
- package/dist/core/copilot/index.d.ts.map +0 -1
- package/dist/core/copilot/index.js +0 -2
- package/dist/core/copilot/index.js.map +0 -1
- package/dist/core/entities/TidasContact.d.ts +0 -14
- package/dist/core/entities/TidasContact.d.ts.map +0 -1
- package/dist/core/entities/TidasContact.js +0 -124
- package/dist/core/entities/TidasContact.js.map +0 -1
- package/dist/core/entities/TidasFlow.d.ts +0 -14
- package/dist/core/entities/TidasFlow.d.ts.map +0 -1
- package/dist/core/entities/TidasFlow.js +0 -143
- package/dist/core/entities/TidasFlow.js.map +0 -1
- package/dist/core/entities/TidasFlowProperty.d.ts +0 -14
- package/dist/core/entities/TidasFlowProperty.d.ts.map +0 -1
- package/dist/core/entities/TidasFlowProperty.js +0 -156
- package/dist/core/entities/TidasFlowProperty.js.map +0 -1
- package/dist/core/entities/TidasLCIAMethod.d.ts +0 -14
- package/dist/core/entities/TidasLCIAMethod.d.ts.map +0 -1
- package/dist/core/entities/TidasLCIAMethod.js +0 -177
- package/dist/core/entities/TidasLCIAMethod.js.map +0 -1
- package/dist/core/entities/TidasLifeCycleModel.d.ts +0 -14
- package/dist/core/entities/TidasLifeCycleModel.d.ts.map +0 -1
- package/dist/core/entities/TidasLifeCycleModel.js +0 -169
- package/dist/core/entities/TidasLifeCycleModel.js.map +0 -1
- package/dist/core/entities/TidasProcess.d.ts +0 -14
- package/dist/core/entities/TidasProcess.d.ts.map +0 -1
- package/dist/core/entities/TidasProcess.js +0 -191
- package/dist/core/entities/TidasProcess.js.map +0 -1
- package/dist/core/entities/TidasSource.d.ts +0 -14
- package/dist/core/entities/TidasSource.d.ts.map +0 -1
- package/dist/core/entities/TidasSource.js +0 -146
- package/dist/core/entities/TidasSource.js.map +0 -1
- package/dist/core/entities/TidasUnitGroup.d.ts +0 -14
- package/dist/core/entities/TidasUnitGroup.d.ts.map +0 -1
- package/dist/core/entities/TidasUnitGroup.js +0 -177
- package/dist/core/entities/TidasUnitGroup.js.map +0 -1
- package/dist/core/factories/index.d.ts +0 -46
- package/dist/core/factories/index.d.ts.map +0 -1
- package/dist/core/factories/index.js +0 -223
- package/dist/core/factories/index.js.map +0 -1
- package/dist/core/index.d.ts +0 -9
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -56
- package/dist/core/index.js.map +0 -1
- package/dist/core/zod-factories.d.ts +0 -71
- package/dist/core/zod-factories.d.ts.map +0 -1
- package/dist/core/zod-factories.js +0 -169
- package/dist/core/zod-factories.js.map +0 -1
- package/dist/core/zod-proxy.d.ts +0 -108
- package/dist/core/zod-proxy.d.ts.map +0 -1
- package/dist/core/zod-proxy.js +0 -382
- package/dist/core/zod-proxy.js.map +0 -1
- package/dist/data/bundled-methodologies.json +0 -1259
- package/dist/index.d.ts +0 -33
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -73
- package/dist/index.js.map +0 -1
- package/dist/schemas/index.d.ts +0 -48
- package/dist/schemas/index.d.ts.map +0 -1
- package/dist/schemas/index.js +0 -112
- package/dist/schemas/index.js.map +0 -1
- package/dist/schemas/tidas_contacts.schema.d.ts +0 -124
- package/dist/schemas/tidas_contacts.schema.d.ts.map +0 -1
- package/dist/schemas/tidas_contacts.schema.js +0 -75
- package/dist/schemas/tidas_contacts.schema.js.map +0 -1
- package/dist/schemas/tidas_contacts_category.schema.d.ts +0 -3
- package/dist/schemas/tidas_contacts_category.schema.d.ts.map +0 -1
- package/dist/schemas/tidas_contacts_category.schema.js +0 -53
- package/dist/schemas/tidas_contacts_category.schema.js.map +0 -1
- package/dist/schemas/tidas_data_types.schema.d.ts +0 -34
- package/dist/schemas/tidas_data_types.schema.d.ts.map +0 -1
- package/dist/schemas/tidas_data_types.schema.js +0 -60
- package/dist/schemas/tidas_data_types.schema.js.map +0 -1
- package/dist/schemas/tidas_flowproperties.schema.d.ts +0 -152
- package/dist/schemas/tidas_flowproperties.schema.d.ts.map +0 -1
- package/dist/schemas/tidas_flowproperties.schema.js +0 -88
- package/dist/schemas/tidas_flowproperties.schema.js.map +0 -1
- package/dist/schemas/tidas_flowproperties_category.schema.d.ts +0 -3
- package/dist/schemas/tidas_flowproperties_category.schema.d.ts.map +0 -1
- package/dist/schemas/tidas_flowproperties_category.schema.js +0 -28
- package/dist/schemas/tidas_flowproperties_category.schema.js.map +0 -1
- package/dist/schemas/tidas_flows.schema.d.ts +0 -215
- package/dist/schemas/tidas_flows.schema.d.ts.map +0 -1
- package/dist/schemas/tidas_flows.schema.js +0 -165
- package/dist/schemas/tidas_flows.schema.js.map +0 -1
- package/dist/schemas/tidas_flows_elementary_category.schema.d.ts +0 -3
- package/dist/schemas/tidas_flows_elementary_category.schema.d.ts.map +0 -1
- package/dist/schemas/tidas_flows_elementary_category.schema.js +0 -309
- package/dist/schemas/tidas_flows_elementary_category.schema.js.map +0 -1
- package/dist/schemas/tidas_flows_product_category.schema.d.ts +0 -3
- package/dist/schemas/tidas_flows_product_category.schema.d.ts.map +0 -1
- package/dist/schemas/tidas_flows_product_category.schema.js +0 -28508
- package/dist/schemas/tidas_flows_product_category.schema.js.map +0 -1
- package/dist/schemas/tidas_lciamethods.schema.d.ts +0 -546
- package/dist/schemas/tidas_lciamethods.schema.d.ts.map +0 -1
- package/dist/schemas/tidas_lciamethods.schema.js +0 -513
- package/dist/schemas/tidas_lciamethods.schema.js.map +0 -1
- package/dist/schemas/tidas_lciamethods_category.schema.d.ts +0 -3
- package/dist/schemas/tidas_lciamethods_category.schema.d.ts.map +0 -1
- package/dist/schemas/tidas_lciamethods_category.schema.js +0 -278
- package/dist/schemas/tidas_lciamethods_category.schema.js.map +0 -1
- package/dist/schemas/tidas_lifecyclemodels.schema.d.ts +0 -465
- package/dist/schemas/tidas_lifecyclemodels.schema.d.ts.map +0 -1
- package/dist/schemas/tidas_lifecyclemodels.schema.js +0 -420
- package/dist/schemas/tidas_lifecyclemodels.schema.js.map +0 -1
- package/dist/schemas/tidas_locations_category.schema.d.ts +0 -3
- package/dist/schemas/tidas_locations_category.schema.d.ts.map +0 -1
- package/dist/schemas/tidas_locations_category.schema.js +0 -655
- package/dist/schemas/tidas_locations_category.schema.js.map +0 -1
- package/dist/schemas/tidas_processes.schema.d.ts +0 -607
- package/dist/schemas/tidas_processes.schema.d.ts.map +0 -1
- package/dist/schemas/tidas_processes.schema.js +0 -641
- package/dist/schemas/tidas_processes.schema.js.map +0 -1
- package/dist/schemas/tidas_processes_category.schema.d.ts +0 -3
- package/dist/schemas/tidas_processes_category.schema.d.ts.map +0 -1
- package/dist/schemas/tidas_processes_category.schema.js +0 -4480
- package/dist/schemas/tidas_processes_category.schema.js.map +0 -1
- package/dist/schemas/tidas_sources.schema.d.ts +0 -113
- package/dist/schemas/tidas_sources.schema.d.ts.map +0 -1
- package/dist/schemas/tidas_sources.schema.js +0 -73
- package/dist/schemas/tidas_sources.schema.js.map +0 -1
- package/dist/schemas/tidas_sources_category.schema.d.ts +0 -3
- package/dist/schemas/tidas_sources_category.schema.d.ts.map +0 -1
- package/dist/schemas/tidas_sources_category.schema.js +0 -43
- package/dist/schemas/tidas_sources_category.schema.js.map +0 -1
- package/dist/schemas/tidas_unitgroups.schema.d.ts +0 -140
- package/dist/schemas/tidas_unitgroups.schema.d.ts.map +0 -1
- package/dist/schemas/tidas_unitgroups.schema.js +0 -103
- package/dist/schemas/tidas_unitgroups.schema.js.map +0 -1
- package/dist/schemas/tidas_unitgroups_category.schema.d.ts +0 -3
- package/dist/schemas/tidas_unitgroups_category.schema.d.ts.map +0 -1
- package/dist/schemas/tidas_unitgroups_category.schema.js +0 -28
- package/dist/schemas/tidas_unitgroups_category.schema.js.map +0 -1
- package/dist/services/copilot-service.d.ts +0 -147
- package/dist/services/copilot-service.d.ts.map +0 -1
- package/dist/services/copilot-service.js +0 -259
- package/dist/services/copilot-service.js.map +0 -1
- package/dist/services/index.d.ts +0 -9
- package/dist/services/index.d.ts.map +0 -1
- package/dist/services/index.js +0 -24
- package/dist/services/index.js.map +0 -1
- package/dist/types/index.d.ts +0 -22
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -21
- package/dist/types/index.js.map +0 -1
- package/dist/types/multi-lang-types.d.ts +0 -23
- package/dist/types/multi-lang-types.d.ts.map +0 -1
- package/dist/types/multi-lang-types.js +0 -40
- package/dist/types/multi-lang-types.js.map +0 -1
- package/dist/types/tidas_contacts.d.ts +0 -72
- package/dist/types/tidas_contacts.d.ts.map +0 -1
- package/dist/types/tidas_contacts.js +0 -8
- package/dist/types/tidas_contacts.js.map +0 -1
- package/dist/types/tidas_contacts_category.d.ts +0 -43
- package/dist/types/tidas_contacts_category.d.ts.map +0 -1
- package/dist/types/tidas_contacts_category.js +0 -8
- package/dist/types/tidas_contacts_category.js.map +0 -1
- package/dist/types/tidas_data_types.d.ts +0 -116
- package/dist/types/tidas_data_types.d.ts.map +0 -1
- package/dist/types/tidas_data_types.js +0 -8
- package/dist/types/tidas_data_types.js.map +0 -1
- package/dist/types/tidas_flowproperties.d.ts +0 -73
- package/dist/types/tidas_flowproperties.d.ts.map +0 -1
- package/dist/types/tidas_flowproperties.js +0 -8
- package/dist/types/tidas_flowproperties.js.map +0 -1
- package/dist/types/tidas_flowproperties_category.d.ts +0 -23
- package/dist/types/tidas_flowproperties_category.d.ts.map +0 -1
- package/dist/types/tidas_flowproperties_category.js +0 -8
- package/dist/types/tidas_flowproperties_category.js.map +0 -1
- package/dist/types/tidas_flows.d.ts +0 -113
- package/dist/types/tidas_flows.d.ts.map +0 -1
- package/dist/types/tidas_flows.js +0 -8
- package/dist/types/tidas_flows.js.map +0 -1
- package/dist/types/tidas_flows_elementary_category.d.ts +0 -227
- package/dist/types/tidas_flows_elementary_category.d.ts.map +0 -1
- package/dist/types/tidas_flows_elementary_category.js +0 -8
- package/dist/types/tidas_flows_elementary_category.js.map +0 -1
- package/dist/types/tidas_flows_product_category.d.ts +0 -18391
- package/dist/types/tidas_flows_product_category.d.ts.map +0 -1
- package/dist/types/tidas_flows_product_category.js +0 -8
- package/dist/types/tidas_flows_product_category.js.map +0 -1
- package/dist/types/tidas_lciamethods.d.ts +0 -231
- package/dist/types/tidas_lciamethods.d.ts.map +0 -1
- package/dist/types/tidas_lciamethods.js +0 -8
- package/dist/types/tidas_lciamethods.js.map +0 -1
- package/dist/types/tidas_lciamethods_category.d.ts +0 -215
- package/dist/types/tidas_lciamethods_category.d.ts.map +0 -1
- package/dist/types/tidas_lciamethods_category.js +0 -8
- package/dist/types/tidas_lciamethods_category.js.map +0 -1
- package/dist/types/tidas_lifecyclemodels.d.ts +0 -259
- package/dist/types/tidas_lifecyclemodels.d.ts.map +0 -1
- package/dist/types/tidas_lifecyclemodels.js +0 -8
- package/dist/types/tidas_lifecyclemodels.js.map +0 -1
- package/dist/types/tidas_locations_category.d.ts +0 -7
- package/dist/types/tidas_locations_category.d.ts.map +0 -1
- package/dist/types/tidas_locations_category.js +0 -8
- package/dist/types/tidas_locations_category.js.map +0 -1
- package/dist/types/tidas_processes.d.ts +0 -294
- package/dist/types/tidas_processes.d.ts.map +0 -1
- package/dist/types/tidas_processes.js +0 -8
- package/dist/types/tidas_processes.js.map +0 -1
- package/dist/types/tidas_processes_category.d.ts +0 -3071
- package/dist/types/tidas_processes_category.d.ts.map +0 -1
- package/dist/types/tidas_processes_category.js +0 -8
- package/dist/types/tidas_processes_category.js.map +0 -1
- package/dist/types/tidas_sources.d.ts +0 -58
- package/dist/types/tidas_sources.d.ts.map +0 -1
- package/dist/types/tidas_sources.js +0 -8
- package/dist/types/tidas_sources.js.map +0 -1
- package/dist/types/tidas_sources_category.d.ts +0 -35
- package/dist/types/tidas_sources_category.d.ts.map +0 -1
- package/dist/types/tidas_sources_category.js +0 -8
- package/dist/types/tidas_sources_category.js.map +0 -1
- package/dist/types/tidas_unitgroups.d.ts +0 -85
- package/dist/types/tidas_unitgroups.d.ts.map +0 -1
- package/dist/types/tidas_unitgroups.js +0 -8
- package/dist/types/tidas_unitgroups.js.map +0 -1
- package/dist/types/tidas_unitgroups_category.d.ts +0 -23
- package/dist/types/tidas_unitgroups_category.d.ts.map +0 -1
- package/dist/types/tidas_unitgroups_category.js +0 -8
- package/dist/types/tidas_unitgroups_category.js.map +0 -1
- package/dist/utils/diff.d.ts +0 -47
- package/dist/utils/diff.d.ts.map +0 -1
- package/dist/utils/diff.js +0 -263
- package/dist/utils/diff.js.map +0 -1
- package/dist/utils/index.d.ts +0 -7
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -31
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/object-utils.d.ts +0 -47
- package/dist/utils/object-utils.d.ts.map +0 -1
- package/dist/utils/object-utils.js +0 -332
- package/dist/utils/object-utils.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tiangong-lca/tidas-sdk",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.20",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -44,9 +44,12 @@
|
|
|
44
44
|
"format": "prettier --write .",
|
|
45
45
|
"format:check": "prettier --check .",
|
|
46
46
|
"typecheck": "tsc --noEmit",
|
|
47
|
-
"test": "jest",
|
|
47
|
+
"test": "jest --passWithNoTests",
|
|
48
48
|
"test:watch": "jest --watch",
|
|
49
|
-
"test:coverage": "jest --coverage"
|
|
49
|
+
"test:coverage": "jest --coverage",
|
|
50
|
+
"release:patch": "npm version patch && npm publish --access public && git push origin main --tags",
|
|
51
|
+
"release:minor": "npm version minor && npm publish --access public && git push origin main --tags",
|
|
52
|
+
"release:major": "npm version major && npm publish --access public && git push origin main --tags"
|
|
50
53
|
},
|
|
51
54
|
"keywords": [
|
|
52
55
|
"tidas",
|
|
@@ -70,8 +73,8 @@
|
|
|
70
73
|
"jest": "^30.0.4",
|
|
71
74
|
"prettier": "^3.6.2",
|
|
72
75
|
"ts-jest": "^29.4.0",
|
|
76
|
+
"tsx": "^4.7.0",
|
|
73
77
|
"ts-node": "^10.9.2",
|
|
74
|
-
"tsx": "^4.20.6",
|
|
75
78
|
"typescript": "^5.8.3",
|
|
76
79
|
"typescript-eslint": "^8.36.0"
|
|
77
80
|
},
|
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { ValidationConfig, EnhancedValidationResult, ValidationMode } from '../config/ValidationConfig';
|
|
3
|
-
import type { ModelConfig } from '../copilot/ai';
|
|
4
|
-
/**
|
|
5
|
-
* Legacy validation result type (maintained for backward compatibility)
|
|
6
|
-
*/
|
|
7
|
-
export type ValidationResult<T> = {
|
|
8
|
-
success: true;
|
|
9
|
-
data: T;
|
|
10
|
-
} | {
|
|
11
|
-
success: false;
|
|
12
|
-
error: z.ZodError;
|
|
13
|
-
};
|
|
14
|
-
/**
|
|
15
|
-
* Result type for suggest operation with diff output
|
|
16
|
-
*/
|
|
17
|
-
export interface SuggestResult<T extends TidasEntity> {
|
|
18
|
-
data: T;
|
|
19
|
-
diffSummary?: string;
|
|
20
|
-
diffHTML?: string;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Abstract base class for all TIDAS entities
|
|
24
|
-
* Provides basic validation and data container functionality without property mapping
|
|
25
|
-
*/
|
|
26
|
-
export declare abstract class TidasEntity<T = any> {
|
|
27
|
-
protected _schema: z.ZodSchema<T>;
|
|
28
|
-
protected _data: Partial<T>;
|
|
29
|
-
protected _proxy: any;
|
|
30
|
-
protected _validationConfig: ValidationConfig;
|
|
31
|
-
constructor(schema: z.ZodSchema<T>, initialData?: Partial<T>, validationConfig?: Partial<ValidationConfig>);
|
|
32
|
-
/**
|
|
33
|
-
* Abstract method to be implemented by subclasses
|
|
34
|
-
* Initializes default values and ensures required structure
|
|
35
|
-
*/
|
|
36
|
-
protected abstract initializeDefaults(): void;
|
|
37
|
-
/**
|
|
38
|
-
* Creates a basic proxy that provides direct data access
|
|
39
|
-
*/
|
|
40
|
-
private createBasicProxy;
|
|
41
|
-
/**
|
|
42
|
-
* Helper: 判断是否为多语言字段(数组或单对象)
|
|
43
|
-
*/
|
|
44
|
-
private static isMultiLang;
|
|
45
|
-
/**
|
|
46
|
-
* Helper: 包装多语言字段,返回class实例
|
|
47
|
-
*/
|
|
48
|
-
private static wrapMultiLang;
|
|
49
|
-
/**
|
|
50
|
-
* Get nested value using dot notation path
|
|
51
|
-
*/
|
|
52
|
-
protected getNestedValue(path: string): any;
|
|
53
|
-
/**
|
|
54
|
-
* Get value using dot notation path
|
|
55
|
-
*/
|
|
56
|
-
getValue(path: string): any;
|
|
57
|
-
/**
|
|
58
|
-
* Set nested value using dot notation path
|
|
59
|
-
*/
|
|
60
|
-
protected setNestedValue(path: string, value: any): void;
|
|
61
|
-
/**
|
|
62
|
-
* Resolve a nested path in an object
|
|
63
|
-
*/
|
|
64
|
-
private resolvePath;
|
|
65
|
-
/**
|
|
66
|
-
* Set a nested path in an object
|
|
67
|
-
*/
|
|
68
|
-
private setPath;
|
|
69
|
-
/**
|
|
70
|
-
* Ensure nested structure exists
|
|
71
|
-
*/
|
|
72
|
-
protected ensureNestedStructure(paths: string[]): void;
|
|
73
|
-
/**
|
|
74
|
-
* Get current validation configuration
|
|
75
|
-
*/
|
|
76
|
-
getValidationConfig(): ValidationConfig;
|
|
77
|
-
/**
|
|
78
|
-
* Set validation mode
|
|
79
|
-
*/
|
|
80
|
-
setValidationMode(mode: ValidationMode): void;
|
|
81
|
-
/**
|
|
82
|
-
* Set validation configuration
|
|
83
|
-
*/
|
|
84
|
-
setValidationConfig(config: Partial<ValidationConfig>): void;
|
|
85
|
-
/**
|
|
86
|
-
* Enhanced validation with configurable modes
|
|
87
|
-
*/
|
|
88
|
-
validateEnhanced(): EnhancedValidationResult<T>;
|
|
89
|
-
/**
|
|
90
|
-
* Legacy validation method (maintained for backward compatibility)
|
|
91
|
-
* Uses current validation configuration but returns legacy result format
|
|
92
|
-
*/
|
|
93
|
-
validate(): ValidationResult<T>;
|
|
94
|
-
/**
|
|
95
|
-
* Convert to JSON (complete TIDAS structure)
|
|
96
|
-
* Ensures clean JSON output without non-serializable objects
|
|
97
|
-
*/
|
|
98
|
-
toJSON(): T;
|
|
99
|
-
/**
|
|
100
|
-
* Convert to JSON string
|
|
101
|
-
* Returns a properly formatted JSON string
|
|
102
|
-
*/
|
|
103
|
-
toJSONString(indent?: number): string;
|
|
104
|
-
/**
|
|
105
|
-
* Clean data for JSON serialization
|
|
106
|
-
* Removes undefined values, functions, empty objects, and ensures proper structure
|
|
107
|
-
*/
|
|
108
|
-
private cleanForJSON;
|
|
109
|
-
/**
|
|
110
|
-
* Get raw data access
|
|
111
|
-
*/
|
|
112
|
-
get rawData(): Partial<T>;
|
|
113
|
-
/**
|
|
114
|
-
* Clone the entity
|
|
115
|
-
*/
|
|
116
|
-
clone(): this;
|
|
117
|
-
/**
|
|
118
|
-
* Get the methodology type based on the entity class name
|
|
119
|
-
* Maps entity class names to their corresponding methodology types
|
|
120
|
-
*/
|
|
121
|
-
protected getMethodologyType(): string;
|
|
122
|
-
/**
|
|
123
|
-
* Suggest improvements for the entire entity using AI-powered methodology rules
|
|
124
|
-
*
|
|
125
|
-
* This method applies all applicable TIDAS methodology rules to improve the data quality
|
|
126
|
-
* and compliance. It always returns a unified result structure containing the improved entity
|
|
127
|
-
* and optional diff outputs.
|
|
128
|
-
*
|
|
129
|
-
* @param options - Optional configuration for the suggestion process
|
|
130
|
-
* @param options.skipPaths - Array of dot-notation paths to skip during improvement
|
|
131
|
-
* @param options.maxRetries - Maximum number of retries per rule (default: 1)
|
|
132
|
-
* @param options.modelConfig - Optional AI model configuration
|
|
133
|
-
* @param options.outputDiffSummary - Whether to output a text diff summary (default: false)
|
|
134
|
-
* @param options.outputDiffHTML - Whether to output an HTML diff visualization (default: false)
|
|
135
|
-
* @param options.diffPaths - Specific paths to focus on in diff summary (optional)
|
|
136
|
-
* @returns Promise<SuggestResult<this>> - Result object with improved entity and optional diffs
|
|
137
|
-
*
|
|
138
|
-
* @example
|
|
139
|
-
* ```typescript
|
|
140
|
-
* // Basic usage
|
|
141
|
-
* const process = createProcess({ ... });
|
|
142
|
-
* const result = await process.suggestEntireObject();
|
|
143
|
-
* const improvedProcess = result.data;
|
|
144
|
-
*
|
|
145
|
-
* // With diff outputs
|
|
146
|
-
* const result = await process.suggestEntireObject({
|
|
147
|
-
* skipPaths: ['processDataSet.administrativeInformation'],
|
|
148
|
-
* maxRetries: 2,
|
|
149
|
-
* outputDiffSummary: true,
|
|
150
|
-
* outputDiffHTML: true
|
|
151
|
-
* });
|
|
152
|
-
* console.log(result.data); // The improved entity
|
|
153
|
-
* console.log(result.diffSummary); // Text diff summary
|
|
154
|
-
* console.log(result.diffHTML); // HTML diff viewer code
|
|
155
|
-
* ```
|
|
156
|
-
*/
|
|
157
|
-
suggestEntireObject(options?: {
|
|
158
|
-
skipPaths?: string[];
|
|
159
|
-
maxRetries?: number;
|
|
160
|
-
modelConfig?: ModelConfig;
|
|
161
|
-
outputDiffSummary?: boolean;
|
|
162
|
-
outputDiffHTML?: boolean;
|
|
163
|
-
diffPaths?: string[];
|
|
164
|
-
}): Promise<SuggestResult<this>>;
|
|
165
|
-
/**
|
|
166
|
-
* Alias for suggestEntireObject for shorter syntax
|
|
167
|
-
*
|
|
168
|
-
* @example
|
|
169
|
-
* ```typescript
|
|
170
|
-
* const result = await process.suggest();
|
|
171
|
-
* const improvedProcess = result.data;
|
|
172
|
-
*
|
|
173
|
-
* // With diff outputs
|
|
174
|
-
* const result = await process.suggest({
|
|
175
|
-
* outputDiffHTML: true
|
|
176
|
-
* });
|
|
177
|
-
* console.log(result.data); // The improved entity
|
|
178
|
-
* console.log(result.diffHTML); // HTML diff viewer code
|
|
179
|
-
* ```
|
|
180
|
-
*/
|
|
181
|
-
suggest(options?: {
|
|
182
|
-
skipPaths?: string[];
|
|
183
|
-
maxRetries?: number;
|
|
184
|
-
modelConfig?: ModelConfig;
|
|
185
|
-
outputDiffSummary?: boolean;
|
|
186
|
-
outputDiffHTML?: boolean;
|
|
187
|
-
diffPaths?: string[];
|
|
188
|
-
}): Promise<SuggestResult<this>>;
|
|
189
|
-
}
|
|
190
|
-
//# sourceMappingURL=TidasEntity.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TidasEntity.d.ts","sourceRoot":"","sources":["../../../src/core/base/TidasEntity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,433 +0,0 @@
|
|
|
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
|
-
const multi_lang_types_1 = require("../../types/multi-lang-types");
|
|
7
|
-
const ai_1 = require("../copilot/ai");
|
|
8
|
-
const diff_1 = require("../../utils/diff");
|
|
9
|
-
/**
|
|
10
|
-
* Abstract base class for all TIDAS entities
|
|
11
|
-
* Provides basic validation and data container functionality without property mapping
|
|
12
|
-
*/
|
|
13
|
-
class TidasEntity {
|
|
14
|
-
constructor(schema, initialData, validationConfig) {
|
|
15
|
-
this._data = {};
|
|
16
|
-
this._schema = schema;
|
|
17
|
-
this._data = initialData || {};
|
|
18
|
-
this._validationConfig = {
|
|
19
|
-
...GlobalConfig_1.globalConfig.getDefaultValidationConfig(),
|
|
20
|
-
...validationConfig,
|
|
21
|
-
};
|
|
22
|
-
this._proxy = this.createBasicProxy();
|
|
23
|
-
this.initializeDefaults();
|
|
24
|
-
return this._proxy;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Creates a basic proxy that provides direct data access
|
|
28
|
-
*/
|
|
29
|
-
createBasicProxy() {
|
|
30
|
-
return new Proxy(this, {
|
|
31
|
-
get(target, prop) {
|
|
32
|
-
if (typeof prop === 'symbol') {
|
|
33
|
-
return target[prop];
|
|
34
|
-
}
|
|
35
|
-
// 1. Method calls - return bound methods
|
|
36
|
-
if (typeof target[prop] === 'function') {
|
|
37
|
-
return target[prop].bind(target);
|
|
38
|
-
}
|
|
39
|
-
// 2. Direct data access
|
|
40
|
-
if (prop in target._data) {
|
|
41
|
-
let value = target._data[prop];
|
|
42
|
-
if (TidasEntity.isMultiLang(value)) {
|
|
43
|
-
value = TidasEntity.wrapMultiLang(value);
|
|
44
|
-
// 懒包装:回写,保证下次访问直接是class实例
|
|
45
|
-
target._data[prop] = value;
|
|
46
|
-
}
|
|
47
|
-
return value;
|
|
48
|
-
}
|
|
49
|
-
// 3. Dynamic path access (supports dot notation)
|
|
50
|
-
if (typeof prop === 'string' &&
|
|
51
|
-
(prop.includes('.') || prop.includes('['))) {
|
|
52
|
-
let value = target.getNestedValue(prop);
|
|
53
|
-
if (TidasEntity.isMultiLang(value)) {
|
|
54
|
-
value = TidasEntity.wrapMultiLang(value);
|
|
55
|
-
// 懒包装:回写
|
|
56
|
-
target.setNestedValue(prop, value);
|
|
57
|
-
}
|
|
58
|
-
return value;
|
|
59
|
-
}
|
|
60
|
-
// 4. Other properties
|
|
61
|
-
return target[prop];
|
|
62
|
-
},
|
|
63
|
-
set(target, prop, value) {
|
|
64
|
-
if (typeof prop === 'symbol') {
|
|
65
|
-
target[prop] = value;
|
|
66
|
-
return true;
|
|
67
|
-
}
|
|
68
|
-
// 1. Dynamic path setting (supports dot notation)
|
|
69
|
-
if (prop.includes('.') || prop.includes('[')) {
|
|
70
|
-
// 懒包装:如果是多语言字段,wrap
|
|
71
|
-
if (TidasEntity.isMultiLang(value)) {
|
|
72
|
-
value = TidasEntity.wrapMultiLang(value);
|
|
73
|
-
}
|
|
74
|
-
target.setNestedValue(prop, value);
|
|
75
|
-
return true;
|
|
76
|
-
}
|
|
77
|
-
// 2. Top-level property setting
|
|
78
|
-
if (TidasEntity.isMultiLang(value)) {
|
|
79
|
-
value = TidasEntity.wrapMultiLang(value);
|
|
80
|
-
}
|
|
81
|
-
target._data[prop] = value;
|
|
82
|
-
return true;
|
|
83
|
-
},
|
|
84
|
-
has(target, prop) {
|
|
85
|
-
return prop in target._data || prop in target;
|
|
86
|
-
},
|
|
87
|
-
ownKeys(target) {
|
|
88
|
-
return [
|
|
89
|
-
...Object.keys(target._data),
|
|
90
|
-
...Object.getOwnPropertyNames(target),
|
|
91
|
-
];
|
|
92
|
-
},
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Helper: 判断是否为多语言字段(数组或单对象)
|
|
97
|
-
*/
|
|
98
|
-
static isMultiLang(val) {
|
|
99
|
-
return ((Array.isArray(val) &&
|
|
100
|
-
val.length > 0 &&
|
|
101
|
-
typeof val[0] === 'object' &&
|
|
102
|
-
val[0] !== null &&
|
|
103
|
-
'@xml:lang' in val[0] &&
|
|
104
|
-
'#text' in val[0]) ||
|
|
105
|
-
(val &&
|
|
106
|
-
typeof val === 'object' &&
|
|
107
|
-
!Array.isArray(val) &&
|
|
108
|
-
'@xml:lang' in val &&
|
|
109
|
-
'#text' in val));
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Helper: 包装多语言字段,返回class实例
|
|
113
|
-
*/
|
|
114
|
-
static wrapMultiLang(val) {
|
|
115
|
-
if (val instanceof multi_lang_types_1.MultiLangArray || val instanceof multi_lang_types_1.MultiLangItemClass) {
|
|
116
|
-
return val;
|
|
117
|
-
}
|
|
118
|
-
if (Array.isArray(val)) {
|
|
119
|
-
const arr = new multi_lang_types_1.MultiLangArray();
|
|
120
|
-
for (const item of val) {
|
|
121
|
-
arr.push(item instanceof multi_lang_types_1.MultiLangItemClass
|
|
122
|
-
? item
|
|
123
|
-
: new multi_lang_types_1.MultiLangItemClass(item['@xml:lang'], item['#text']));
|
|
124
|
-
}
|
|
125
|
-
return arr;
|
|
126
|
-
}
|
|
127
|
-
else if (val &&
|
|
128
|
-
typeof val === 'object' &&
|
|
129
|
-
'@xml:lang' in val &&
|
|
130
|
-
'#text' in val) {
|
|
131
|
-
return new multi_lang_types_1.MultiLangItemClass(val['@xml:lang'], val['#text']);
|
|
132
|
-
}
|
|
133
|
-
return val;
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Get nested value using dot notation path
|
|
137
|
-
*/
|
|
138
|
-
getNestedValue(path) {
|
|
139
|
-
const value = this.resolvePath(this._data, path);
|
|
140
|
-
if (TidasEntity.isMultiLang(value)) {
|
|
141
|
-
return TidasEntity.wrapMultiLang(value);
|
|
142
|
-
}
|
|
143
|
-
return value;
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Get value using dot notation path
|
|
147
|
-
*/
|
|
148
|
-
getValue(path) {
|
|
149
|
-
return this.getNestedValue(path);
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Set nested value using dot notation path
|
|
153
|
-
*/
|
|
154
|
-
setNestedValue(path, value) {
|
|
155
|
-
this.setPath(this._data, path, value);
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Resolve a nested path in an object
|
|
159
|
-
*/
|
|
160
|
-
resolvePath(obj, path) {
|
|
161
|
-
return path.split('.').reduce((current, key) => {
|
|
162
|
-
if (key.includes('[') && key.includes(']')) {
|
|
163
|
-
const [arrayKey, indexStr] = key.split('[');
|
|
164
|
-
const index = parseInt(indexStr.replace(']', ''));
|
|
165
|
-
return current?.[arrayKey]?.[index];
|
|
166
|
-
}
|
|
167
|
-
return current?.[key];
|
|
168
|
-
}, obj);
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Set a nested path in an object
|
|
172
|
-
*/
|
|
173
|
-
setPath(obj, path, value) {
|
|
174
|
-
const keys = path.split('.');
|
|
175
|
-
const lastKey = keys.pop();
|
|
176
|
-
const target = keys.reduce((current, key) => {
|
|
177
|
-
if (key.includes('[') && key.includes(']')) {
|
|
178
|
-
const [arrayKey, indexStr] = key.split('[');
|
|
179
|
-
const index = parseInt(indexStr.replace(']', ''));
|
|
180
|
-
if (!current[arrayKey])
|
|
181
|
-
current[arrayKey] = [];
|
|
182
|
-
if (!current[arrayKey][index])
|
|
183
|
-
current[arrayKey][index] = {};
|
|
184
|
-
return current[arrayKey][index];
|
|
185
|
-
}
|
|
186
|
-
if (!current[key])
|
|
187
|
-
current[key] = {};
|
|
188
|
-
return current[key];
|
|
189
|
-
}, obj);
|
|
190
|
-
if (lastKey.includes('[') && lastKey.includes(']')) {
|
|
191
|
-
const [arrayKey, indexStr] = lastKey.split('[');
|
|
192
|
-
const index = parseInt(indexStr.replace(']', ''));
|
|
193
|
-
if (!target[arrayKey])
|
|
194
|
-
target[arrayKey] = [];
|
|
195
|
-
target[arrayKey][index] = value;
|
|
196
|
-
}
|
|
197
|
-
else {
|
|
198
|
-
target[lastKey] = value;
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* Ensure nested structure exists
|
|
203
|
-
*/
|
|
204
|
-
ensureNestedStructure(paths) {
|
|
205
|
-
paths.forEach((path) => {
|
|
206
|
-
if (!this.getNestedValue(path)) {
|
|
207
|
-
this.setNestedValue(path, {});
|
|
208
|
-
}
|
|
209
|
-
});
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Get current validation configuration
|
|
213
|
-
*/
|
|
214
|
-
getValidationConfig() {
|
|
215
|
-
return { ...this._validationConfig };
|
|
216
|
-
}
|
|
217
|
-
/**
|
|
218
|
-
* Set validation mode
|
|
219
|
-
*/
|
|
220
|
-
setValidationMode(mode) {
|
|
221
|
-
this._validationConfig.mode = mode;
|
|
222
|
-
}
|
|
223
|
-
/**
|
|
224
|
-
* Set validation configuration
|
|
225
|
-
*/
|
|
226
|
-
setValidationConfig(config) {
|
|
227
|
-
this._validationConfig = {
|
|
228
|
-
...this._validationConfig,
|
|
229
|
-
...config,
|
|
230
|
-
};
|
|
231
|
-
}
|
|
232
|
-
/**
|
|
233
|
-
* Enhanced validation with configurable modes
|
|
234
|
-
*/
|
|
235
|
-
validateEnhanced() {
|
|
236
|
-
return ValidationConfig_1.ValidationUtils.performValidation(this._schema, this._data, this._validationConfig);
|
|
237
|
-
}
|
|
238
|
-
/**
|
|
239
|
-
* Legacy validation method (maintained for backward compatibility)
|
|
240
|
-
* Uses current validation configuration but returns legacy result format
|
|
241
|
-
*/
|
|
242
|
-
validate() {
|
|
243
|
-
const enhancedResult = this.validateEnhanced();
|
|
244
|
-
if (enhancedResult.success) {
|
|
245
|
-
return {
|
|
246
|
-
success: true,
|
|
247
|
-
data: enhancedResult.data,
|
|
248
|
-
};
|
|
249
|
-
}
|
|
250
|
-
else {
|
|
251
|
-
return {
|
|
252
|
-
success: false,
|
|
253
|
-
error: enhancedResult.error,
|
|
254
|
-
};
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
/**
|
|
258
|
-
* Convert to JSON (complete TIDAS structure)
|
|
259
|
-
* Ensures clean JSON output without non-serializable objects
|
|
260
|
-
*/
|
|
261
|
-
toJSON() {
|
|
262
|
-
return this.cleanForJSON(this._data);
|
|
263
|
-
}
|
|
264
|
-
/**
|
|
265
|
-
* Convert to JSON string
|
|
266
|
-
* Returns a properly formatted JSON string
|
|
267
|
-
*/
|
|
268
|
-
toJSONString(indent) {
|
|
269
|
-
const cleanData = this.cleanForJSON(this._data);
|
|
270
|
-
return JSON.stringify(cleanData, null, indent);
|
|
271
|
-
}
|
|
272
|
-
/**
|
|
273
|
-
* Clean data for JSON serialization
|
|
274
|
-
* Removes undefined values, functions, empty objects, and ensures proper structure
|
|
275
|
-
*/
|
|
276
|
-
cleanForJSON(obj) {
|
|
277
|
-
if (obj === null || obj === undefined) {
|
|
278
|
-
return null;
|
|
279
|
-
}
|
|
280
|
-
if (typeof obj === 'function') {
|
|
281
|
-
return undefined;
|
|
282
|
-
}
|
|
283
|
-
if (Array.isArray(obj)) {
|
|
284
|
-
return obj
|
|
285
|
-
.map((item) => this.cleanForJSON(item))
|
|
286
|
-
.filter((item) => item !== undefined && item !== null);
|
|
287
|
-
}
|
|
288
|
-
if (typeof obj === 'object') {
|
|
289
|
-
const cleaned = {};
|
|
290
|
-
for (const [key, value] of Object.entries(obj)) {
|
|
291
|
-
const cleanedValue = this.cleanForJSON(value);
|
|
292
|
-
if (cleanedValue !== undefined && cleanedValue !== null) {
|
|
293
|
-
cleaned[key] = cleanedValue;
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
if (cleaned instanceof Object) {
|
|
297
|
-
return Object.keys(cleaned).length > 0 ? cleaned : undefined;
|
|
298
|
-
}
|
|
299
|
-
return cleaned;
|
|
300
|
-
}
|
|
301
|
-
// Primitive values
|
|
302
|
-
return obj;
|
|
303
|
-
}
|
|
304
|
-
/**
|
|
305
|
-
* Get raw data access
|
|
306
|
-
*/
|
|
307
|
-
get rawData() {
|
|
308
|
-
return this._data;
|
|
309
|
-
}
|
|
310
|
-
/**
|
|
311
|
-
* Clone the entity
|
|
312
|
-
*/
|
|
313
|
-
clone() {
|
|
314
|
-
const Constructor = this.constructor;
|
|
315
|
-
return new Constructor(structuredClone(this._data), this._validationConfig);
|
|
316
|
-
}
|
|
317
|
-
/**
|
|
318
|
-
* Get the methodology type based on the entity class name
|
|
319
|
-
* Maps entity class names to their corresponding methodology types
|
|
320
|
-
*/
|
|
321
|
-
getMethodologyType() {
|
|
322
|
-
const className = this.constructor.name;
|
|
323
|
-
const methodologyMapping = {
|
|
324
|
-
TidasProcess: 'processes',
|
|
325
|
-
TidasFlow: 'flows',
|
|
326
|
-
TidasContact: 'contacts',
|
|
327
|
-
TidasSource: 'sources',
|
|
328
|
-
TidasFlowProperty: 'flowproperties',
|
|
329
|
-
TidasUnitGroup: 'unitgroups',
|
|
330
|
-
TidasLCIAMethod: 'lciamethods',
|
|
331
|
-
TidasLifeCycleModel: 'lifecyclemodels',
|
|
332
|
-
};
|
|
333
|
-
const methodologyType = methodologyMapping[className];
|
|
334
|
-
if (!methodologyType) {
|
|
335
|
-
throw new Error(`Unknown entity type: ${className}. Cannot determine methodology type.`);
|
|
336
|
-
}
|
|
337
|
-
return methodologyType;
|
|
338
|
-
}
|
|
339
|
-
/**
|
|
340
|
-
* Suggest improvements for the entire entity using AI-powered methodology rules
|
|
341
|
-
*
|
|
342
|
-
* This method applies all applicable TIDAS methodology rules to improve the data quality
|
|
343
|
-
* and compliance. It always returns a unified result structure containing the improved entity
|
|
344
|
-
* and optional diff outputs.
|
|
345
|
-
*
|
|
346
|
-
* @param options - Optional configuration for the suggestion process
|
|
347
|
-
* @param options.skipPaths - Array of dot-notation paths to skip during improvement
|
|
348
|
-
* @param options.maxRetries - Maximum number of retries per rule (default: 1)
|
|
349
|
-
* @param options.modelConfig - Optional AI model configuration
|
|
350
|
-
* @param options.outputDiffSummary - Whether to output a text diff summary (default: false)
|
|
351
|
-
* @param options.outputDiffHTML - Whether to output an HTML diff visualization (default: false)
|
|
352
|
-
* @param options.diffPaths - Specific paths to focus on in diff summary (optional)
|
|
353
|
-
* @returns Promise<SuggestResult<this>> - Result object with improved entity and optional diffs
|
|
354
|
-
*
|
|
355
|
-
* @example
|
|
356
|
-
* ```typescript
|
|
357
|
-
* // Basic usage
|
|
358
|
-
* const process = createProcess({ ... });
|
|
359
|
-
* const result = await process.suggestEntireObject();
|
|
360
|
-
* const improvedProcess = result.data;
|
|
361
|
-
*
|
|
362
|
-
* // With diff outputs
|
|
363
|
-
* const result = await process.suggestEntireObject({
|
|
364
|
-
* skipPaths: ['processDataSet.administrativeInformation'],
|
|
365
|
-
* maxRetries: 2,
|
|
366
|
-
* outputDiffSummary: true,
|
|
367
|
-
* outputDiffHTML: true
|
|
368
|
-
* });
|
|
369
|
-
* console.log(result.data); // The improved entity
|
|
370
|
-
* console.log(result.diffSummary); // Text diff summary
|
|
371
|
-
* console.log(result.diffHTML); // HTML diff viewer code
|
|
372
|
-
* ```
|
|
373
|
-
*/
|
|
374
|
-
async suggestEntireObject(options) {
|
|
375
|
-
try {
|
|
376
|
-
// Get the methodology type for this entity
|
|
377
|
-
const methodologyType = this.getMethodologyType();
|
|
378
|
-
console.log(`Starting AI improvement for ${this.constructor.name}...`);
|
|
379
|
-
// Store original data for diff if needed
|
|
380
|
-
const originalData = options?.outputDiffSummary || options?.outputDiffHTML
|
|
381
|
-
? this.toJSON()
|
|
382
|
-
: null;
|
|
383
|
-
// Apply suggestions to the current data
|
|
384
|
-
const improvedData = await (0, ai_1.suggestEntireObject)(this._data, methodologyType, {
|
|
385
|
-
skipPaths: options?.skipPaths,
|
|
386
|
-
maxRetries: options?.maxRetries,
|
|
387
|
-
});
|
|
388
|
-
// Create a new instance of the same type with improved data
|
|
389
|
-
const Constructor = this.constructor;
|
|
390
|
-
const improvedEntity = new Constructor(improvedData, this._validationConfig);
|
|
391
|
-
console.log(`✓ Successfully improved ${this.constructor.name}`);
|
|
392
|
-
// Create unified result structure
|
|
393
|
-
const result = {
|
|
394
|
-
data: improvedEntity,
|
|
395
|
-
};
|
|
396
|
-
// Generate diff outputs if requested
|
|
397
|
-
if (options?.outputDiffSummary && originalData) {
|
|
398
|
-
result.diffSummary = (0, diff_1.generateDiffSummary)(originalData, improvedEntity.toJSON(), options.diffPaths);
|
|
399
|
-
console.log('✓ Generated diff summary');
|
|
400
|
-
}
|
|
401
|
-
if (options?.outputDiffHTML && originalData) {
|
|
402
|
-
result.diffHTML = (0, diff_1.generateDiffHTML)(originalData, improvedEntity.toJSON());
|
|
403
|
-
console.log('✓ Generated diff HTML');
|
|
404
|
-
}
|
|
405
|
-
return result;
|
|
406
|
-
}
|
|
407
|
-
catch (error) {
|
|
408
|
-
console.error(`Failed to suggest improvements: ${error.message}`);
|
|
409
|
-
throw error;
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
/**
|
|
413
|
-
* Alias for suggestEntireObject for shorter syntax
|
|
414
|
-
*
|
|
415
|
-
* @example
|
|
416
|
-
* ```typescript
|
|
417
|
-
* const result = await process.suggest();
|
|
418
|
-
* const improvedProcess = result.data;
|
|
419
|
-
*
|
|
420
|
-
* // With diff outputs
|
|
421
|
-
* const result = await process.suggest({
|
|
422
|
-
* outputDiffHTML: true
|
|
423
|
-
* });
|
|
424
|
-
* console.log(result.data); // The improved entity
|
|
425
|
-
* console.log(result.diffHTML); // HTML diff viewer code
|
|
426
|
-
* ```
|
|
427
|
-
*/
|
|
428
|
-
async suggest(options) {
|
|
429
|
-
return this.suggestEntireObject(options);
|
|
430
|
-
}
|
|
431
|
-
}
|
|
432
|
-
exports.TidasEntity = TidasEntity;
|
|
433
|
-
//# sourceMappingURL=TidasEntity.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TidasEntity.js","sourceRoot":"","sources":["../../../src/core/base/TidasEntity.ts"],"names":[],"mappings":"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"}
|