@memberjunction/react-test-harness 3.3.0 → 4.0.0
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/cli/index.js +38 -66
- package/dist/cli/index.js.map +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.js +7 -17
- package/dist/index.js.map +1 -1
- package/dist/lib/assertion-helpers.js +1 -5
- package/dist/lib/assertion-helpers.js.map +1 -1
- package/dist/lib/browser-context.d.ts +0 -1
- package/dist/lib/browser-context.d.ts.map +1 -1
- package/dist/lib/browser-context.js +3 -7
- package/dist/lib/browser-context.js.map +1 -1
- package/dist/lib/component-linter.d.ts +1 -1
- package/dist/lib/component-linter.js +8759 -8789
- package/dist/lib/component-linter.js.map +1 -1
- package/dist/lib/component-runner.d.ts +2 -3
- package/dist/lib/component-runner.d.ts.map +1 -1
- package/dist/lib/component-runner.js +43 -70
- package/dist/lib/component-runner.js.map +1 -1
- package/dist/lib/constraint-validators/base-constraint-validator.d.ts +2 -2
- package/dist/lib/constraint-validators/base-constraint-validator.js +4 -8
- package/dist/lib/constraint-validators/base-constraint-validator.js.map +1 -1
- package/dist/lib/constraint-validators/index.d.ts +5 -5
- package/dist/lib/constraint-validators/index.js +5 -21
- package/dist/lib/constraint-validators/index.js.map +1 -1
- package/dist/lib/constraint-validators/required-when-validator.d.ts +2 -2
- package/dist/lib/constraint-validators/required-when-validator.js +6 -9
- package/dist/lib/constraint-validators/required-when-validator.js.map +1 -1
- package/dist/lib/constraint-validators/sql-where-clause-validator.d.ts +2 -2
- package/dist/lib/constraint-validators/sql-where-clause-validator.d.ts.map +1 -1
- package/dist/lib/constraint-validators/sql-where-clause-validator.js +28 -29
- package/dist/lib/constraint-validators/sql-where-clause-validator.js.map +1 -1
- package/dist/lib/constraint-validators/subset-of-entity-fields-validator.d.ts +2 -2
- package/dist/lib/constraint-validators/subset-of-entity-fields-validator.js +6 -9
- package/dist/lib/constraint-validators/subset-of-entity-fields-validator.js.map +1 -1
- package/dist/lib/constraint-validators/validation-context.d.ts +2 -2
- package/dist/lib/constraint-validators/validation-context.js +1 -2
- package/dist/lib/constraint-validators/validation-context.js.map +1 -1
- package/dist/lib/control-flow-analyzer.js +4 -31
- package/dist/lib/control-flow-analyzer.js.map +1 -1
- package/dist/lib/library-lint-cache.js +4 -8
- package/dist/lib/library-lint-cache.js.map +1 -1
- package/dist/lib/linter-test-tool.js +10 -37
- package/dist/lib/linter-test-tool.js.map +1 -1
- package/dist/lib/prop-value-extractor.js +2 -29
- package/dist/lib/prop-value-extractor.js.map +1 -1
- package/dist/lib/styles-type-analyzer.js +6 -33
- package/dist/lib/styles-type-analyzer.js.map +1 -1
- package/dist/lib/test-broken-7.d.ts +2 -0
- package/dist/lib/test-broken-7.d.ts.map +1 -0
- package/dist/lib/test-broken-7.js +73 -0
- package/dist/lib/test-broken-7.js.map +1 -0
- package/dist/lib/test-broken-9.d.ts +3 -0
- package/dist/lib/test-broken-9.d.ts.map +1 -0
- package/dist/lib/test-broken-9.js +122 -0
- package/dist/lib/test-broken-9.js.map +1 -0
- package/dist/lib/test-harness.d.ts +4 -5
- package/dist/lib/test-harness.d.ts.map +1 -1
- package/dist/lib/test-harness.js +11 -38
- package/dist/lib/test-harness.js.map +1 -1
- package/dist/lib/type-context.d.ts.map +1 -1
- package/dist/lib/type-context.js +7 -14
- package/dist/lib/type-context.js.map +1 -1
- package/dist/lib/type-inference-engine.d.ts +1 -1
- package/dist/lib/type-inference-engine.js +46 -77
- package/dist/lib/type-inference-engine.js.map +1 -1
- package/package.json +21 -21
package/dist/lib/test-harness.js
CHANGED
|
@@ -1,32 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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 (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.ReactTestHarness = void 0;
|
|
27
|
-
const browser_context_1 = require("./browser-context");
|
|
28
|
-
const component_runner_1 = require("./component-runner");
|
|
29
|
-
const assertion_helpers_1 = require("./assertion-helpers");
|
|
1
|
+
import { BrowserManager } from './browser-context.js';
|
|
2
|
+
import { ComponentRunner } from './component-runner.js';
|
|
3
|
+
import { AssertionHelpers } from './assertion-helpers.js';
|
|
30
4
|
/**
|
|
31
5
|
* React Test Harness for testing React components in an isolated browser environment
|
|
32
6
|
*
|
|
@@ -53,7 +27,7 @@ const assertion_helpers_1 = require("./assertion-helpers");
|
|
|
53
27
|
* await harness.initialize();
|
|
54
28
|
* const results = await Promise.all(tests.map(test => harness.testComponent(test)));
|
|
55
29
|
*/
|
|
56
|
-
class ReactTestHarness {
|
|
30
|
+
export class ReactTestHarness {
|
|
57
31
|
constructor(options = {}) {
|
|
58
32
|
this.options = {
|
|
59
33
|
headless: true,
|
|
@@ -61,8 +35,8 @@ class ReactTestHarness {
|
|
|
61
35
|
screenshotOnError: true,
|
|
62
36
|
...options
|
|
63
37
|
};
|
|
64
|
-
this.browserManager = new
|
|
65
|
-
this.componentRunner = new
|
|
38
|
+
this.browserManager = new BrowserManager(this.options);
|
|
39
|
+
this.componentRunner = new ComponentRunner(this.browserManager);
|
|
66
40
|
}
|
|
67
41
|
async initialize() {
|
|
68
42
|
await this.browserManager.initialize();
|
|
@@ -104,7 +78,7 @@ class ReactTestHarness {
|
|
|
104
78
|
}
|
|
105
79
|
if (!result.success && this.options.screenshotOnError && result.screenshot) {
|
|
106
80
|
const screenshotPath = this.options.screenshotPath || './error-screenshot.png';
|
|
107
|
-
const fs = await
|
|
81
|
+
const fs = await import('fs');
|
|
108
82
|
// Ensure the screenshot Buffer is properly typed for writeFileSync
|
|
109
83
|
fs.writeFileSync(screenshotPath, result.screenshot);
|
|
110
84
|
console.log(`Screenshot saved to: ${screenshotPath}`);
|
|
@@ -142,8 +116,8 @@ class ReactTestHarness {
|
|
|
142
116
|
* This is a convenience method for the CLI
|
|
143
117
|
*/
|
|
144
118
|
async testComponentFromFile(filePath, props, options) {
|
|
145
|
-
const fs = await
|
|
146
|
-
const path = await
|
|
119
|
+
const fs = await import('fs');
|
|
120
|
+
const path = await import('path');
|
|
147
121
|
const absolutePath = path.resolve(filePath);
|
|
148
122
|
if (!fs.existsSync(absolutePath)) {
|
|
149
123
|
throw new Error(`Component file not found: ${absolutePath}`);
|
|
@@ -210,10 +184,10 @@ class ReactTestHarness {
|
|
|
210
184
|
return { total, passed, failed, duration, results };
|
|
211
185
|
}
|
|
212
186
|
getAssertionHelpers() {
|
|
213
|
-
return
|
|
187
|
+
return AssertionHelpers;
|
|
214
188
|
}
|
|
215
189
|
createMatcher(html) {
|
|
216
|
-
return
|
|
190
|
+
return AssertionHelpers.createMatcher(html);
|
|
217
191
|
}
|
|
218
192
|
async close() {
|
|
219
193
|
await this.browserManager.close();
|
|
@@ -231,5 +205,4 @@ class ReactTestHarness {
|
|
|
231
205
|
return await this.browserManager.evaluateInPage(fn, ...args);
|
|
232
206
|
}
|
|
233
207
|
}
|
|
234
|
-
exports.ReactTestHarness = ReactTestHarness;
|
|
235
208
|
//# sourceMappingURL=test-harness.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-harness.js","sourceRoot":"","sources":["../../src/lib/test-harness.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"test-harness.js","sourceRoot":"","sources":["../../src/lib/test-harness.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-context.d.ts","sourceRoot":"","sources":["../../src/lib/type-context.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAA+B,QAAQ,EAAY,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAE,aAAa,EAAiC,MAAM,6CAA6C,CAAC;AAE3G;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,kGAAkG;IAClG,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACpC,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,QAAQ,CAAC;IAC5B,gGAAgG;IAChG,eAAe,CAAC,EAAE,QAAQ,CAAC;IAC3B,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yDAAyD;IACzD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,yGAAyG;IACzG,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,YAAY,EAAE,OAAO,CAAC;IACtB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAwC1D;AAED;;;;;;;;GAQG;AACH,qBAAa,WAAW;IAOV,OAAO,CAAC,aAAa,CAAC;IANlC,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,gBAAgB,CAAsD;IAC9E,OAAO,CAAC,eAAe,CAAsD;IAC7E,OAAO,CAAC,eAAe,CAA+C;gBAElD,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"type-context.d.ts","sourceRoot":"","sources":["../../src/lib/type-context.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/type-context.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Type Context - Variable type tracking for component linting
|
|
4
3
|
*
|
|
@@ -6,13 +5,11 @@
|
|
|
6
5
|
* component code. It integrates with entity metadata and query specs to provide
|
|
7
6
|
* type information for data-driven type checking.
|
|
8
7
|
*/
|
|
9
|
-
|
|
10
|
-
exports.describeType = exports.areTypesCompatible = exports.StandardTypes = exports.TypeContext = exports.mapSQLTypeToJSType = void 0;
|
|
11
|
-
const core_1 = require("@memberjunction/core");
|
|
8
|
+
import { Metadata } from '@memberjunction/core';
|
|
12
9
|
/**
|
|
13
10
|
* Maps SQL Server types to JavaScript types
|
|
14
11
|
*/
|
|
15
|
-
function mapSQLTypeToJSType(sqlType) {
|
|
12
|
+
export function mapSQLTypeToJSType(sqlType) {
|
|
16
13
|
const type = sqlType.toLowerCase();
|
|
17
14
|
// If already a JavaScript type, return it directly
|
|
18
15
|
// This handles cases where query metadata provides JS types instead of SQL types
|
|
@@ -45,7 +42,6 @@ function mapSQLTypeToJSType(sqlType) {
|
|
|
45
42
|
}
|
|
46
43
|
return 'unknown';
|
|
47
44
|
}
|
|
48
|
-
exports.mapSQLTypeToJSType = mapSQLTypeToJSType;
|
|
49
45
|
/**
|
|
50
46
|
* TypeContext - Tracks variable types throughout component code
|
|
51
47
|
*
|
|
@@ -55,7 +51,7 @@ exports.mapSQLTypeToJSType = mapSQLTypeToJSType;
|
|
|
55
51
|
* - RunView/RunQuery result structure
|
|
56
52
|
* - Variable assignment tracking
|
|
57
53
|
*/
|
|
58
|
-
class TypeContext {
|
|
54
|
+
export class TypeContext {
|
|
59
55
|
constructor(componentSpec) {
|
|
60
56
|
this.componentSpec = componentSpec;
|
|
61
57
|
this.variableTypes = new Map();
|
|
@@ -141,7 +137,7 @@ class TypeContext {
|
|
|
141
137
|
}
|
|
142
138
|
const fields = new Map();
|
|
143
139
|
try {
|
|
144
|
-
const md = new
|
|
140
|
+
const md = new Metadata();
|
|
145
141
|
const entity = md.Entities.find(e => e.Name === entityName);
|
|
146
142
|
if (entity) {
|
|
147
143
|
for (const field of entity.Fields) {
|
|
@@ -348,11 +344,10 @@ class TypeContext {
|
|
|
348
344
|
};
|
|
349
345
|
}
|
|
350
346
|
}
|
|
351
|
-
exports.TypeContext = TypeContext;
|
|
352
347
|
/**
|
|
353
348
|
* Standard type definitions for common patterns
|
|
354
349
|
*/
|
|
355
|
-
|
|
350
|
+
export const StandardTypes = {
|
|
356
351
|
string: { type: 'string' },
|
|
357
352
|
number: { type: 'number' },
|
|
358
353
|
boolean: { type: 'boolean' },
|
|
@@ -368,7 +363,7 @@ exports.StandardTypes = {
|
|
|
368
363
|
/**
|
|
369
364
|
* Helper to check if two types are compatible
|
|
370
365
|
*/
|
|
371
|
-
function areTypesCompatible(expected, actual) {
|
|
366
|
+
export function areTypesCompatible(expected, actual) {
|
|
372
367
|
// Unknown types are always compatible (we can't prove they're wrong)
|
|
373
368
|
if (expected.type === 'unknown' || actual.type === 'unknown') {
|
|
374
369
|
return true;
|
|
@@ -387,11 +382,10 @@ function areTypesCompatible(expected, actual) {
|
|
|
387
382
|
}
|
|
388
383
|
return false;
|
|
389
384
|
}
|
|
390
|
-
exports.areTypesCompatible = areTypesCompatible;
|
|
391
385
|
/**
|
|
392
386
|
* Get a human-readable description of a type
|
|
393
387
|
*/
|
|
394
|
-
function describeType(type) {
|
|
388
|
+
export function describeType(type) {
|
|
395
389
|
if (type.entityName) {
|
|
396
390
|
return `${type.entityName} row`;
|
|
397
391
|
}
|
|
@@ -403,5 +397,4 @@ function describeType(type) {
|
|
|
403
397
|
}
|
|
404
398
|
return type.type;
|
|
405
399
|
}
|
|
406
|
-
exports.describeType = describeType;
|
|
407
400
|
//# sourceMappingURL=type-context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-context.js","sourceRoot":"","sources":["../../src/lib/type-context.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"type-context.js","sourceRoot":"","sources":["../../src/lib/type-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import { NodePath } from '@babel/traverse';
|
|
|
9
9
|
import * as t from '@babel/types';
|
|
10
10
|
import { ComponentSpec } from '@memberjunction/interactive-component-types';
|
|
11
11
|
import { UserInfo } from '@memberjunction/core';
|
|
12
|
-
import { TypeContext, TypeInfo } from './type-context';
|
|
12
|
+
import { TypeContext, TypeInfo } from './type-context.js';
|
|
13
13
|
/**
|
|
14
14
|
* Result of type inference analysis
|
|
15
15
|
*/
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Type Inference Engine - AST-based type inference for component linting
|
|
4
3
|
*
|
|
@@ -6,47 +5,19 @@
|
|
|
6
5
|
* component code. It integrates with TypeContext to provide comprehensive
|
|
7
6
|
* type information for validation rules.
|
|
8
7
|
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
-
}
|
|
15
|
-
Object.defineProperty(o, k2, desc);
|
|
16
|
-
}) : (function(o, m, k, k2) {
|
|
17
|
-
if (k2 === undefined) k2 = k;
|
|
18
|
-
o[k2] = m[k];
|
|
19
|
-
}));
|
|
20
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
-
}) : function(o, v) {
|
|
23
|
-
o["default"] = v;
|
|
24
|
-
});
|
|
25
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
26
|
-
if (mod && mod.__esModule) return mod;
|
|
27
|
-
var result = {};
|
|
28
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
29
|
-
__setModuleDefault(result, mod);
|
|
30
|
-
return result;
|
|
31
|
-
};
|
|
32
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
33
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
34
|
-
};
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.analyzeTypes = exports.TypeInferenceEngine = void 0;
|
|
37
|
-
const traverse_1 = __importDefault(require("@babel/traverse"));
|
|
38
|
-
const t = __importStar(require("@babel/types"));
|
|
39
|
-
const type_context_1 = require("./type-context");
|
|
8
|
+
import traverse from '@babel/traverse';
|
|
9
|
+
import * as t from '@babel/types';
|
|
10
|
+
import { TypeContext, StandardTypes, mapSQLTypeToJSType, areTypesCompatible } from './type-context.js';
|
|
40
11
|
/**
|
|
41
12
|
* TypeInferenceEngine - Analyzes AST to infer and track types
|
|
42
13
|
*/
|
|
43
|
-
class TypeInferenceEngine {
|
|
14
|
+
export class TypeInferenceEngine {
|
|
44
15
|
constructor(componentSpec, contextUser) {
|
|
45
16
|
this.errors = [];
|
|
46
17
|
this.functionReturnTypes = new Map();
|
|
47
18
|
this.componentSpec = componentSpec;
|
|
48
19
|
this.contextUser = contextUser;
|
|
49
|
-
this.typeContext = new
|
|
20
|
+
this.typeContext = new TypeContext(componentSpec);
|
|
50
21
|
}
|
|
51
22
|
/**
|
|
52
23
|
* Analyze an AST and build type context
|
|
@@ -79,7 +50,7 @@ class TypeInferenceEngine {
|
|
|
79
50
|
async collectVariableTypes(ast) {
|
|
80
51
|
const self = this;
|
|
81
52
|
let functionCounter = 0; // Counter for anonymous functions
|
|
82
|
-
(
|
|
53
|
+
traverse(ast, {
|
|
83
54
|
// Track variable declarations
|
|
84
55
|
VariableDeclarator(path) {
|
|
85
56
|
self.inferDeclaratorType(path);
|
|
@@ -183,7 +154,7 @@ class TypeInferenceEngine {
|
|
|
183
154
|
for (const param of params) {
|
|
184
155
|
if (t.isIdentifier(param)) {
|
|
185
156
|
// Simple parameter - unknown type
|
|
186
|
-
this.typeContext.setVariableType(param.name,
|
|
157
|
+
this.typeContext.setVariableType(param.name, StandardTypes.unknown);
|
|
187
158
|
}
|
|
188
159
|
else if (t.isObjectPattern(param)) {
|
|
189
160
|
// Destructured props - this is the common component pattern
|
|
@@ -198,7 +169,7 @@ class TypeInferenceEngine {
|
|
|
198
169
|
const params = path.node.params;
|
|
199
170
|
for (const param of params) {
|
|
200
171
|
if (t.isIdentifier(param)) {
|
|
201
|
-
this.typeContext.setVariableType(param.name,
|
|
172
|
+
this.typeContext.setVariableType(param.name, StandardTypes.unknown);
|
|
202
173
|
}
|
|
203
174
|
else if (t.isObjectPattern(param)) {
|
|
204
175
|
this.inferComponentPropsTypes(param);
|
|
@@ -257,7 +228,7 @@ class TypeInferenceEngine {
|
|
|
257
228
|
this.typeContext.setVariableType(propName, { type: 'function', nullable: true });
|
|
258
229
|
}
|
|
259
230
|
else {
|
|
260
|
-
this.typeContext.setVariableType(propName,
|
|
231
|
+
this.typeContext.setVariableType(propName, StandardTypes.unknown);
|
|
261
232
|
}
|
|
262
233
|
}
|
|
263
234
|
}
|
|
@@ -292,7 +263,7 @@ class TypeInferenceEngine {
|
|
|
292
263
|
}
|
|
293
264
|
}
|
|
294
265
|
// No return statement found or void function
|
|
295
|
-
this.functionReturnTypes.set(functionName,
|
|
266
|
+
this.functionReturnTypes.set(functionName, StandardTypes.unknown);
|
|
296
267
|
}
|
|
297
268
|
/**
|
|
298
269
|
* Analyze common object-building patterns in function bodies
|
|
@@ -404,7 +375,7 @@ class TypeInferenceEngine {
|
|
|
404
375
|
this.typeContext.setVariableType(varName, { type: fieldType.type, nullable: fieldType.nullable });
|
|
405
376
|
}
|
|
406
377
|
else {
|
|
407
|
-
this.typeContext.setVariableType(varName,
|
|
378
|
+
this.typeContext.setVariableType(varName, StandardTypes.unknown);
|
|
408
379
|
}
|
|
409
380
|
}
|
|
410
381
|
else if (t.isRestElement(prop) && t.isIdentifier(prop.argument)) {
|
|
@@ -426,7 +397,7 @@ class TypeInferenceEngine {
|
|
|
426
397
|
this.typeContext.setVariableType(element.name, sourceType.arrayElementType);
|
|
427
398
|
}
|
|
428
399
|
else {
|
|
429
|
-
this.typeContext.setVariableType(element.name,
|
|
400
|
+
this.typeContext.setVariableType(element.name, StandardTypes.unknown);
|
|
430
401
|
}
|
|
431
402
|
}
|
|
432
403
|
else if (t.isRestElement(element) && t.isIdentifier(element.argument)) {
|
|
@@ -444,20 +415,20 @@ class TypeInferenceEngine {
|
|
|
444
415
|
inferExpressionType(node, path) {
|
|
445
416
|
// Literals - now track actual values for constant analysis
|
|
446
417
|
if (t.isStringLiteral(node)) {
|
|
447
|
-
return { ...
|
|
418
|
+
return { ...StandardTypes.string, literalValue: node.value };
|
|
448
419
|
}
|
|
449
420
|
if (t.isTemplateLiteral(node)) {
|
|
450
421
|
// For template literals, we can't always know the final value
|
|
451
|
-
return
|
|
422
|
+
return StandardTypes.string;
|
|
452
423
|
}
|
|
453
424
|
if (t.isNumericLiteral(node)) {
|
|
454
|
-
return { ...
|
|
425
|
+
return { ...StandardTypes.number, literalValue: node.value };
|
|
455
426
|
}
|
|
456
427
|
if (t.isBooleanLiteral(node)) {
|
|
457
|
-
return { ...
|
|
428
|
+
return { ...StandardTypes.boolean, literalValue: node.value };
|
|
458
429
|
}
|
|
459
430
|
if (t.isNullLiteral(node)) {
|
|
460
|
-
return { ...
|
|
431
|
+
return { ...StandardTypes.null, literalValue: null };
|
|
461
432
|
}
|
|
462
433
|
if (t.isArrayExpression(node)) {
|
|
463
434
|
return this.inferArrayType(node, path);
|
|
@@ -467,11 +438,11 @@ class TypeInferenceEngine {
|
|
|
467
438
|
}
|
|
468
439
|
// Identifiers (variable references)
|
|
469
440
|
if (t.isIdentifier(node)) {
|
|
470
|
-
return this.typeContext.getVariableType(node.name) ||
|
|
441
|
+
return this.typeContext.getVariableType(node.name) || StandardTypes.unknown;
|
|
471
442
|
}
|
|
472
443
|
// Function expressions
|
|
473
444
|
if (t.isFunctionExpression(node) || t.isArrowFunctionExpression(node)) {
|
|
474
|
-
return
|
|
445
|
+
return StandardTypes.function;
|
|
475
446
|
}
|
|
476
447
|
// Call expressions
|
|
477
448
|
if (t.isCallExpression(node)) {
|
|
@@ -498,10 +469,10 @@ class TypeInferenceEngine {
|
|
|
498
469
|
// Return the type of the consequent (or alternate if different, return unknown)
|
|
499
470
|
const consequentType = this.inferExpressionType(node.consequent, path);
|
|
500
471
|
const alternateType = this.inferExpressionType(node.alternate, path);
|
|
501
|
-
if (
|
|
472
|
+
if (areTypesCompatible(consequentType, alternateType)) {
|
|
502
473
|
return consequentType;
|
|
503
474
|
}
|
|
504
|
-
return
|
|
475
|
+
return StandardTypes.unknown;
|
|
505
476
|
}
|
|
506
477
|
// Logical expressions (&&, ||, ??)
|
|
507
478
|
if (t.isLogicalExpression(node)) {
|
|
@@ -514,14 +485,14 @@ class TypeInferenceEngine {
|
|
|
514
485
|
if (t.isAwaitExpression(node)) {
|
|
515
486
|
return this.inferExpressionType(node.argument, path);
|
|
516
487
|
}
|
|
517
|
-
return
|
|
488
|
+
return StandardTypes.unknown;
|
|
518
489
|
}
|
|
519
490
|
/**
|
|
520
491
|
* Infer type for array expressions
|
|
521
492
|
*/
|
|
522
493
|
inferArrayType(node, path) {
|
|
523
494
|
if (node.elements.length === 0) {
|
|
524
|
-
return { type: 'array', arrayElementType:
|
|
495
|
+
return { type: 'array', arrayElementType: StandardTypes.unknown };
|
|
525
496
|
}
|
|
526
497
|
// Try to infer element type from first element
|
|
527
498
|
const firstElement = node.elements[0];
|
|
@@ -529,7 +500,7 @@ class TypeInferenceEngine {
|
|
|
529
500
|
const elementType = this.inferExpressionType(firstElement, path);
|
|
530
501
|
return { type: 'array', arrayElementType: elementType };
|
|
531
502
|
}
|
|
532
|
-
return { type: 'array', arrayElementType:
|
|
503
|
+
return { type: 'array', arrayElementType: StandardTypes.unknown };
|
|
533
504
|
}
|
|
534
505
|
/**
|
|
535
506
|
* Infer type for object expressions
|
|
@@ -634,7 +605,7 @@ class TypeInferenceEngine {
|
|
|
634
605
|
};
|
|
635
606
|
}
|
|
636
607
|
// Fallback: unknown array
|
|
637
|
-
return { type: 'array', arrayElementType:
|
|
608
|
+
return { type: 'array', arrayElementType: StandardTypes.unknown };
|
|
638
609
|
}
|
|
639
610
|
// Array methods that return arrays
|
|
640
611
|
if (t.isMemberExpression(node.callee) && t.isIdentifier(node.callee.property)) {
|
|
@@ -645,7 +616,7 @@ class TypeInferenceEngine {
|
|
|
645
616
|
if (arrayType.type === 'array') {
|
|
646
617
|
// For map, the element type might change
|
|
647
618
|
if (methodName === 'map') {
|
|
648
|
-
return { type: 'array', arrayElementType:
|
|
619
|
+
return { type: 'array', arrayElementType: StandardTypes.unknown };
|
|
649
620
|
}
|
|
650
621
|
return arrayType;
|
|
651
622
|
}
|
|
@@ -659,14 +630,14 @@ class TypeInferenceEngine {
|
|
|
659
630
|
}
|
|
660
631
|
// Methods that return numbers
|
|
661
632
|
if (['indexOf', 'findIndex', 'length'].includes(methodName)) {
|
|
662
|
-
return
|
|
633
|
+
return StandardTypes.number;
|
|
663
634
|
}
|
|
664
635
|
// Methods that return booleans
|
|
665
636
|
if (['includes', 'some', 'every'].includes(methodName)) {
|
|
666
|
-
return
|
|
637
|
+
return StandardTypes.boolean;
|
|
667
638
|
}
|
|
668
639
|
}
|
|
669
|
-
return
|
|
640
|
+
return StandardTypes.unknown;
|
|
670
641
|
}
|
|
671
642
|
/**
|
|
672
643
|
* Infer type for new expressions (constructor calls)
|
|
@@ -681,7 +652,7 @@ class TypeInferenceEngine {
|
|
|
681
652
|
}
|
|
682
653
|
// Array constructor
|
|
683
654
|
if (constructorName === 'Array') {
|
|
684
|
-
return { type: 'array', arrayElementType:
|
|
655
|
+
return { type: 'array', arrayElementType: StandardTypes.unknown };
|
|
685
656
|
}
|
|
686
657
|
// Object constructor
|
|
687
658
|
if (constructorName === 'Object') {
|
|
@@ -704,7 +675,7 @@ class TypeInferenceEngine {
|
|
|
704
675
|
return { type: 'Error', fromMetadata: false };
|
|
705
676
|
}
|
|
706
677
|
}
|
|
707
|
-
return
|
|
678
|
+
return StandardTypes.unknown;
|
|
708
679
|
}
|
|
709
680
|
/**
|
|
710
681
|
* Infer type for RunView result
|
|
@@ -765,7 +736,7 @@ class TypeInferenceEngine {
|
|
|
765
736
|
const extParam = param;
|
|
766
737
|
if (extParam.type) {
|
|
767
738
|
paramTypeMap.set(param.name.toLowerCase(), {
|
|
768
|
-
type:
|
|
739
|
+
type: mapSQLTypeToJSType(extParam.type),
|
|
769
740
|
sqlType: extParam.type,
|
|
770
741
|
isRequired: extParam.isRequired === true
|
|
771
742
|
});
|
|
@@ -979,10 +950,10 @@ class TypeInferenceEngine {
|
|
|
979
950
|
}
|
|
980
951
|
// Array length
|
|
981
952
|
if (propName === 'length' && objectType.type === 'array') {
|
|
982
|
-
return
|
|
953
|
+
return StandardTypes.number;
|
|
983
954
|
}
|
|
984
955
|
}
|
|
985
|
-
return
|
|
956
|
+
return StandardTypes.unknown;
|
|
986
957
|
}
|
|
987
958
|
/**
|
|
988
959
|
* Infer type for binary expressions
|
|
@@ -991,28 +962,28 @@ class TypeInferenceEngine {
|
|
|
991
962
|
const operator = node.operator;
|
|
992
963
|
// Comparison operators always return boolean
|
|
993
964
|
if (['==', '!=', '===', '!==', '<', '<=', '>', '>=', 'in', 'instanceof'].includes(operator)) {
|
|
994
|
-
return
|
|
965
|
+
return StandardTypes.boolean;
|
|
995
966
|
}
|
|
996
967
|
// Arithmetic operators return number
|
|
997
968
|
if (['-', '*', '/', '%', '**', '|', '&', '^', '<<', '>>', '>>>'].includes(operator)) {
|
|
998
|
-
return
|
|
969
|
+
return StandardTypes.number;
|
|
999
970
|
}
|
|
1000
971
|
// + can be string or number
|
|
1001
972
|
if (operator === '+') {
|
|
1002
973
|
// node.left can be PrivateName in some cases, skip type inference for those
|
|
1003
974
|
if (t.isPrivateName(node.left)) {
|
|
1004
|
-
return
|
|
975
|
+
return StandardTypes.unknown;
|
|
1005
976
|
}
|
|
1006
977
|
const leftType = this.inferExpressionType(node.left, path);
|
|
1007
978
|
const rightType = this.inferExpressionType(node.right, path);
|
|
1008
979
|
if (leftType.type === 'string' || rightType.type === 'string') {
|
|
1009
|
-
return
|
|
980
|
+
return StandardTypes.string;
|
|
1010
981
|
}
|
|
1011
982
|
if (leftType.type === 'number' && rightType.type === 'number') {
|
|
1012
|
-
return
|
|
983
|
+
return StandardTypes.number;
|
|
1013
984
|
}
|
|
1014
985
|
}
|
|
1015
|
-
return
|
|
986
|
+
return StandardTypes.unknown;
|
|
1016
987
|
}
|
|
1017
988
|
/**
|
|
1018
989
|
* Infer type for unary expressions
|
|
@@ -1020,18 +991,18 @@ class TypeInferenceEngine {
|
|
|
1020
991
|
inferUnaryExpressionType(node) {
|
|
1021
992
|
const operator = node.operator;
|
|
1022
993
|
if (operator === '!') {
|
|
1023
|
-
return
|
|
994
|
+
return StandardTypes.boolean;
|
|
1024
995
|
}
|
|
1025
996
|
if (operator === 'typeof') {
|
|
1026
|
-
return
|
|
997
|
+
return StandardTypes.string;
|
|
1027
998
|
}
|
|
1028
999
|
if (['+', '-', '~'].includes(operator)) {
|
|
1029
|
-
return
|
|
1000
|
+
return StandardTypes.number;
|
|
1030
1001
|
}
|
|
1031
1002
|
if (operator === 'void') {
|
|
1032
|
-
return
|
|
1003
|
+
return StandardTypes.undefined;
|
|
1033
1004
|
}
|
|
1034
|
-
return
|
|
1005
|
+
return StandardTypes.unknown;
|
|
1035
1006
|
}
|
|
1036
1007
|
/**
|
|
1037
1008
|
* Get inferred type for a variable by name
|
|
@@ -1047,13 +1018,11 @@ class TypeInferenceEngine {
|
|
|
1047
1018
|
return actualType.type === expectedType;
|
|
1048
1019
|
}
|
|
1049
1020
|
}
|
|
1050
|
-
exports.TypeInferenceEngine = TypeInferenceEngine;
|
|
1051
1021
|
/**
|
|
1052
1022
|
* Convenience function to analyze an AST and return type context
|
|
1053
1023
|
*/
|
|
1054
|
-
async function analyzeTypes(ast, componentSpec, contextUser) {
|
|
1024
|
+
export async function analyzeTypes(ast, componentSpec, contextUser) {
|
|
1055
1025
|
const engine = new TypeInferenceEngine(componentSpec, contextUser);
|
|
1056
1026
|
return engine.analyze(ast);
|
|
1057
1027
|
}
|
|
1058
|
-
exports.analyzeTypes = analyzeTypes;
|
|
1059
1028
|
//# sourceMappingURL=type-inference-engine.js.map
|