@comake/skl-js-engine 1.3.7 → 1.3.8

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.
@@ -7,6 +7,7 @@ exports.SparqlEndpointQueryExecutor = void 0;
7
7
  const sparql_http_client_1 = __importDefault(require("sparql-http-client"));
8
8
  const sparqljs_1 = require("sparqljs");
9
9
  const logger_1 = require("../../../../logger");
10
+ const PerformanceLogger_1 = require("../../../../util/PerformanceLogger");
10
11
  class SparqlEndpointQueryExecutor {
11
12
  constructor(options) {
12
13
  this.sparqlClient = new sparql_http_client_1.default({
@@ -21,51 +22,94 @@ class SparqlEndpointQueryExecutor {
21
22
  return this.executeSparqlSelectAndGetDataRaw(generatedQuery);
22
23
  }
23
24
  async executeSparqlSelectAndGetDataRaw(query) {
24
- // This.logger.debug(query);
25
- const stream = await this.sparqlClient.query.select(query, { operation: 'postUrlencoded' });
26
- return new Promise((resolve, reject) => {
27
- const data = [];
28
- stream.on('data', (row) => {
29
- data.push(row);
25
+ const span = PerformanceLogger_1.PerformanceLogger.startSpan('SPARQL.SELECT', { query });
26
+ try {
27
+ // This.logger.debug(query);
28
+ const stream = await this.sparqlClient.query.select(query, { operation: 'postUrlencoded' });
29
+ const result = await new Promise((resolve, reject) => {
30
+ const data = [];
31
+ stream.on('data', (row) => {
32
+ data.push(row);
33
+ });
34
+ stream.on('end', () => {
35
+ resolve(data);
36
+ });
37
+ stream.on('error', (error) => {
38
+ reject(error);
39
+ });
30
40
  });
31
- stream.on('end', () => {
32
- resolve(data);
33
- });
34
- stream.on('error', (error) => {
35
- reject(error);
36
- });
37
- });
41
+ PerformanceLogger_1.PerformanceLogger.endSpan(span, { resultCount: result.length });
42
+ return result;
43
+ }
44
+ catch (error) {
45
+ PerformanceLogger_1.PerformanceLogger.endSpan(span, { error: true });
46
+ throw error;
47
+ }
38
48
  }
39
49
  async executeSparqlConstructAndGetDataRaw(query) {
40
- return await this.executeSparqlSelectAndGetDataRaw(query);
50
+ const span = PerformanceLogger_1.PerformanceLogger.startSpan('SPARQL.CONSTRUCT', { query });
51
+ try {
52
+ const result = await this.executeSparqlSelectAndGetDataRaw(query);
53
+ PerformanceLogger_1.PerformanceLogger.endSpan(span, { resultCount: result.length });
54
+ return result;
55
+ }
56
+ catch (error) {
57
+ PerformanceLogger_1.PerformanceLogger.endSpan(span, { error: true });
58
+ throw error;
59
+ }
41
60
  }
42
61
  async executeSparqlUpdate(query) {
43
62
  const generatedQuery = this.sparqlGenerator.stringify(query);
44
63
  await this.executeRawSparqlUpdate(generatedQuery);
45
64
  }
46
65
  async executeRawSparqlUpdate(query) {
47
- await this.sparqlClient.query.update(query);
66
+ const span = PerformanceLogger_1.PerformanceLogger.startSpan('SPARQL.UPDATE', { query });
67
+ try {
68
+ await this.sparqlClient.query.update(query);
69
+ PerformanceLogger_1.PerformanceLogger.endSpan(span);
70
+ }
71
+ catch (error) {
72
+ PerformanceLogger_1.PerformanceLogger.endSpan(span, { error: true });
73
+ throw error;
74
+ }
48
75
  }
49
76
  async executeAskQueryAndGetResponse(query) {
50
77
  const generatedQuery = this.sparqlGenerator.stringify(query);
51
- return await this.sparqlClient.query.ask(generatedQuery);
78
+ const span = PerformanceLogger_1.PerformanceLogger.startSpan('SPARQL.ASK', { query: generatedQuery });
79
+ try {
80
+ const result = await this.sparqlClient.query.ask(generatedQuery);
81
+ PerformanceLogger_1.PerformanceLogger.endSpan(span, { result });
82
+ return result;
83
+ }
84
+ catch (error) {
85
+ PerformanceLogger_1.PerformanceLogger.endSpan(span, { error: true });
86
+ throw error;
87
+ }
52
88
  }
53
89
  async executeSelectCountAndGetResponse(query) {
54
90
  const generatedQuery = this.sparqlGenerator.stringify(query);
55
- const stream = await this.sparqlClient.query.select(generatedQuery, { operation: 'postUrlencoded' });
56
- return new Promise((resolve, reject) => {
57
- let countValue;
58
- stream.on('data', (row) => {
59
- const { count } = row;
60
- countValue = Number.parseInt(count.value, 10);
91
+ const span = PerformanceLogger_1.PerformanceLogger.startSpan('SPARQL.COUNT', { query: generatedQuery });
92
+ try {
93
+ const stream = await this.sparqlClient.query.select(generatedQuery, { operation: 'postUrlencoded' });
94
+ const countValue = await new Promise((resolve, reject) => {
95
+ let count;
96
+ stream.on('data', (row) => {
97
+ count = Number.parseInt(row.count.value, 10);
98
+ });
99
+ stream.on('end', () => {
100
+ resolve(count);
101
+ });
102
+ stream.on('error', (error) => {
103
+ reject(error);
104
+ });
61
105
  });
62
- stream.on('end', () => {
63
- resolve(countValue);
64
- });
65
- stream.on('error', (error) => {
66
- reject(error);
67
- });
68
- });
106
+ PerformanceLogger_1.PerformanceLogger.endSpan(span, { count: countValue });
107
+ return countValue;
108
+ }
109
+ catch (error) {
110
+ PerformanceLogger_1.PerformanceLogger.endSpan(span, { error: true });
111
+ throw error;
112
+ }
69
113
  }
70
114
  }
71
115
  exports.SparqlEndpointQueryExecutor = SparqlEndpointQueryExecutor;
@@ -1 +1 @@
1
- {"version":3,"file":"SparqlEndpointQueryExecutor.js","sourceRoot":"","sources":["../../../../../src/storage/query-adapter/sparql/query-executor/SparqlEndpointQueryExecutor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SparqlEndpointQueryExecutor.js","sourceRoot":"","sources":["../../../../../src/storage/query-adapter/sparql/query-executor/SparqlEndpointQueryExecutor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ export interface Span {
2
+ id: string;
3
+ parentId?: string;
4
+ name: string;
5
+ startTime: number;
6
+ endTime?: number;
7
+ duration?: number;
8
+ attributes: Record<string, any>;
9
+ children: Span[];
10
+ }
11
+ export declare class PerformanceLogger {
12
+ private static asyncLocalStorage?;
13
+ private static enabled;
14
+ private static initialized;
15
+ private static spanCounter;
16
+ private static initialize;
17
+ private static generateSpanId;
18
+ static startSpan(name: string, attributes?: Record<string, any>): Span;
19
+ static endSpan(span: Span, additionalAttributes?: Record<string, any>): void;
20
+ static withSpan<T>(name: string, fn: () => Promise<T> | T, attributes?: Record<string, any>): Promise<T>;
21
+ static withSpanRoot<T>(name: string, fn: () => Promise<T> | T, attributes?: Record<string, any>): Promise<T>;
22
+ static getCurrentSpan(): Span | undefined;
23
+ static logSpanTree(rootSpan: Span): void;
24
+ private static buildSpanTreeLines;
25
+ private static addAttributeLines;
26
+ private static formatQuery;
27
+ }
@@ -0,0 +1,223 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PerformanceLogger = void 0;
4
+ /* eslint-disable require-unicode-regexp */
5
+ /* eslint-disable @typescript-eslint/naming-convention */
6
+ const perf_hooks_1 = require("perf_hooks");
7
+ let AsyncLocalStorage;
8
+ try {
9
+ // eslint-disable-next-line @typescript-eslint/no-require-imports, prefer-destructuring, global-require, @typescript-eslint/no-var-requires
10
+ AsyncLocalStorage = require('async_hooks').AsyncLocalStorage;
11
+ }
12
+ catch {
13
+ // AsyncLocalStorage not available
14
+ }
15
+ // eslint-disable-next-line @typescript-eslint/no-extraneous-class
16
+ class PerformanceLogger {
17
+ static initialize() {
18
+ if (this.initialized) {
19
+ return;
20
+ }
21
+ this.initialized = true;
22
+ // eslint-disable-next-line no-process-env
23
+ this.enabled = process.env.SKL_ENGINE_DEBUG_QUERIES === 'true' ||
24
+ // eslint-disable-next-line no-process-env
25
+ process.env.SKL_ENGINE_DEBUG_QUERIES === '1';
26
+ if (this.enabled && AsyncLocalStorage) {
27
+ this.asyncLocalStorage = new AsyncLocalStorage();
28
+ }
29
+ }
30
+ static generateSpanId() {
31
+ // eslint-disable-next-line no-plusplus
32
+ return `span-${++this.spanCounter}-${Date.now()}`;
33
+ }
34
+ static startSpan(name, attributes) {
35
+ this.initialize();
36
+ if (!this.enabled) {
37
+ return null;
38
+ }
39
+ const parent = this.asyncLocalStorage?.getStore();
40
+ const span = {
41
+ id: this.generateSpanId(),
42
+ parentId: parent?.id,
43
+ name,
44
+ startTime: perf_hooks_1.performance.now(),
45
+ attributes: attributes ?? {},
46
+ children: []
47
+ };
48
+ if (parent) {
49
+ parent.children.push(span);
50
+ }
51
+ return span;
52
+ }
53
+ static endSpan(span, additionalAttributes) {
54
+ if (!this.enabled || !span) {
55
+ return;
56
+ }
57
+ span.endTime = perf_hooks_1.performance.now();
58
+ span.duration = span.endTime - span.startTime;
59
+ if (additionalAttributes) {
60
+ span.attributes = { ...span.attributes, ...additionalAttributes };
61
+ }
62
+ }
63
+ static async withSpan(name, fn, attributes) {
64
+ this.initialize();
65
+ if (!this.enabled) {
66
+ return fn();
67
+ }
68
+ const span = this.startSpan(name, attributes);
69
+ if (this.asyncLocalStorage) {
70
+ return this.asyncLocalStorage.run(span, async () => {
71
+ try {
72
+ const result = await fn();
73
+ this.endSpan(span);
74
+ return result;
75
+ }
76
+ catch (error) {
77
+ this.endSpan(span, { error: true, errorMessage: error instanceof Error ? error.message : String(error) });
78
+ throw error;
79
+ }
80
+ });
81
+ }
82
+ // Fallback without AsyncLocalStorage
83
+ try {
84
+ const result = await fn();
85
+ this.endSpan(span);
86
+ return result;
87
+ }
88
+ catch (error) {
89
+ this.endSpan(span, { error: true, errorMessage: error instanceof Error ? error.message : String(error) });
90
+ throw error;
91
+ }
92
+ }
93
+ static async withSpanRoot(name, fn, attributes) {
94
+ this.initialize();
95
+ if (!this.enabled) {
96
+ return fn();
97
+ }
98
+ const span = this.startSpan(name, attributes);
99
+ if (this.asyncLocalStorage) {
100
+ return this.asyncLocalStorage.run(span, async () => {
101
+ try {
102
+ const result = await fn();
103
+ this.endSpan(span);
104
+ this.logSpanTree(span);
105
+ return result;
106
+ }
107
+ catch (error) {
108
+ this.endSpan(span, { error: true, errorMessage: error instanceof Error ? error.message : String(error) });
109
+ this.logSpanTree(span);
110
+ throw error;
111
+ }
112
+ });
113
+ }
114
+ // Fallback without AsyncLocalStorage
115
+ try {
116
+ const result = await fn();
117
+ this.endSpan(span);
118
+ this.logSpanTree(span);
119
+ return result;
120
+ }
121
+ catch (error) {
122
+ this.endSpan(span, { error: true, errorMessage: error instanceof Error ? error.message : String(error) });
123
+ this.logSpanTree(span);
124
+ throw error;
125
+ }
126
+ }
127
+ static getCurrentSpan() {
128
+ this.initialize();
129
+ if (!this.enabled || !this.asyncLocalStorage) {
130
+ return undefined;
131
+ }
132
+ return this.asyncLocalStorage.getStore();
133
+ }
134
+ static logSpanTree(rootSpan) {
135
+ if (!this.enabled || !rootSpan) {
136
+ return;
137
+ }
138
+ const timestamp = new Date().toISOString();
139
+ const lines = [];
140
+ lines.push('');
141
+ lines.push('╔══════════════════════════════════════════════════════════════╗');
142
+ lines.push(`║ SKL Engine Performance Trace ║`);
143
+ lines.push(`║ Started: ${timestamp} ║`);
144
+ lines.push('╚══════════════════════════════════════════════════════════════╝');
145
+ lines.push('');
146
+ this.buildSpanTreeLines(rootSpan, lines, '', true);
147
+ lines.push('');
148
+ lines.push('═══════════════════════════════════════════════════════════════');
149
+ lines.push('');
150
+ // eslint-disable-next-line no-console
151
+ console.log(lines.join('\n'));
152
+ }
153
+ static buildSpanTreeLines(span, lines, prefix, isRoot) {
154
+ const duration = span.duration !== undefined ? `${span.duration.toFixed(2)}ms` : 'running...';
155
+ const status = span.attributes.error ? '✗' : '✓';
156
+ lines.push(`${prefix}${span.name} [${duration}] ${status}`);
157
+ // Show important attributes
158
+ this.addAttributeLines(span, lines, prefix);
159
+ // Process children
160
+ const childCount = span.children.length;
161
+ span.children.forEach((child, index) => {
162
+ const isLast = index === childCount - 1;
163
+ const childPrefix = prefix + (isRoot ? '' : '│ ');
164
+ const connector = isLast ? '└─ ' : '├─ ';
165
+ const nextPrefix = prefix + (isRoot ? '' : (isLast ? ' ' : '│ '));
166
+ this.buildSpanTreeLines(child, lines, childPrefix + connector, false);
167
+ });
168
+ }
169
+ static addAttributeLines(span, lines, prefix) {
170
+ const { query, resultCount, options, error, errorMessage, ...otherAttrs } = span.attributes;
171
+ // Show query if present (and format it) - but make it easy to copy
172
+ if (query && typeof query === 'string') {
173
+ lines.push(`${prefix}│ Query:`);
174
+ // Empty line before query
175
+ lines.push('');
176
+ const formattedQuery = this.formatQuery(query);
177
+ formattedQuery.split('\n').forEach(line => {
178
+ // Simple indentation without tree chars
179
+ lines.push(` ${line}`);
180
+ });
181
+ // Empty line after query
182
+ lines.push('');
183
+ }
184
+ // Show result count
185
+ if (resultCount !== undefined) {
186
+ lines.push(`${prefix}│ Result: ${resultCount} ${resultCount === 1 ? 'row' : 'rows'}`);
187
+ }
188
+ // Show error if present
189
+ if (error && errorMessage) {
190
+ lines.push(`${prefix}│ Error: ${errorMessage}`);
191
+ }
192
+ // Show other important attributes
193
+ if (Object.keys(otherAttrs).length > 0) {
194
+ const attrStr = JSON.stringify(otherAttrs);
195
+ if (attrStr.length < 100) {
196
+ lines.push(`${prefix}│ Attributes: ${attrStr}`);
197
+ }
198
+ }
199
+ }
200
+ static formatQuery(query) {
201
+ // Simple query formatting with proper indentation
202
+ let formatted = query.trim();
203
+ // Add line breaks after key SPARQL keywords for readability
204
+ formatted = formatted
205
+ .replace(/\s+/g, ' ')
206
+ .replace(/\s*{\s*/g, ' {\n ')
207
+ .replace(/\s*}\s*/g, '\n}')
208
+ .replace(/\s*\.\s*(?=[?A-Z])/g, ' .\n ')
209
+ .replace(/\bWHERE\b/g, '\nWHERE')
210
+ .replace(/\bFILTER\b/g, '\n FILTER')
211
+ .replace(/\bOPTIONAL\b/g, '\n OPTIONAL')
212
+ .replace(/\bUNION\b/g, '\nUNION')
213
+ .replace(/\bGRAPH\b/g, '\n GRAPH')
214
+ .replace(/\bORDER BY\b/g, '\nORDER BY')
215
+ .replace(/\bLIMIT\b/g, '\nLIMIT')
216
+ .replace(/\bOFFSET\b/g, '\nOFFSET');
217
+ return formatted;
218
+ }
219
+ }
220
+ exports.PerformanceLogger = PerformanceLogger;
221
+ PerformanceLogger.initialized = false;
222
+ PerformanceLogger.spanCounter = 0;
223
+ //# sourceMappingURL=PerformanceLogger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PerformanceLogger.js","sourceRoot":"","sources":["../../src/util/PerformanceLogger.ts"],"names":[],"mappings":";;;AAAA,2CAA2C;AAC3C,yDAAyD;AACzD,2CAAyC;AAazC,IAAI,iBAAsB,CAAC;AAC3B,IAAI;IACF,2IAA2I;IAC3I,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,iBAAiB,CAAC;CAC9D;AAAC,MAAM;IACN,kCAAkC;CACnC;AAED,kEAAkE;AAClE,MAAa,iBAAiB;IAMpB,MAAM,CAAC,UAAU;QACvB,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,OAAO;SACR;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,0CAA0C;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,MAAM;YAC/C,0CAA0C;YAC1C,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,GAAG,CAAC;QAE5D,IAAI,IAAI,CAAC,OAAO,IAAI,iBAAiB,EAAE;YACrC,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;SAClD;IACH,CAAC;IAEO,MAAM,CAAC,cAAc;QAC3B,uCAAuC;QACvC,OAAO,QAAQ,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IACpD,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,IAAY,EAAE,UAAgC;QACpE,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,OAAO,IAAW,CAAC;SACpB;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,QAAQ,EAAE,CAAC;QAElD,MAAM,IAAI,GAAS;YACjB,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE;YACzB,QAAQ,EAAE,MAAM,EAAE,EAAE;YACpB,IAAI;YACJ,SAAS,EAAE,wBAAW,CAAC,GAAG,EAAE;YAC5B,UAAU,EAAE,UAAU,IAAI,EAAE;YAC5B,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC5B;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,IAAU,EAAE,oBAA0C;QAC1E,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE;YAC1B,OAAO;SACR;QAED,IAAI,CAAC,OAAO,GAAG,wBAAW,CAAC,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;QAE9C,IAAI,oBAAoB,EAAE;YACxB,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,oBAAoB,EAAE,CAAC;SACnE;IACH,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAC1B,IAAY,EACZ,EAAwB,EACxB,UAAgC;QAEhC,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,OAAO,EAAE,EAAS,CAAC;SACpB;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAE9C,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,IAAG,EAAE;gBAChD,IAAI;oBACF,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;oBAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACnB,OAAO,MAAM,CAAC;iBACf;gBAAC,OAAO,KAAK,EAAE;oBACd,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAC1G,MAAM,KAAK,CAAC;iBACb;YACH,CAAC,CAAC,CAAC;SACJ;QAED,qCAAqC;QACrC,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO,MAAM,CAAC;SACf;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC1G,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,YAAY,CAC9B,IAAY,EACZ,EAAwB,EACxB,UAAgC;QAEhC,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,OAAO,EAAE,EAAS,CAAC;SACpB;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAE9C,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,IAAG,EAAE;gBAChD,IAAI;oBACF,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;oBAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBACvB,OAAO,MAAM,CAAC;iBACf;gBAAC,OAAO,KAAK,EAAE;oBACd,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAC1G,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBACvB,MAAM,KAAK,CAAC;iBACb;YACH,CAAC,CAAC,CAAC;SACJ;QAED,qCAAqC;QACrC,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACvB,OAAO,MAAM,CAAC;SACf;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC1G,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACvB,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IAEM,MAAM,CAAC,cAAc;QAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC5C,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,QAAc;QACtC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,EAAE;YAC9B,OAAO;SACR;QAED,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QAC/E,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QAC/E,KAAK,CAAC,IAAI,CAAC,cAAc,SAAS,+BAA+B,CAAC,CAAC;QACnE,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QAC/E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAEnD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;QAC9E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAEO,MAAM,CAAC,kBAAkB,CAC/B,IAAU,EACV,KAAe,EACf,MAAc,EACd,MAAe;QAEf,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;QAC9F,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAEjD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,QAAQ,KAAK,MAAM,EAAE,CAAC,CAAC;QAE5D,4BAA4B;QAC5B,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAE5C,mBAAmB;QACnB,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,KAAK,KAAK,UAAU,GAAG,CAAC,CAAC;YACxC,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACnD,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YACzC,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAErE,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,iBAAiB,CAAC,IAAU,EAAE,KAAe,EAAE,MAAc;QAC1E,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QAE5F,mEAAmE;QACnE,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACtC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,WAAW,CAAC,CAAC;YACjC,0BAA0B;YAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC/C,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACxC,wCAAwC;gBACxC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;YACH,yBAAyB;YACzB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAChB;QAED,oBAAoB;QACpB,IAAI,WAAW,KAAK,SAAS,EAAE;YAC7B,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,cAAc,WAAW,IAAI,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;SACxF;QAED,wBAAwB;QACxB,IAAI,KAAK,IAAI,YAAY,EAAE;YACzB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,aAAa,YAAY,EAAE,CAAC,CAAC;SAClD;QAED,kCAAkC;QAClC,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YACtC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAC3C,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE;gBACxB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,kBAAkB,OAAO,EAAE,CAAC,CAAC;aAClD;SACF;IACH,CAAC;IAEO,MAAM,CAAC,WAAW,CAAC,KAAa;QACtC,kDAAkD;QAClD,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAE7B,4DAA4D;QAC5D,SAAS,GAAG,SAAS;aAClB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC;aAC7B,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC;aAC1B,OAAO,CAAC,qBAAqB,EAAE,QAAQ,CAAC;aACxC,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC;aAChC,OAAO,CAAC,aAAa,EAAE,YAAY,CAAC;aACpC,OAAO,CAAC,eAAe,EAAE,cAAc,CAAC;aACxC,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC;aAChC,OAAO,CAAC,YAAY,EAAE,WAAW,CAAC;aAClC,OAAO,CAAC,eAAe,EAAE,YAAY,CAAC;aACtC,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC;aAChC,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAEtC,OAAO,SAAS,CAAC;IACnB,CAAC;;AAnQH,8CAoQC;AAjQgB,6BAAW,GAAG,KAAK,CAAC;AACpB,6BAAW,GAAG,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@comake/skl-js-engine",
3
- "version": "1.3.7",
3
+ "version": "1.3.8",
4
4
  "description": "Standard Knowledge Language Javascript Engine",
5
5
  "keywords": [
6
6
  "skl",