@tiangong-lca/tidas-sdk 0.1.20 → 0.1.21

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 (255) hide show
  1. package/README.md +174 -451
  2. package/dist/core/base/TidasEntity.d.ts +190 -0
  3. package/dist/core/base/TidasEntity.d.ts.map +1 -0
  4. package/dist/core/base/TidasEntity.js +433 -0
  5. package/dist/core/base/TidasEntity.js.map +1 -0
  6. package/dist/core/config/GlobalConfig.d.ts +60 -0
  7. package/dist/core/config/GlobalConfig.d.ts.map +1 -0
  8. package/dist/core/config/GlobalConfig.js +110 -0
  9. package/dist/core/config/GlobalConfig.js.map +1 -0
  10. package/dist/core/config/ValidationConfig.d.ts +70 -0
  11. package/dist/core/config/ValidationConfig.d.ts.map +1 -0
  12. package/dist/core/config/ValidationConfig.js +157 -0
  13. package/dist/core/config/ValidationConfig.js.map +1 -0
  14. package/dist/core/copilot/ai.d.ts +150 -0
  15. package/dist/core/copilot/ai.d.ts.map +1 -0
  16. package/dist/core/copilot/ai.js +581 -0
  17. package/dist/core/copilot/ai.js.map +1 -0
  18. package/dist/core/copilot/base.d.ts +83 -0
  19. package/dist/core/copilot/base.d.ts.map +1 -0
  20. package/dist/core/copilot/base.js +193 -0
  21. package/dist/core/copilot/base.js.map +1 -0
  22. package/dist/core/copilot/index.d.ts +1 -0
  23. package/dist/core/copilot/index.d.ts.map +1 -0
  24. package/dist/core/copilot/index.js +2 -0
  25. package/dist/core/copilot/index.js.map +1 -0
  26. package/dist/core/entities/TidasContact.d.ts +14 -0
  27. package/dist/core/entities/TidasContact.d.ts.map +1 -0
  28. package/dist/core/entities/TidasContact.js +124 -0
  29. package/dist/core/entities/TidasContact.js.map +1 -0
  30. package/dist/core/entities/TidasFlow.d.ts +14 -0
  31. package/dist/core/entities/TidasFlow.d.ts.map +1 -0
  32. package/dist/core/entities/TidasFlow.js +143 -0
  33. package/dist/core/entities/TidasFlow.js.map +1 -0
  34. package/dist/core/entities/TidasFlowProperty.d.ts +14 -0
  35. package/dist/core/entities/TidasFlowProperty.d.ts.map +1 -0
  36. package/dist/core/entities/TidasFlowProperty.js +156 -0
  37. package/dist/core/entities/TidasFlowProperty.js.map +1 -0
  38. package/dist/core/entities/TidasLCIAMethod.d.ts +14 -0
  39. package/dist/core/entities/TidasLCIAMethod.d.ts.map +1 -0
  40. package/dist/core/entities/TidasLCIAMethod.js +177 -0
  41. package/dist/core/entities/TidasLCIAMethod.js.map +1 -0
  42. package/dist/core/entities/TidasLifeCycleModel.d.ts +14 -0
  43. package/dist/core/entities/TidasLifeCycleModel.d.ts.map +1 -0
  44. package/dist/core/entities/TidasLifeCycleModel.js +169 -0
  45. package/dist/core/entities/TidasLifeCycleModel.js.map +1 -0
  46. package/dist/core/entities/TidasProcess.d.ts +14 -0
  47. package/dist/core/entities/TidasProcess.d.ts.map +1 -0
  48. package/dist/core/entities/TidasProcess.js +191 -0
  49. package/dist/core/entities/TidasProcess.js.map +1 -0
  50. package/dist/core/entities/TidasSource.d.ts +14 -0
  51. package/dist/core/entities/TidasSource.d.ts.map +1 -0
  52. package/dist/core/entities/TidasSource.js +146 -0
  53. package/dist/core/entities/TidasSource.js.map +1 -0
  54. package/dist/core/entities/TidasUnitGroup.d.ts +14 -0
  55. package/dist/core/entities/TidasUnitGroup.d.ts.map +1 -0
  56. package/dist/core/entities/TidasUnitGroup.js +177 -0
  57. package/dist/core/entities/TidasUnitGroup.js.map +1 -0
  58. package/dist/core/factories/index.d.ts +46 -0
  59. package/dist/core/factories/index.d.ts.map +1 -0
  60. package/dist/core/factories/index.js +223 -0
  61. package/dist/core/factories/index.js.map +1 -0
  62. package/dist/core/index.d.ts +9 -0
  63. package/dist/core/index.d.ts.map +1 -0
  64. package/dist/core/index.js +56 -0
  65. package/dist/core/index.js.map +1 -0
  66. package/dist/core/zod-factories.d.ts +71 -0
  67. package/dist/core/zod-factories.d.ts.map +1 -0
  68. package/dist/core/zod-factories.js +169 -0
  69. package/dist/core/zod-factories.js.map +1 -0
  70. package/dist/core/zod-proxy.d.ts +108 -0
  71. package/dist/core/zod-proxy.d.ts.map +1 -0
  72. package/dist/core/zod-proxy.js +382 -0
  73. package/dist/core/zod-proxy.js.map +1 -0
  74. package/dist/data/bundled-methodologies.json +1259 -0
  75. package/dist/index.d.ts +33 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +73 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/schemas/index.d.ts +48 -0
  80. package/dist/schemas/index.d.ts.map +1 -0
  81. package/dist/schemas/index.js +112 -0
  82. package/dist/schemas/index.js.map +1 -0
  83. package/dist/schemas/tidas_contacts.schema.d.ts +124 -0
  84. package/dist/schemas/tidas_contacts.schema.d.ts.map +1 -0
  85. package/dist/schemas/tidas_contacts.schema.js +75 -0
  86. package/dist/schemas/tidas_contacts.schema.js.map +1 -0
  87. package/dist/schemas/tidas_contacts_category.schema.d.ts +3 -0
  88. package/dist/schemas/tidas_contacts_category.schema.d.ts.map +1 -0
  89. package/dist/schemas/tidas_contacts_category.schema.js +53 -0
  90. package/dist/schemas/tidas_contacts_category.schema.js.map +1 -0
  91. package/dist/schemas/tidas_data_types.schema.d.ts +34 -0
  92. package/dist/schemas/tidas_data_types.schema.d.ts.map +1 -0
  93. package/dist/schemas/tidas_data_types.schema.js +60 -0
  94. package/dist/schemas/tidas_data_types.schema.js.map +1 -0
  95. package/dist/schemas/tidas_flowproperties.schema.d.ts +152 -0
  96. package/dist/schemas/tidas_flowproperties.schema.d.ts.map +1 -0
  97. package/dist/schemas/tidas_flowproperties.schema.js +88 -0
  98. package/dist/schemas/tidas_flowproperties.schema.js.map +1 -0
  99. package/dist/schemas/tidas_flowproperties_category.schema.d.ts +3 -0
  100. package/dist/schemas/tidas_flowproperties_category.schema.d.ts.map +1 -0
  101. package/dist/schemas/tidas_flowproperties_category.schema.js +28 -0
  102. package/dist/schemas/tidas_flowproperties_category.schema.js.map +1 -0
  103. package/dist/schemas/tidas_flows.schema.d.ts +215 -0
  104. package/dist/schemas/tidas_flows.schema.d.ts.map +1 -0
  105. package/dist/schemas/tidas_flows.schema.js +165 -0
  106. package/dist/schemas/tidas_flows.schema.js.map +1 -0
  107. package/dist/schemas/tidas_flows_elementary_category.schema.d.ts +3 -0
  108. package/dist/schemas/tidas_flows_elementary_category.schema.d.ts.map +1 -0
  109. package/dist/schemas/tidas_flows_elementary_category.schema.js +309 -0
  110. package/dist/schemas/tidas_flows_elementary_category.schema.js.map +1 -0
  111. package/dist/schemas/tidas_flows_product_category.schema.d.ts +3 -0
  112. package/dist/schemas/tidas_flows_product_category.schema.d.ts.map +1 -0
  113. package/dist/schemas/tidas_flows_product_category.schema.js +28508 -0
  114. package/dist/schemas/tidas_flows_product_category.schema.js.map +1 -0
  115. package/dist/schemas/tidas_lciamethods.schema.d.ts +546 -0
  116. package/dist/schemas/tidas_lciamethods.schema.d.ts.map +1 -0
  117. package/dist/schemas/tidas_lciamethods.schema.js +513 -0
  118. package/dist/schemas/tidas_lciamethods.schema.js.map +1 -0
  119. package/dist/schemas/tidas_lciamethods_category.schema.d.ts +3 -0
  120. package/dist/schemas/tidas_lciamethods_category.schema.d.ts.map +1 -0
  121. package/dist/schemas/tidas_lciamethods_category.schema.js +278 -0
  122. package/dist/schemas/tidas_lciamethods_category.schema.js.map +1 -0
  123. package/dist/schemas/tidas_lifecyclemodels.schema.d.ts +465 -0
  124. package/dist/schemas/tidas_lifecyclemodels.schema.d.ts.map +1 -0
  125. package/dist/schemas/tidas_lifecyclemodels.schema.js +420 -0
  126. package/dist/schemas/tidas_lifecyclemodels.schema.js.map +1 -0
  127. package/dist/schemas/tidas_locations_category.schema.d.ts +3 -0
  128. package/dist/schemas/tidas_locations_category.schema.d.ts.map +1 -0
  129. package/dist/schemas/tidas_locations_category.schema.js +655 -0
  130. package/dist/schemas/tidas_locations_category.schema.js.map +1 -0
  131. package/dist/schemas/tidas_processes.schema.d.ts +626 -0
  132. package/dist/schemas/tidas_processes.schema.d.ts.map +1 -0
  133. package/dist/schemas/tidas_processes.schema.js +659 -0
  134. package/dist/schemas/tidas_processes.schema.js.map +1 -0
  135. package/dist/schemas/tidas_processes_category.schema.d.ts +3 -0
  136. package/dist/schemas/tidas_processes_category.schema.d.ts.map +1 -0
  137. package/dist/schemas/tidas_processes_category.schema.js +4904 -0
  138. package/dist/schemas/tidas_processes_category.schema.js.map +1 -0
  139. package/dist/schemas/tidas_sources.schema.d.ts +113 -0
  140. package/dist/schemas/tidas_sources.schema.d.ts.map +1 -0
  141. package/dist/schemas/tidas_sources.schema.js +73 -0
  142. package/dist/schemas/tidas_sources.schema.js.map +1 -0
  143. package/dist/schemas/tidas_sources_category.schema.d.ts +3 -0
  144. package/dist/schemas/tidas_sources_category.schema.d.ts.map +1 -0
  145. package/dist/schemas/tidas_sources_category.schema.js +43 -0
  146. package/dist/schemas/tidas_sources_category.schema.js.map +1 -0
  147. package/dist/schemas/tidas_unitgroups.schema.d.ts +140 -0
  148. package/dist/schemas/tidas_unitgroups.schema.d.ts.map +1 -0
  149. package/dist/schemas/tidas_unitgroups.schema.js +103 -0
  150. package/dist/schemas/tidas_unitgroups.schema.js.map +1 -0
  151. package/dist/schemas/tidas_unitgroups_category.schema.d.ts +3 -0
  152. package/dist/schemas/tidas_unitgroups_category.schema.d.ts.map +1 -0
  153. package/dist/schemas/tidas_unitgroups_category.schema.js +28 -0
  154. package/dist/schemas/tidas_unitgroups_category.schema.js.map +1 -0
  155. package/dist/services/copilot-service.d.ts +147 -0
  156. package/dist/services/copilot-service.d.ts.map +1 -0
  157. package/dist/services/copilot-service.js +259 -0
  158. package/dist/services/copilot-service.js.map +1 -0
  159. package/dist/services/index.d.ts +9 -0
  160. package/dist/services/index.d.ts.map +1 -0
  161. package/dist/services/index.js +24 -0
  162. package/dist/services/index.js.map +1 -0
  163. package/dist/types/index.d.ts +22 -0
  164. package/dist/types/index.d.ts.map +1 -0
  165. package/dist/types/index.js +21 -0
  166. package/dist/types/index.js.map +1 -0
  167. package/dist/types/multi-lang-types.d.ts +23 -0
  168. package/dist/types/multi-lang-types.d.ts.map +1 -0
  169. package/dist/types/multi-lang-types.js +40 -0
  170. package/dist/types/multi-lang-types.js.map +1 -0
  171. package/dist/types/tidas_contacts.d.ts +72 -0
  172. package/dist/types/tidas_contacts.d.ts.map +1 -0
  173. package/dist/types/tidas_contacts.js +8 -0
  174. package/dist/types/tidas_contacts.js.map +1 -0
  175. package/dist/types/tidas_contacts_category.d.ts +43 -0
  176. package/dist/types/tidas_contacts_category.d.ts.map +1 -0
  177. package/dist/types/tidas_contacts_category.js +8 -0
  178. package/dist/types/tidas_contacts_category.js.map +1 -0
  179. package/dist/types/tidas_data_types.d.ts +116 -0
  180. package/dist/types/tidas_data_types.d.ts.map +1 -0
  181. package/dist/types/tidas_data_types.js +8 -0
  182. package/dist/types/tidas_data_types.js.map +1 -0
  183. package/dist/types/tidas_flowproperties.d.ts +73 -0
  184. package/dist/types/tidas_flowproperties.d.ts.map +1 -0
  185. package/dist/types/tidas_flowproperties.js +8 -0
  186. package/dist/types/tidas_flowproperties.js.map +1 -0
  187. package/dist/types/tidas_flowproperties_category.d.ts +23 -0
  188. package/dist/types/tidas_flowproperties_category.d.ts.map +1 -0
  189. package/dist/types/tidas_flowproperties_category.js +8 -0
  190. package/dist/types/tidas_flowproperties_category.js.map +1 -0
  191. package/dist/types/tidas_flows.d.ts +113 -0
  192. package/dist/types/tidas_flows.d.ts.map +1 -0
  193. package/dist/types/tidas_flows.js +8 -0
  194. package/dist/types/tidas_flows.js.map +1 -0
  195. package/dist/types/tidas_flows_elementary_category.d.ts +227 -0
  196. package/dist/types/tidas_flows_elementary_category.d.ts.map +1 -0
  197. package/dist/types/tidas_flows_elementary_category.js +8 -0
  198. package/dist/types/tidas_flows_elementary_category.js.map +1 -0
  199. package/dist/types/tidas_flows_product_category.d.ts +18391 -0
  200. package/dist/types/tidas_flows_product_category.d.ts.map +1 -0
  201. package/dist/types/tidas_flows_product_category.js +8 -0
  202. package/dist/types/tidas_flows_product_category.js.map +1 -0
  203. package/dist/types/tidas_lciamethods.d.ts +231 -0
  204. package/dist/types/tidas_lciamethods.d.ts.map +1 -0
  205. package/dist/types/tidas_lciamethods.js +8 -0
  206. package/dist/types/tidas_lciamethods.js.map +1 -0
  207. package/dist/types/tidas_lciamethods_category.d.ts +215 -0
  208. package/dist/types/tidas_lciamethods_category.d.ts.map +1 -0
  209. package/dist/types/tidas_lciamethods_category.js +8 -0
  210. package/dist/types/tidas_lciamethods_category.js.map +1 -0
  211. package/dist/types/tidas_lifecyclemodels.d.ts +259 -0
  212. package/dist/types/tidas_lifecyclemodels.d.ts.map +1 -0
  213. package/dist/types/tidas_lifecyclemodels.js +8 -0
  214. package/dist/types/tidas_lifecyclemodels.js.map +1 -0
  215. package/dist/types/tidas_locations_category.d.ts +7 -0
  216. package/dist/types/tidas_locations_category.d.ts.map +1 -0
  217. package/dist/types/tidas_locations_category.js +8 -0
  218. package/dist/types/tidas_locations_category.js.map +1 -0
  219. package/dist/types/tidas_processes.d.ts +301 -0
  220. package/dist/types/tidas_processes.d.ts.map +1 -0
  221. package/dist/types/tidas_processes.js +8 -0
  222. package/dist/types/tidas_processes.js.map +1 -0
  223. package/dist/types/tidas_processes_category.d.ts +3327 -0
  224. package/dist/types/tidas_processes_category.d.ts.map +1 -0
  225. package/dist/types/tidas_processes_category.js +8 -0
  226. package/dist/types/tidas_processes_category.js.map +1 -0
  227. package/dist/types/tidas_sources.d.ts +58 -0
  228. package/dist/types/tidas_sources.d.ts.map +1 -0
  229. package/dist/types/tidas_sources.js +8 -0
  230. package/dist/types/tidas_sources.js.map +1 -0
  231. package/dist/types/tidas_sources_category.d.ts +35 -0
  232. package/dist/types/tidas_sources_category.d.ts.map +1 -0
  233. package/dist/types/tidas_sources_category.js +8 -0
  234. package/dist/types/tidas_sources_category.js.map +1 -0
  235. package/dist/types/tidas_unitgroups.d.ts +85 -0
  236. package/dist/types/tidas_unitgroups.d.ts.map +1 -0
  237. package/dist/types/tidas_unitgroups.js +8 -0
  238. package/dist/types/tidas_unitgroups.js.map +1 -0
  239. package/dist/types/tidas_unitgroups_category.d.ts +23 -0
  240. package/dist/types/tidas_unitgroups_category.d.ts.map +1 -0
  241. package/dist/types/tidas_unitgroups_category.js +8 -0
  242. package/dist/types/tidas_unitgroups_category.js.map +1 -0
  243. package/dist/utils/diff.d.ts +47 -0
  244. package/dist/utils/diff.d.ts.map +1 -0
  245. package/dist/utils/diff.js +263 -0
  246. package/dist/utils/diff.js.map +1 -0
  247. package/dist/utils/index.d.ts +7 -0
  248. package/dist/utils/index.d.ts.map +1 -0
  249. package/dist/utils/index.js +31 -0
  250. package/dist/utils/index.js.map +1 -0
  251. package/dist/utils/object-utils.d.ts +47 -0
  252. package/dist/utils/object-utils.d.ts.map +1 -0
  253. package/dist/utils/object-utils.js +332 -0
  254. package/dist/utils/object-utils.js.map +1 -0
  255. package/package.json +4 -4
@@ -0,0 +1,263 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.generateDiffHTML = generateDiffHTML;
37
+ exports.saveDiffToFile = saveDiffToFile;
38
+ exports.generateDiffSummary = generateDiffSummary;
39
+ exports.openDiffInBrowser = openDiffInBrowser;
40
+ const fs = __importStar(require("fs"));
41
+ const path = __importStar(require("path"));
42
+ /**
43
+ * Generate an HTML page showing the diff between two JSON objects using Monaco Editor
44
+ *
45
+ * @param original - Original JSON object
46
+ * @param improved - Improved/modified JSON object
47
+ * @param options - Optional configuration
48
+ * @returns HTML string containing the diff viewer
49
+ */
50
+ function generateDiffHTML(original, improved) {
51
+ const originalJson = JSON.stringify(original, null, 2);
52
+ const improvedJson = JSON.stringify(improved, null, 2);
53
+ return `<!DOCTYPE html>
54
+ <html>
55
+ <head>
56
+ <meta charset="UTF-8">
57
+ <title>Diff Viewer</title>
58
+ <style>
59
+ body { margin: 0; padding: 0; }
60
+ #container { height: 100vh; }
61
+ </style>
62
+ </head>
63
+ <body>
64
+ <div id="container"></div>
65
+
66
+ <script src="https://cdn.jsdelivr.net/npm/monaco-editor@0.45.0/min/vs/loader.js"></script>
67
+ <script>
68
+ require.config({ paths: { vs: 'https://cdn.jsdelivr.net/npm/monaco-editor@0.45.0/min/vs' } });
69
+
70
+ require(['vs/editor/editor.main'], function () {
71
+ const originalText = ${JSON.stringify(originalJson)};
72
+ const modifiedText = ${JSON.stringify(improvedJson)};
73
+
74
+ const originalModel = monaco.editor.createModel(originalText, 'json');
75
+ const modifiedModel = monaco.editor.createModel(modifiedText, 'json');
76
+
77
+ const diffEditor = monaco.editor.createDiffEditor(document.getElementById('container'), {
78
+ enableSplitViewResizing: true,
79
+ renderSideBySide: true,
80
+ readOnly: true,
81
+ automaticLayout: true,
82
+ fontSize: 14,
83
+ minimap: { enabled: false }
84
+ });
85
+
86
+ diffEditor.setModel({
87
+ original: originalModel,
88
+ modified: modifiedModel
89
+ });
90
+ });
91
+ </script>
92
+ </body>
93
+ </html>`;
94
+ }
95
+ /**
96
+ * Save diff HTML to a file
97
+ *
98
+ * @param original - Original JSON object
99
+ * @param improved - Improved/modified JSON object
100
+ * @param outputPath - Path where to save the HTML file
101
+ * @param options - Optional configuration
102
+ */
103
+ async function saveDiffToFile(original, improved, outputPath, options) {
104
+ const html = generateDiffHTML(original, improved);
105
+ await fs.promises.writeFile(outputPath, html, 'utf-8');
106
+ console.log(`Diff viewer saved to: ${outputPath}`);
107
+ }
108
+ /**
109
+ * Generate a simple text-based diff summary
110
+ *
111
+ * @param original - Original JSON object
112
+ * @param improved - Improved/modified JSON object
113
+ * @param paths - Optional array of paths to focus on
114
+ * @returns Text summary of differences
115
+ */
116
+ function generateDiffSummary(original, improved, paths) {
117
+ const summary = [];
118
+ summary.push('=== Diff Summary ===\n');
119
+ // If paths are specified, only compare those
120
+ if (paths && paths.length > 0) {
121
+ for (const path of paths) {
122
+ const originalValue = getValueByPath(original, path);
123
+ const improvedValue = getValueByPath(improved, path);
124
+ if (JSON.stringify(originalValue) !== JSON.stringify(improvedValue)) {
125
+ summary.push(`📝 ${path}:`);
126
+ const originalStr = originalValue !== undefined
127
+ ? JSON.stringify(originalValue, null, 2).substring(0, 100)
128
+ : 'undefined';
129
+ const improvedStr = improvedValue !== undefined
130
+ ? JSON.stringify(improvedValue, null, 2).substring(0, 100)
131
+ : 'undefined';
132
+ summary.push(` Before: ${originalStr}...`);
133
+ summary.push(` After: ${improvedStr}...`);
134
+ summary.push('');
135
+ }
136
+ }
137
+ }
138
+ else {
139
+ // Compare all properties recursively
140
+ const diffs = findDifferences(original, improved);
141
+ for (const diff of diffs) {
142
+ summary.push(`📝 ${diff.path}:`);
143
+ summary.push(` Before: ${diff.original}`);
144
+ summary.push(` After: ${diff.improved}`);
145
+ summary.push('');
146
+ }
147
+ }
148
+ return summary.join('\n');
149
+ }
150
+ /**
151
+ * Helper function to get value by dot-notation path
152
+ */
153
+ function getValueByPath(obj, path) {
154
+ const parts = path.split('.');
155
+ let current = obj;
156
+ for (const part of parts) {
157
+ if (current && typeof current === 'object' && part in current) {
158
+ current = current[part];
159
+ }
160
+ else {
161
+ return undefined;
162
+ }
163
+ }
164
+ return current;
165
+ }
166
+ /**
167
+ * Helper function to find all differences between two objects
168
+ */
169
+ function findDifferences(original, improved, path = '') {
170
+ const diffs = [];
171
+ // Handle primitive values
172
+ if (typeof original !== 'object' || typeof improved !== 'object') {
173
+ if (JSON.stringify(original) !== JSON.stringify(improved)) {
174
+ diffs.push({
175
+ path: path || 'root',
176
+ original: JSON.stringify(original).substring(0, 100),
177
+ improved: JSON.stringify(improved).substring(0, 100),
178
+ });
179
+ }
180
+ return diffs;
181
+ }
182
+ // Handle arrays
183
+ if (Array.isArray(original) || Array.isArray(improved)) {
184
+ if (JSON.stringify(original) !== JSON.stringify(improved)) {
185
+ diffs.push({
186
+ path: path || 'root',
187
+ original: Array.isArray(original)
188
+ ? `[${original.length} items]`
189
+ : String(original),
190
+ improved: Array.isArray(improved)
191
+ ? `[${improved.length} items]`
192
+ : String(improved),
193
+ });
194
+ }
195
+ return diffs;
196
+ }
197
+ // Handle objects
198
+ const allKeys = new Set([
199
+ ...Object.keys(original || {}),
200
+ ...Object.keys(improved || {}),
201
+ ]);
202
+ for (const key of allKeys) {
203
+ const newPath = path ? `${path}.${key}` : key;
204
+ const originalValue = original?.[key];
205
+ const improvedValue = improved?.[key];
206
+ if (JSON.stringify(originalValue) !== JSON.stringify(improvedValue)) {
207
+ // For nested objects, recurse if both are objects
208
+ if (typeof originalValue === 'object' &&
209
+ typeof improvedValue === 'object' &&
210
+ !Array.isArray(originalValue) &&
211
+ !Array.isArray(improvedValue)) {
212
+ diffs.push(...findDifferences(originalValue, improvedValue, newPath));
213
+ }
214
+ else {
215
+ diffs.push({
216
+ path: newPath,
217
+ original: originalValue !== undefined
218
+ ? JSON.stringify(originalValue).substring(0, 100)
219
+ : 'undefined',
220
+ improved: improvedValue !== undefined
221
+ ? JSON.stringify(improvedValue).substring(0, 100)
222
+ : 'undefined',
223
+ });
224
+ }
225
+ }
226
+ }
227
+ return diffs;
228
+ }
229
+ /**
230
+ * Open diff viewer in browser (Node.js environment)
231
+ */
232
+ async function openDiffInBrowser(original, improved, options) {
233
+ const { exec } = await Promise.resolve().then(() => __importStar(require('child_process')));
234
+ const { promisify } = await Promise.resolve().then(() => __importStar(require('util')));
235
+ const execAsync = promisify(exec);
236
+ // Create temp file
237
+ const tempDir = await Promise.resolve().then(() => __importStar(require('os'))).then((os) => os.tmpdir());
238
+ const tempFile = path.join(tempDir, `diff-viewer-${Date.now()}.html`);
239
+ // Save HTML to temp file
240
+ await saveDiffToFile(original, improved, tempFile, options);
241
+ // Open in default browser
242
+ const platform = process.platform;
243
+ const command = platform === 'darwin'
244
+ ? 'open'
245
+ : platform === 'win32'
246
+ ? 'start'
247
+ : 'xdg-open';
248
+ try {
249
+ await execAsync(`${command} "${tempFile}"`);
250
+ console.log('Diff viewer opened in browser');
251
+ }
252
+ catch (error) {
253
+ console.error('Failed to open browser:', error);
254
+ console.log(`Please open manually: ${tempFile}`);
255
+ }
256
+ }
257
+ exports.default = {
258
+ generateDiffHTML,
259
+ saveDiffToFile,
260
+ generateDiffSummary,
261
+ openDiffInBrowser,
262
+ };
263
+ //# sourceMappingURL=diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/utils/diff.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Utility functions index
3
+ * Provides unified access to all utility functions
4
+ */
5
+ export * from './object-utils';
6
+ export { deepClone, merge, get, set, updatePath } from './object-utils';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ /**
3
+ * Utility functions index
4
+ * Provides unified access to all utility functions
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
18
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.updatePath = exports.set = exports.get = exports.merge = exports.deepClone = void 0;
22
+ // Object manipulation utilities
23
+ __exportStar(require("./object-utils"), exports);
24
+ // Re-export commonly used functions with cleaner names
25
+ var object_utils_1 = require("./object-utils");
26
+ Object.defineProperty(exports, "deepClone", { enumerable: true, get: function () { return object_utils_1.deepClone; } });
27
+ Object.defineProperty(exports, "merge", { enumerable: true, get: function () { return object_utils_1.merge; } });
28
+ Object.defineProperty(exports, "get", { enumerable: true, get: function () { return object_utils_1.get; } });
29
+ Object.defineProperty(exports, "set", { enumerable: true, get: function () { return object_utils_1.set; } });
30
+ Object.defineProperty(exports, "updatePath", { enumerable: true, get: function () { return object_utils_1.updatePath; } });
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAEH,gCAAgC;AAChC,iDAA+B;AAE/B,uDAAuD;AACvD,+CAAwE;AAA/D,yGAAA,SAAS,OAAA;AAAE,qGAAA,KAAK,OAAA;AAAE,mGAAA,GAAG,OAAA;AAAE,mGAAA,GAAG,OAAA;AAAE,0GAAA,UAAU,OAAA"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Get nested property using dot notation
3
+ */
4
+ export declare function get(obj: any, path: string, defaultValue?: any): any;
5
+ /**
6
+ * Set nested property using dot notation
7
+ */
8
+ export declare function set(obj: any, path: string, value: any): void;
9
+ /**
10
+ * Deep clone an object
11
+ */
12
+ export declare function deepClone<T>(obj: T): T;
13
+ /**
14
+ * Deep merge two objects
15
+ */
16
+ export declare function merge<T>(target: T, source: Partial<T>): T;
17
+ /**
18
+ * Update nested properties using path notation
19
+ */
20
+ export declare function updatePath<T>(obj: T, updates: Record<string, any>): T;
21
+ /**
22
+ * Check if value is a plain object
23
+ */
24
+ export declare function isObject(obj: any): boolean;
25
+ /**
26
+ * Check if value is empty
27
+ */
28
+ export declare function isEmpty(value: any): boolean;
29
+ /**
30
+ * Schema type definitions
31
+ */
32
+ export interface Schema {
33
+ type: 'object' | 'array' | 'string' | 'number' | 'boolean' | 'null' | 'undefined';
34
+ properties?: Record<string, Schema>;
35
+ items?: Schema;
36
+ nullable?: boolean;
37
+ }
38
+ /**
39
+ * Generate a schema representing the structure of a JSON object
40
+ */
41
+ export declare function generateSchema(obj: any): Schema;
42
+ /**
43
+ * Validate if a JSON object conforms to a given schema
44
+ */
45
+ export declare function validateSchema(obj: any, schema: Schema): boolean;
46
+ export declare function extractPaths(schema: any, prefix?: string): Set<string>;
47
+ //# sourceMappingURL=object-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-utils.d.ts","sourceRoot":"","sources":["../../src/utils/object-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,GAAG,GAAG,CA0BnE;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,CA4C5D;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAwBtC;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAqBzD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAQrE;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAE1C;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAkB3C;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,IAAI,EACA,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,MAAM,GACN,WAAW,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAoF/C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAuFhE;AAGD,wBAAgB,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,SAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAoBlE"}