@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.
Files changed (254) hide show
  1. package/package.json +7 -4
  2. package/dist/core/base/TidasEntity.d.ts +0 -190
  3. package/dist/core/base/TidasEntity.d.ts.map +0 -1
  4. package/dist/core/base/TidasEntity.js +0 -433
  5. package/dist/core/base/TidasEntity.js.map +0 -1
  6. package/dist/core/config/GlobalConfig.d.ts +0 -60
  7. package/dist/core/config/GlobalConfig.d.ts.map +0 -1
  8. package/dist/core/config/GlobalConfig.js +0 -110
  9. package/dist/core/config/GlobalConfig.js.map +0 -1
  10. package/dist/core/config/ValidationConfig.d.ts +0 -70
  11. package/dist/core/config/ValidationConfig.d.ts.map +0 -1
  12. package/dist/core/config/ValidationConfig.js +0 -157
  13. package/dist/core/config/ValidationConfig.js.map +0 -1
  14. package/dist/core/copilot/ai.d.ts +0 -150
  15. package/dist/core/copilot/ai.d.ts.map +0 -1
  16. package/dist/core/copilot/ai.js +0 -581
  17. package/dist/core/copilot/ai.js.map +0 -1
  18. package/dist/core/copilot/base.d.ts +0 -83
  19. package/dist/core/copilot/base.d.ts.map +0 -1
  20. package/dist/core/copilot/base.js +0 -193
  21. package/dist/core/copilot/base.js.map +0 -1
  22. package/dist/core/copilot/index.d.ts +0 -1
  23. package/dist/core/copilot/index.d.ts.map +0 -1
  24. package/dist/core/copilot/index.js +0 -2
  25. package/dist/core/copilot/index.js.map +0 -1
  26. package/dist/core/entities/TidasContact.d.ts +0 -14
  27. package/dist/core/entities/TidasContact.d.ts.map +0 -1
  28. package/dist/core/entities/TidasContact.js +0 -124
  29. package/dist/core/entities/TidasContact.js.map +0 -1
  30. package/dist/core/entities/TidasFlow.d.ts +0 -14
  31. package/dist/core/entities/TidasFlow.d.ts.map +0 -1
  32. package/dist/core/entities/TidasFlow.js +0 -143
  33. package/dist/core/entities/TidasFlow.js.map +0 -1
  34. package/dist/core/entities/TidasFlowProperty.d.ts +0 -14
  35. package/dist/core/entities/TidasFlowProperty.d.ts.map +0 -1
  36. package/dist/core/entities/TidasFlowProperty.js +0 -156
  37. package/dist/core/entities/TidasFlowProperty.js.map +0 -1
  38. package/dist/core/entities/TidasLCIAMethod.d.ts +0 -14
  39. package/dist/core/entities/TidasLCIAMethod.d.ts.map +0 -1
  40. package/dist/core/entities/TidasLCIAMethod.js +0 -177
  41. package/dist/core/entities/TidasLCIAMethod.js.map +0 -1
  42. package/dist/core/entities/TidasLifeCycleModel.d.ts +0 -14
  43. package/dist/core/entities/TidasLifeCycleModel.d.ts.map +0 -1
  44. package/dist/core/entities/TidasLifeCycleModel.js +0 -169
  45. package/dist/core/entities/TidasLifeCycleModel.js.map +0 -1
  46. package/dist/core/entities/TidasProcess.d.ts +0 -14
  47. package/dist/core/entities/TidasProcess.d.ts.map +0 -1
  48. package/dist/core/entities/TidasProcess.js +0 -191
  49. package/dist/core/entities/TidasProcess.js.map +0 -1
  50. package/dist/core/entities/TidasSource.d.ts +0 -14
  51. package/dist/core/entities/TidasSource.d.ts.map +0 -1
  52. package/dist/core/entities/TidasSource.js +0 -146
  53. package/dist/core/entities/TidasSource.js.map +0 -1
  54. package/dist/core/entities/TidasUnitGroup.d.ts +0 -14
  55. package/dist/core/entities/TidasUnitGroup.d.ts.map +0 -1
  56. package/dist/core/entities/TidasUnitGroup.js +0 -177
  57. package/dist/core/entities/TidasUnitGroup.js.map +0 -1
  58. package/dist/core/factories/index.d.ts +0 -46
  59. package/dist/core/factories/index.d.ts.map +0 -1
  60. package/dist/core/factories/index.js +0 -223
  61. package/dist/core/factories/index.js.map +0 -1
  62. package/dist/core/index.d.ts +0 -9
  63. package/dist/core/index.d.ts.map +0 -1
  64. package/dist/core/index.js +0 -56
  65. package/dist/core/index.js.map +0 -1
  66. package/dist/core/zod-factories.d.ts +0 -71
  67. package/dist/core/zod-factories.d.ts.map +0 -1
  68. package/dist/core/zod-factories.js +0 -169
  69. package/dist/core/zod-factories.js.map +0 -1
  70. package/dist/core/zod-proxy.d.ts +0 -108
  71. package/dist/core/zod-proxy.d.ts.map +0 -1
  72. package/dist/core/zod-proxy.js +0 -382
  73. package/dist/core/zod-proxy.js.map +0 -1
  74. package/dist/data/bundled-methodologies.json +0 -1259
  75. package/dist/index.d.ts +0 -33
  76. package/dist/index.d.ts.map +0 -1
  77. package/dist/index.js +0 -73
  78. package/dist/index.js.map +0 -1
  79. package/dist/schemas/index.d.ts +0 -48
  80. package/dist/schemas/index.d.ts.map +0 -1
  81. package/dist/schemas/index.js +0 -112
  82. package/dist/schemas/index.js.map +0 -1
  83. package/dist/schemas/tidas_contacts.schema.d.ts +0 -124
  84. package/dist/schemas/tidas_contacts.schema.d.ts.map +0 -1
  85. package/dist/schemas/tidas_contacts.schema.js +0 -75
  86. package/dist/schemas/tidas_contacts.schema.js.map +0 -1
  87. package/dist/schemas/tidas_contacts_category.schema.d.ts +0 -3
  88. package/dist/schemas/tidas_contacts_category.schema.d.ts.map +0 -1
  89. package/dist/schemas/tidas_contacts_category.schema.js +0 -53
  90. package/dist/schemas/tidas_contacts_category.schema.js.map +0 -1
  91. package/dist/schemas/tidas_data_types.schema.d.ts +0 -34
  92. package/dist/schemas/tidas_data_types.schema.d.ts.map +0 -1
  93. package/dist/schemas/tidas_data_types.schema.js +0 -60
  94. package/dist/schemas/tidas_data_types.schema.js.map +0 -1
  95. package/dist/schemas/tidas_flowproperties.schema.d.ts +0 -152
  96. package/dist/schemas/tidas_flowproperties.schema.d.ts.map +0 -1
  97. package/dist/schemas/tidas_flowproperties.schema.js +0 -88
  98. package/dist/schemas/tidas_flowproperties.schema.js.map +0 -1
  99. package/dist/schemas/tidas_flowproperties_category.schema.d.ts +0 -3
  100. package/dist/schemas/tidas_flowproperties_category.schema.d.ts.map +0 -1
  101. package/dist/schemas/tidas_flowproperties_category.schema.js +0 -28
  102. package/dist/schemas/tidas_flowproperties_category.schema.js.map +0 -1
  103. package/dist/schemas/tidas_flows.schema.d.ts +0 -215
  104. package/dist/schemas/tidas_flows.schema.d.ts.map +0 -1
  105. package/dist/schemas/tidas_flows.schema.js +0 -165
  106. package/dist/schemas/tidas_flows.schema.js.map +0 -1
  107. package/dist/schemas/tidas_flows_elementary_category.schema.d.ts +0 -3
  108. package/dist/schemas/tidas_flows_elementary_category.schema.d.ts.map +0 -1
  109. package/dist/schemas/tidas_flows_elementary_category.schema.js +0 -309
  110. package/dist/schemas/tidas_flows_elementary_category.schema.js.map +0 -1
  111. package/dist/schemas/tidas_flows_product_category.schema.d.ts +0 -3
  112. package/dist/schemas/tidas_flows_product_category.schema.d.ts.map +0 -1
  113. package/dist/schemas/tidas_flows_product_category.schema.js +0 -28508
  114. package/dist/schemas/tidas_flows_product_category.schema.js.map +0 -1
  115. package/dist/schemas/tidas_lciamethods.schema.d.ts +0 -546
  116. package/dist/schemas/tidas_lciamethods.schema.d.ts.map +0 -1
  117. package/dist/schemas/tidas_lciamethods.schema.js +0 -513
  118. package/dist/schemas/tidas_lciamethods.schema.js.map +0 -1
  119. package/dist/schemas/tidas_lciamethods_category.schema.d.ts +0 -3
  120. package/dist/schemas/tidas_lciamethods_category.schema.d.ts.map +0 -1
  121. package/dist/schemas/tidas_lciamethods_category.schema.js +0 -278
  122. package/dist/schemas/tidas_lciamethods_category.schema.js.map +0 -1
  123. package/dist/schemas/tidas_lifecyclemodels.schema.d.ts +0 -465
  124. package/dist/schemas/tidas_lifecyclemodels.schema.d.ts.map +0 -1
  125. package/dist/schemas/tidas_lifecyclemodels.schema.js +0 -420
  126. package/dist/schemas/tidas_lifecyclemodels.schema.js.map +0 -1
  127. package/dist/schemas/tidas_locations_category.schema.d.ts +0 -3
  128. package/dist/schemas/tidas_locations_category.schema.d.ts.map +0 -1
  129. package/dist/schemas/tidas_locations_category.schema.js +0 -655
  130. package/dist/schemas/tidas_locations_category.schema.js.map +0 -1
  131. package/dist/schemas/tidas_processes.schema.d.ts +0 -607
  132. package/dist/schemas/tidas_processes.schema.d.ts.map +0 -1
  133. package/dist/schemas/tidas_processes.schema.js +0 -641
  134. package/dist/schemas/tidas_processes.schema.js.map +0 -1
  135. package/dist/schemas/tidas_processes_category.schema.d.ts +0 -3
  136. package/dist/schemas/tidas_processes_category.schema.d.ts.map +0 -1
  137. package/dist/schemas/tidas_processes_category.schema.js +0 -4480
  138. package/dist/schemas/tidas_processes_category.schema.js.map +0 -1
  139. package/dist/schemas/tidas_sources.schema.d.ts +0 -113
  140. package/dist/schemas/tidas_sources.schema.d.ts.map +0 -1
  141. package/dist/schemas/tidas_sources.schema.js +0 -73
  142. package/dist/schemas/tidas_sources.schema.js.map +0 -1
  143. package/dist/schemas/tidas_sources_category.schema.d.ts +0 -3
  144. package/dist/schemas/tidas_sources_category.schema.d.ts.map +0 -1
  145. package/dist/schemas/tidas_sources_category.schema.js +0 -43
  146. package/dist/schemas/tidas_sources_category.schema.js.map +0 -1
  147. package/dist/schemas/tidas_unitgroups.schema.d.ts +0 -140
  148. package/dist/schemas/tidas_unitgroups.schema.d.ts.map +0 -1
  149. package/dist/schemas/tidas_unitgroups.schema.js +0 -103
  150. package/dist/schemas/tidas_unitgroups.schema.js.map +0 -1
  151. package/dist/schemas/tidas_unitgroups_category.schema.d.ts +0 -3
  152. package/dist/schemas/tidas_unitgroups_category.schema.d.ts.map +0 -1
  153. package/dist/schemas/tidas_unitgroups_category.schema.js +0 -28
  154. package/dist/schemas/tidas_unitgroups_category.schema.js.map +0 -1
  155. package/dist/services/copilot-service.d.ts +0 -147
  156. package/dist/services/copilot-service.d.ts.map +0 -1
  157. package/dist/services/copilot-service.js +0 -259
  158. package/dist/services/copilot-service.js.map +0 -1
  159. package/dist/services/index.d.ts +0 -9
  160. package/dist/services/index.d.ts.map +0 -1
  161. package/dist/services/index.js +0 -24
  162. package/dist/services/index.js.map +0 -1
  163. package/dist/types/index.d.ts +0 -22
  164. package/dist/types/index.d.ts.map +0 -1
  165. package/dist/types/index.js +0 -21
  166. package/dist/types/index.js.map +0 -1
  167. package/dist/types/multi-lang-types.d.ts +0 -23
  168. package/dist/types/multi-lang-types.d.ts.map +0 -1
  169. package/dist/types/multi-lang-types.js +0 -40
  170. package/dist/types/multi-lang-types.js.map +0 -1
  171. package/dist/types/tidas_contacts.d.ts +0 -72
  172. package/dist/types/tidas_contacts.d.ts.map +0 -1
  173. package/dist/types/tidas_contacts.js +0 -8
  174. package/dist/types/tidas_contacts.js.map +0 -1
  175. package/dist/types/tidas_contacts_category.d.ts +0 -43
  176. package/dist/types/tidas_contacts_category.d.ts.map +0 -1
  177. package/dist/types/tidas_contacts_category.js +0 -8
  178. package/dist/types/tidas_contacts_category.js.map +0 -1
  179. package/dist/types/tidas_data_types.d.ts +0 -116
  180. package/dist/types/tidas_data_types.d.ts.map +0 -1
  181. package/dist/types/tidas_data_types.js +0 -8
  182. package/dist/types/tidas_data_types.js.map +0 -1
  183. package/dist/types/tidas_flowproperties.d.ts +0 -73
  184. package/dist/types/tidas_flowproperties.d.ts.map +0 -1
  185. package/dist/types/tidas_flowproperties.js +0 -8
  186. package/dist/types/tidas_flowproperties.js.map +0 -1
  187. package/dist/types/tidas_flowproperties_category.d.ts +0 -23
  188. package/dist/types/tidas_flowproperties_category.d.ts.map +0 -1
  189. package/dist/types/tidas_flowproperties_category.js +0 -8
  190. package/dist/types/tidas_flowproperties_category.js.map +0 -1
  191. package/dist/types/tidas_flows.d.ts +0 -113
  192. package/dist/types/tidas_flows.d.ts.map +0 -1
  193. package/dist/types/tidas_flows.js +0 -8
  194. package/dist/types/tidas_flows.js.map +0 -1
  195. package/dist/types/tidas_flows_elementary_category.d.ts +0 -227
  196. package/dist/types/tidas_flows_elementary_category.d.ts.map +0 -1
  197. package/dist/types/tidas_flows_elementary_category.js +0 -8
  198. package/dist/types/tidas_flows_elementary_category.js.map +0 -1
  199. package/dist/types/tidas_flows_product_category.d.ts +0 -18391
  200. package/dist/types/tidas_flows_product_category.d.ts.map +0 -1
  201. package/dist/types/tidas_flows_product_category.js +0 -8
  202. package/dist/types/tidas_flows_product_category.js.map +0 -1
  203. package/dist/types/tidas_lciamethods.d.ts +0 -231
  204. package/dist/types/tidas_lciamethods.d.ts.map +0 -1
  205. package/dist/types/tidas_lciamethods.js +0 -8
  206. package/dist/types/tidas_lciamethods.js.map +0 -1
  207. package/dist/types/tidas_lciamethods_category.d.ts +0 -215
  208. package/dist/types/tidas_lciamethods_category.d.ts.map +0 -1
  209. package/dist/types/tidas_lciamethods_category.js +0 -8
  210. package/dist/types/tidas_lciamethods_category.js.map +0 -1
  211. package/dist/types/tidas_lifecyclemodels.d.ts +0 -259
  212. package/dist/types/tidas_lifecyclemodels.d.ts.map +0 -1
  213. package/dist/types/tidas_lifecyclemodels.js +0 -8
  214. package/dist/types/tidas_lifecyclemodels.js.map +0 -1
  215. package/dist/types/tidas_locations_category.d.ts +0 -7
  216. package/dist/types/tidas_locations_category.d.ts.map +0 -1
  217. package/dist/types/tidas_locations_category.js +0 -8
  218. package/dist/types/tidas_locations_category.js.map +0 -1
  219. package/dist/types/tidas_processes.d.ts +0 -294
  220. package/dist/types/tidas_processes.d.ts.map +0 -1
  221. package/dist/types/tidas_processes.js +0 -8
  222. package/dist/types/tidas_processes.js.map +0 -1
  223. package/dist/types/tidas_processes_category.d.ts +0 -3071
  224. package/dist/types/tidas_processes_category.d.ts.map +0 -1
  225. package/dist/types/tidas_processes_category.js +0 -8
  226. package/dist/types/tidas_processes_category.js.map +0 -1
  227. package/dist/types/tidas_sources.d.ts +0 -58
  228. package/dist/types/tidas_sources.d.ts.map +0 -1
  229. package/dist/types/tidas_sources.js +0 -8
  230. package/dist/types/tidas_sources.js.map +0 -1
  231. package/dist/types/tidas_sources_category.d.ts +0 -35
  232. package/dist/types/tidas_sources_category.d.ts.map +0 -1
  233. package/dist/types/tidas_sources_category.js +0 -8
  234. package/dist/types/tidas_sources_category.js.map +0 -1
  235. package/dist/types/tidas_unitgroups.d.ts +0 -85
  236. package/dist/types/tidas_unitgroups.d.ts.map +0 -1
  237. package/dist/types/tidas_unitgroups.js +0 -8
  238. package/dist/types/tidas_unitgroups.js.map +0 -1
  239. package/dist/types/tidas_unitgroups_category.d.ts +0 -23
  240. package/dist/types/tidas_unitgroups_category.d.ts.map +0 -1
  241. package/dist/types/tidas_unitgroups_category.js +0 -8
  242. package/dist/types/tidas_unitgroups_category.js.map +0 -1
  243. package/dist/utils/diff.d.ts +0 -47
  244. package/dist/utils/diff.d.ts.map +0 -1
  245. package/dist/utils/diff.js +0 -263
  246. package/dist/utils/diff.js.map +0 -1
  247. package/dist/utils/index.d.ts +0 -7
  248. package/dist/utils/index.d.ts.map +0 -1
  249. package/dist/utils/index.js +0 -31
  250. package/dist/utils/index.js.map +0 -1
  251. package/dist/utils/object-utils.d.ts +0 -47
  252. package/dist/utils/object-utils.d.ts.map +0 -1
  253. package/dist/utils/object-utils.js +0 -332
  254. 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.19",
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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"}