@tiangong-lca/tidas-sdk 0.1.9 → 0.1.11
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/dist/core/base/TidasEntity.d.ts +85 -0
- package/dist/core/base/TidasEntity.d.ts.map +1 -1
- package/dist/core/base/TidasEntity.js +123 -1
- package/dist/core/base/TidasEntity.js.map +1 -1
- package/dist/core/methodology/ai.d.ts +150 -0
- package/dist/core/methodology/ai.d.ts.map +1 -0
- package/dist/core/methodology/ai.js +581 -0
- package/dist/core/methodology/ai.js.map +1 -0
- package/dist/core/methodology/base.d.ts +58 -0
- package/dist/core/methodology/base.d.ts.map +1 -0
- package/dist/core/methodology/base.js +180 -0
- package/dist/core/methodology/base.js.map +1 -0
- package/dist/core/methodology/index.d.ts +1 -0
- package/dist/core/methodology/index.d.ts.map +1 -0
- package/dist/core/methodology/index.js +2 -0
- package/dist/core/methodology/index.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -1
- package/dist/index.js.map +1 -1
- package/dist/methodologies/tidas_processes.yaml +375 -0
- package/dist/services/index.d.ts +9 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +24 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/suggestion-service.d.ts +147 -0
- package/dist/services/suggestion-service.d.ts.map +1 -0
- package/dist/services/suggestion-service.js +259 -0
- package/dist/services/suggestion-service.js.map +1 -0
- package/dist/utils/diff.d.ts +47 -0
- package/dist/utils/diff.d.ts.map +1 -0
- package/dist/utils/diff.js +263 -0
- package/dist/utils/diff.js.map +1 -0
- package/dist/utils/object-utils.d.ts +18 -0
- package/dist/utils/object-utils.d.ts.map +1 -1
- package/dist/utils/object-utils.js +178 -2
- package/dist/utils/object-utils.js.map +1 -1
- package/package.json +6 -2
|
@@ -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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"}
|
|
@@ -26,4 +26,22 @@ export declare function isObject(obj: any): boolean;
|
|
|
26
26
|
* Check if value is empty
|
|
27
27
|
*/
|
|
28
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>;
|
|
29
47
|
//# sourceMappingURL=object-utils.d.ts.map
|
|
@@ -1 +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,
|
|
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"}
|
|
@@ -7,6 +7,9 @@ exports.merge = merge;
|
|
|
7
7
|
exports.updatePath = updatePath;
|
|
8
8
|
exports.isObject = isObject;
|
|
9
9
|
exports.isEmpty = isEmpty;
|
|
10
|
+
exports.generateSchema = generateSchema;
|
|
11
|
+
exports.validateSchema = validateSchema;
|
|
12
|
+
exports.extractPaths = extractPaths;
|
|
10
13
|
/**
|
|
11
14
|
* Get nested property using dot notation
|
|
12
15
|
*/
|
|
@@ -87,7 +90,7 @@ function deepClone(obj) {
|
|
|
87
90
|
return new Date(obj.getTime());
|
|
88
91
|
}
|
|
89
92
|
if (obj instanceof Array) {
|
|
90
|
-
return obj.map(item => deepClone(item));
|
|
93
|
+
return obj.map((item) => deepClone(item));
|
|
91
94
|
}
|
|
92
95
|
if (typeof obj === 'object') {
|
|
93
96
|
const cloned = {};
|
|
@@ -109,7 +112,9 @@ function merge(target, source) {
|
|
|
109
112
|
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
110
113
|
const sourceValue = source[key];
|
|
111
114
|
const targetValue = result[key];
|
|
112
|
-
if (sourceValue !== undefined &&
|
|
115
|
+
if (sourceValue !== undefined &&
|
|
116
|
+
isObject(sourceValue) &&
|
|
117
|
+
isObject(targetValue)) {
|
|
113
118
|
result[key] = merge(targetValue, sourceValue);
|
|
114
119
|
}
|
|
115
120
|
else if (sourceValue !== undefined) {
|
|
@@ -153,4 +158,175 @@ function isEmpty(value) {
|
|
|
153
158
|
}
|
|
154
159
|
return false;
|
|
155
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* Generate a schema representing the structure of a JSON object
|
|
163
|
+
*/
|
|
164
|
+
function generateSchema(obj) {
|
|
165
|
+
// Handle null
|
|
166
|
+
if (obj === null) {
|
|
167
|
+
return { type: 'null' };
|
|
168
|
+
}
|
|
169
|
+
// Handle undefined
|
|
170
|
+
if (obj === undefined) {
|
|
171
|
+
return { type: 'undefined' };
|
|
172
|
+
}
|
|
173
|
+
// Handle primitive types
|
|
174
|
+
const typeOf = typeof obj;
|
|
175
|
+
if (typeOf === 'string') {
|
|
176
|
+
return { type: 'string' };
|
|
177
|
+
}
|
|
178
|
+
if (typeOf === 'number') {
|
|
179
|
+
return { type: 'number' };
|
|
180
|
+
}
|
|
181
|
+
if (typeOf === 'boolean') {
|
|
182
|
+
return { type: 'boolean' };
|
|
183
|
+
}
|
|
184
|
+
// Handle arrays and array-like objects
|
|
185
|
+
// Check if it's an array or has array-like characteristics
|
|
186
|
+
if (Array.isArray(obj) ||
|
|
187
|
+
(typeOf === 'object' &&
|
|
188
|
+
obj !== null &&
|
|
189
|
+
typeof obj.length === 'number' &&
|
|
190
|
+
obj.length >= 0)) {
|
|
191
|
+
// Treat as array
|
|
192
|
+
if (obj.length === 0) {
|
|
193
|
+
return { type: 'array' };
|
|
194
|
+
}
|
|
195
|
+
// Generate schema for array items (using first non-null item as reference)
|
|
196
|
+
let itemSchema;
|
|
197
|
+
for (let i = 0; i < obj.length; i++) {
|
|
198
|
+
const item = obj[i];
|
|
199
|
+
if (item !== null && item !== undefined) {
|
|
200
|
+
itemSchema = generateSchema(item);
|
|
201
|
+
break;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
// Check if array contains null values
|
|
205
|
+
let hasNull = false;
|
|
206
|
+
for (let i = 0; i < obj.length; i++) {
|
|
207
|
+
if (obj[i] === null) {
|
|
208
|
+
hasNull = true;
|
|
209
|
+
break;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
if (itemSchema && hasNull) {
|
|
213
|
+
itemSchema.nullable = true;
|
|
214
|
+
}
|
|
215
|
+
return {
|
|
216
|
+
type: 'array',
|
|
217
|
+
items: itemSchema || { type: 'null' },
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
// Handle objects
|
|
221
|
+
if (typeOf === 'object') {
|
|
222
|
+
const properties = {};
|
|
223
|
+
for (const key in obj) {
|
|
224
|
+
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
225
|
+
properties[key] = generateSchema(obj[key]);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
return {
|
|
229
|
+
type: 'object',
|
|
230
|
+
properties,
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
// Fallback (should not reach here for normal JSON)
|
|
234
|
+
return { type: 'undefined' };
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Validate if a JSON object conforms to a given schema
|
|
238
|
+
*/
|
|
239
|
+
function validateSchema(obj, schema) {
|
|
240
|
+
// Check for null
|
|
241
|
+
if (obj === null) {
|
|
242
|
+
return schema.type === 'null' || schema.nullable === true;
|
|
243
|
+
}
|
|
244
|
+
// Check for undefined
|
|
245
|
+
if (obj === undefined) {
|
|
246
|
+
return schema.type === 'undefined';
|
|
247
|
+
}
|
|
248
|
+
// Check primitive types
|
|
249
|
+
const typeOf = typeof obj;
|
|
250
|
+
if (schema.type === 'string') {
|
|
251
|
+
return typeOf === 'string';
|
|
252
|
+
}
|
|
253
|
+
if (schema.type === 'number') {
|
|
254
|
+
return typeOf === 'number';
|
|
255
|
+
}
|
|
256
|
+
if (schema.type === 'boolean') {
|
|
257
|
+
return typeOf === 'boolean';
|
|
258
|
+
}
|
|
259
|
+
// Check arrays
|
|
260
|
+
if (schema.type === 'array') {
|
|
261
|
+
// Accept both arrays and array-like objects
|
|
262
|
+
const isArrayLike = Array.isArray(obj) ||
|
|
263
|
+
(typeOf === 'object' &&
|
|
264
|
+
obj !== null &&
|
|
265
|
+
typeof obj.length === 'number' &&
|
|
266
|
+
obj.length >= 0);
|
|
267
|
+
if (!isArrayLike) {
|
|
268
|
+
return false;
|
|
269
|
+
}
|
|
270
|
+
// If schema has items definition, validate each item
|
|
271
|
+
if (schema.items) {
|
|
272
|
+
for (let i = 0; i < obj.length; i++) {
|
|
273
|
+
if (!validateSchema(obj[i], schema.items)) {
|
|
274
|
+
return false;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
return true;
|
|
279
|
+
}
|
|
280
|
+
// Check objects
|
|
281
|
+
if (schema.type === 'object') {
|
|
282
|
+
if (typeOf !== 'object' || Array.isArray(obj)) {
|
|
283
|
+
return false;
|
|
284
|
+
}
|
|
285
|
+
// Check if all required properties in schema exist in object
|
|
286
|
+
if (schema.properties) {
|
|
287
|
+
for (const key in schema.properties) {
|
|
288
|
+
if (!Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
289
|
+
// Property is missing - schema doesn't match
|
|
290
|
+
return false;
|
|
291
|
+
}
|
|
292
|
+
// Validate the property value against its schema
|
|
293
|
+
if (!validateSchema(obj[key], schema.properties[key])) {
|
|
294
|
+
return false;
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
// Check if object has extra properties not in schema
|
|
298
|
+
for (const key in obj) {
|
|
299
|
+
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
300
|
+
if (!schema.properties[key]) {
|
|
301
|
+
// Object has a property not defined in schema
|
|
302
|
+
return false;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
return true;
|
|
308
|
+
}
|
|
309
|
+
return false;
|
|
310
|
+
}
|
|
311
|
+
// Helper function to extract all paths from a schema
|
|
312
|
+
function extractPaths(schema, prefix = '') {
|
|
313
|
+
const paths = new Set();
|
|
314
|
+
if (schema.type === 'object' && schema.properties) {
|
|
315
|
+
for (const key in schema.properties) {
|
|
316
|
+
const fullPath = prefix ? `${prefix}.${key}` : key;
|
|
317
|
+
paths.add(fullPath);
|
|
318
|
+
const subPaths = extractPaths(schema.properties[key], fullPath);
|
|
319
|
+
subPaths.forEach((path) => paths.add(path));
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
else if (schema.type === 'array' && schema.items) {
|
|
323
|
+
paths.add(prefix);
|
|
324
|
+
const subPaths = extractPaths(schema.items, `${prefix}[]`);
|
|
325
|
+
subPaths.forEach((path) => paths.add(path));
|
|
326
|
+
}
|
|
327
|
+
else {
|
|
328
|
+
paths.add(prefix);
|
|
329
|
+
}
|
|
330
|
+
return paths;
|
|
331
|
+
}
|
|
156
332
|
//# sourceMappingURL=object-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object-utils.js","sourceRoot":"","sources":["../../src/utils/object-utils.ts"],"names":[],"mappings":";;AAGA,kBA0BC;AAKD,kBA4CC;AAKD,8BAwBC;AAKD,
|
|
1
|
+
{"version":3,"file":"object-utils.js","sourceRoot":"","sources":["../../src/utils/object-utils.ts"],"names":[],"mappings":"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"}
|
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.11",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
}
|
|
33
33
|
},
|
|
34
34
|
"scripts": {
|
|
35
|
-
"build": "tsc",
|
|
35
|
+
"build": "tsc && cp -r tidas-tools/src/tidas_tools/tidas/methodologies dist/methodologies",
|
|
36
36
|
"dev": "tsc --watch",
|
|
37
37
|
"clean": "rm -rf dist",
|
|
38
38
|
"prebuild": "npm run clean",
|
|
@@ -63,6 +63,7 @@
|
|
|
63
63
|
"@types/node": "^24.0.14",
|
|
64
64
|
"@typescript-eslint/eslint-plugin": "^8.36.0",
|
|
65
65
|
"@typescript-eslint/parser": "^8.36.0",
|
|
66
|
+
"dotenv": "^17.2.1",
|
|
66
67
|
"eslint": "^9.30.1",
|
|
67
68
|
"eslint-config-prettier": "^10.1.5",
|
|
68
69
|
"jest": "^30.0.4",
|
|
@@ -81,7 +82,10 @@
|
|
|
81
82
|
"node": ">=14.0.0"
|
|
82
83
|
},
|
|
83
84
|
"dependencies": {
|
|
85
|
+
"@langchain/core": "^0.3.72",
|
|
86
|
+
"langchain": "^0.3.31",
|
|
84
87
|
"ts-to-zod": "^3.15.0",
|
|
88
|
+
"yaml": "^2.8.1",
|
|
85
89
|
"zod": "^4.0.5"
|
|
86
90
|
}
|
|
87
91
|
}
|