fhirpath-ts 0.2.0 → 0.2.2
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/README.md +12 -5
- package/dist/analyzer/analyze-dto.d.ts.map +1 -1
- package/dist/analyzer/analyze-dto.js +14 -8
- package/dist/analyzer/analyze-dto.js.map +1 -1
- package/dist/analyzer/analyze.d.ts +23 -12
- package/dist/analyzer/analyze.d.ts.map +1 -1
- package/dist/analyzer/analyze.js +138 -46
- package/dist/analyzer/analyze.js.map +1 -1
- package/dist/analyzer/declarations.d.ts +6 -0
- package/dist/analyzer/declarations.d.ts.map +1 -1
- package/dist/analyzer/declarations.js +7 -0
- package/dist/analyzer/declarations.js.map +1 -1
- package/dist/analyzer/expression-policy.d.ts +88 -14
- package/dist/analyzer/expression-policy.d.ts.map +1 -1
- package/dist/analyzer/expression-policy.js +296 -41
- package/dist/analyzer/expression-policy.js.map +1 -1
- package/dist/analyzer/operator-rules.d.ts.map +1 -1
- package/dist/analyzer/operator-rules.js +7 -6
- package/dist/analyzer/operator-rules.js.map +1 -1
- package/dist/analyzer/signatures.d.ts +49 -0
- package/dist/analyzer/signatures.d.ts.map +1 -1
- package/dist/analyzer/signatures.js +76 -31
- package/dist/analyzer/signatures.js.map +1 -1
- package/dist/analyzer/source-options.d.ts +17 -0
- package/dist/analyzer/source-options.d.ts.map +1 -0
- package/dist/analyzer/source-options.js +3 -0
- package/dist/analyzer/source-options.js.map +1 -0
- package/dist/api/dto.d.ts +9 -4
- package/dist/api/dto.d.ts.map +1 -1
- package/dist/api/dto.js +14 -3
- package/dist/api/dto.js.map +1 -1
- package/dist/api/strict.d.ts.map +1 -1
- package/dist/api/strict.js +8 -3
- package/dist/api/strict.js.map +1 -1
- package/dist/cli/dto-check.d.ts +9 -0
- package/dist/cli/dto-check.d.ts.map +1 -1
- package/dist/cli/dto-check.js +49 -6
- package/dist/cli/dto-check.js.map +1 -1
- package/dist/cli/fhirpath-check.js +161 -31
- package/dist/cli/fhirpath-check.js.map +1 -1
- package/dist/eslint/index.d.ts.map +1 -1
- package/dist/eslint/index.js +13 -8
- package/dist/eslint/index.js.map +1 -1
- package/dist/r4/generated/resources-data.d.ts +6 -2
- package/dist/r4/generated/resources-data.d.ts.map +1 -1
- package/dist/r4/generated/resources-data.js +626 -28627
- package/dist/r4/generated/resources-data.js.map +1 -1
- package/dist/r4/generated/types-data.d.ts +6 -2
- package/dist/r4/generated/types-data.d.ts.map +1 -1
- package/dist/r4/generated/types-data.js +84 -2204
- package/dist/r4/generated/types-data.js.map +1 -1
- package/dist/r4/index.d.ts.map +1 -1
- package/dist/r4/index.js +10 -4
- package/dist/r4/index.js.map +1 -1
- package/dist/r4/model-data.d.ts +17 -0
- package/dist/r4/model-data.d.ts.map +1 -1
- package/dist/r4/model-data.js +118 -1
- package/dist/r4/model-data.js.map +1 -1
- package/dist/sites/index.d.ts +31 -2
- package/dist/sites/index.d.ts.map +1 -1
- package/dist/sites/index.js +351 -30
- package/dist/sites/index.js.map +1 -1
- package/dist/typed/infer.d.ts +2 -0
- package/dist/typed/infer.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/analyzer/analyze-dto.ts +19 -9
- package/src/analyzer/analyze.ts +186 -54
- package/src/analyzer/declarations.ts +12 -0
- package/src/analyzer/expression-policy.ts +423 -47
- package/src/analyzer/operator-rules.ts +7 -6
- package/src/analyzer/signatures.ts +100 -36
- package/src/analyzer/source-options.ts +19 -0
- package/src/api/dto.ts +35 -9
- package/src/api/strict.ts +8 -3
- package/src/cli/dto-check.ts +56 -6
- package/src/cli/fhirpath-check.ts +180 -34
- package/src/eslint/index.ts +15 -12
- package/src/r4/generated/resources-data.ts +624 -28628
- package/src/r4/generated/types-data.ts +82 -2205
- package/src/r4/index.ts +11 -5
- package/src/r4/model-data.ts +127 -0
- package/src/sites/index.ts +428 -40
- package/src/typed/infer.ts +2 -2
package/dist/sites/index.js
CHANGED
|
@@ -1,23 +1,43 @@
|
|
|
1
|
-
import { CALL_SITES, columnFunctionDeclaration, constructsEngine, declaredColumnOverloads, DTO_BASE_NAME, dtoRootsOf,
|
|
1
|
+
import { CALL_SITES, callExpressionCandidates, columnFunctionDeclaration, constructsEngine, declaredColumnOverloads, DTO_BASE_NAME, dtoRootsOf, ENGINE_CLASS_NAME, isCheckedCall, isCheckedTag, isForeignModule, rootOf, TAG_NAME, } from "../analyzer/expression-policy.js";
|
|
2
2
|
/**
|
|
3
3
|
* Creates a finder for the calls and tags in `CALL_SITES`. DTO fields include a
|
|
4
4
|
* root type when the class declares one, and each column is exposed as a local
|
|
5
5
|
* function declaration. Dynamic expressions are skipped.
|
|
6
6
|
*/
|
|
7
|
-
export function
|
|
7
|
+
export function createSiteScanner(ts, program) {
|
|
8
|
+
const checker = program?.getTypeChecker();
|
|
9
|
+
const engineSymbolsByOptions = new Map();
|
|
8
10
|
/** How the shared shape extractor reads TypeScript AST nodes. */
|
|
9
11
|
const tsAst = {
|
|
10
12
|
string: node => (ts.isStringLiteralLike(node) ? { node, expression: node.text } : undefined),
|
|
11
13
|
boolean: node => node.kind === ts.SyntaxKind.TrueKeyword ? true : node.kind === ts.SyntaxKind.FalseKeyword ? false : undefined,
|
|
12
14
|
properties: node => ts.isObjectLiteralExpression(node)
|
|
13
|
-
? node.properties
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
? node.properties.flatMap(property => {
|
|
16
|
+
if (ts.isPropertyAssignment(property)) {
|
|
17
|
+
return [{ name: propertyKeyName(property.name), value: property.initializer }];
|
|
18
|
+
}
|
|
19
|
+
if (ts.isShorthandPropertyAssignment(property)) {
|
|
20
|
+
return [{ name: property.name.text, value: property.name }];
|
|
21
|
+
}
|
|
22
|
+
if (ts.isSpreadAssignment(property)) {
|
|
23
|
+
return [{ name: undefined, value: property.expression, spread: true }];
|
|
24
|
+
}
|
|
25
|
+
// Methods and accessors create enumerable own properties too. Their
|
|
26
|
+
// values are dynamic to source analysis, but their names still make
|
|
27
|
+
// env/vars scopes complete when every key is known.
|
|
28
|
+
return 'name' in property ? [{ name: propertyKeyName(property.name), value: property }] : [];
|
|
29
|
+
})
|
|
16
30
|
: undefined,
|
|
17
31
|
elements: node => (ts.isArrayLiteralExpression(node) ? [...node.elements] : undefined),
|
|
18
32
|
};
|
|
19
|
-
/**
|
|
33
|
+
/**
|
|
34
|
+
* Statically-known property key: `path` in `{ path: ... }`, `{ 'path': ... }`,
|
|
35
|
+
* or `{ ['path']: ... }`; undefined for other computed keys.
|
|
36
|
+
*/
|
|
20
37
|
function propertyKeyName(name) {
|
|
38
|
+
if (ts.isComputedPropertyName(name)) {
|
|
39
|
+
return ts.isStringLiteral(name.expression) ? name.expression.text : undefined;
|
|
40
|
+
}
|
|
21
41
|
return ts.isIdentifier(name) || ts.isStringLiteral(name) ? name.text : undefined;
|
|
22
42
|
}
|
|
23
43
|
/** The name of the field a `@column(...)` decorator belongs to. */
|
|
@@ -56,7 +76,7 @@ export function createSiteFinder(ts) {
|
|
|
56
76
|
return heritage;
|
|
57
77
|
}
|
|
58
78
|
/** Collects imports, engine locals, rebound names, and DTO class roots before extracting sites. */
|
|
59
|
-
function collectFile(source, options) {
|
|
79
|
+
function collectFile(source, options, engineSymbols) {
|
|
60
80
|
const foreign = new Set();
|
|
61
81
|
const trusted = new Set();
|
|
62
82
|
const rebound = new Set();
|
|
@@ -97,13 +117,23 @@ export function createSiteFinder(ts) {
|
|
|
97
117
|
const set = constructsEngine(node.initializer.expression.text, bindings) ? trusted : rebound;
|
|
98
118
|
set.add(node.name.text);
|
|
99
119
|
}
|
|
120
|
+
else if (ts.isIdentifier(node.name) && isEngineExpression(node.name, engineSymbols)) {
|
|
121
|
+
trusted.add(node.name.text);
|
|
122
|
+
foreign.delete(node.name.text);
|
|
123
|
+
}
|
|
100
124
|
else {
|
|
101
125
|
// Catch clauses reach here too: `catch (r4)` is a VariableDeclaration.
|
|
102
126
|
addBindingNames(node.name, rebound);
|
|
103
127
|
}
|
|
104
128
|
}
|
|
105
129
|
else if (ts.isParameter(node)) {
|
|
106
|
-
|
|
130
|
+
if (ts.isIdentifier(node.name) && isEngineExpression(node.name, engineSymbols)) {
|
|
131
|
+
trusted.add(node.name.text);
|
|
132
|
+
foreign.delete(node.name.text);
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
addBindingNames(node.name, rebound);
|
|
136
|
+
}
|
|
107
137
|
}
|
|
108
138
|
else if ((ts.isFunctionDeclaration(node) ||
|
|
109
139
|
ts.isFunctionExpression(node) ||
|
|
@@ -117,6 +147,108 @@ export function createSiteFinder(ts) {
|
|
|
117
147
|
collectLocals(source);
|
|
118
148
|
return { bindings, dtoRoots: dtoRootsOf([...heritage.values()]), heritage };
|
|
119
149
|
}
|
|
150
|
+
/** Package engine declarations reached through a real `fhirpath-ts` import. */
|
|
151
|
+
function collectTrustedEngineSymbols(options) {
|
|
152
|
+
const symbols = new Set();
|
|
153
|
+
if (checker === undefined || program === undefined) {
|
|
154
|
+
return symbols;
|
|
155
|
+
}
|
|
156
|
+
const resolvedSymbol = (initial) => {
|
|
157
|
+
let symbol = initial;
|
|
158
|
+
const seen = new Set();
|
|
159
|
+
while (symbol !== undefined && (symbol.flags & ts.SymbolFlags.Alias) !== 0 && !seen.has(symbol)) {
|
|
160
|
+
seen.add(symbol);
|
|
161
|
+
symbol = checker.getAliasedSymbol(symbol);
|
|
162
|
+
}
|
|
163
|
+
return symbol;
|
|
164
|
+
};
|
|
165
|
+
const resolved = (node) => resolvedSymbol(checker.getSymbolAtLocation(node));
|
|
166
|
+
for (const source of program.getSourceFiles()) {
|
|
167
|
+
for (const statement of source.statements) {
|
|
168
|
+
if (!ts.isImportDeclaration(statement) ||
|
|
169
|
+
!ts.isStringLiteral(statement.moduleSpecifier) ||
|
|
170
|
+
isForeignModule(statement.moduleSpecifier.text, options)) {
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
const bindings = statement.importClause?.namedBindings;
|
|
174
|
+
if (bindings === undefined) {
|
|
175
|
+
continue;
|
|
176
|
+
}
|
|
177
|
+
if (ts.isNamedImports(bindings)) {
|
|
178
|
+
for (const element of bindings.elements) {
|
|
179
|
+
if ((element.propertyName ?? element.name).text === ENGINE_CLASS_NAME) {
|
|
180
|
+
const symbol = resolved(element.name);
|
|
181
|
+
if (symbol !== undefined) {
|
|
182
|
+
symbols.add(symbol);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
continue;
|
|
187
|
+
}
|
|
188
|
+
const module = resolved(bindings.name);
|
|
189
|
+
const symbol = module === undefined
|
|
190
|
+
? undefined
|
|
191
|
+
: checker.getExportsOfModule(module).find(entry => entry.name === ENGINE_CLASS_NAME);
|
|
192
|
+
if (symbol !== undefined) {
|
|
193
|
+
symbols.add(resolvedSymbol(symbol) ?? symbol);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
return symbols;
|
|
198
|
+
}
|
|
199
|
+
function engineSymbolsFor(options) {
|
|
200
|
+
const key = JSON.stringify({ packages: options.packages, localImports: options.localImports === true });
|
|
201
|
+
const cached = engineSymbolsByOptions.get(key);
|
|
202
|
+
if (cached !== undefined) {
|
|
203
|
+
return cached;
|
|
204
|
+
}
|
|
205
|
+
const symbols = collectTrustedEngineSymbols(options);
|
|
206
|
+
engineSymbolsByOptions.set(key, symbols);
|
|
207
|
+
return symbols;
|
|
208
|
+
}
|
|
209
|
+
/** Whether TypeScript resolved an expression to this package's engine class. */
|
|
210
|
+
function isEngineExpression(node, engineSymbols) {
|
|
211
|
+
if (checker === undefined || engineSymbols.size === 0 || node.getSourceFile().isDeclarationFile) {
|
|
212
|
+
return false;
|
|
213
|
+
}
|
|
214
|
+
const hasEngineSymbol = (type, seen) => {
|
|
215
|
+
if (seen.has(type)) {
|
|
216
|
+
return false;
|
|
217
|
+
}
|
|
218
|
+
seen.add(type);
|
|
219
|
+
if (type.isUnion()) {
|
|
220
|
+
return type.types.length > 0 && type.types.every(member => hasEngineSymbol(member, new Set(seen)));
|
|
221
|
+
}
|
|
222
|
+
if (type.isIntersection()) {
|
|
223
|
+
return type.types.some(member => hasEngineSymbol(member, new Set(seen)));
|
|
224
|
+
}
|
|
225
|
+
const symbol = type.aliasSymbol ?? type.getSymbol();
|
|
226
|
+
if (symbol !== undefined && engineSymbols.has(symbol)) {
|
|
227
|
+
return true;
|
|
228
|
+
}
|
|
229
|
+
const constraint = checker.getBaseConstraintOfType(type);
|
|
230
|
+
if (constraint !== undefined && constraint !== type && hasEngineSymbol(constraint, seen)) {
|
|
231
|
+
return true;
|
|
232
|
+
}
|
|
233
|
+
if ((type.flags & ts.TypeFlags.Object) === 0) {
|
|
234
|
+
return false;
|
|
235
|
+
}
|
|
236
|
+
const object = type;
|
|
237
|
+
if ((object.objectFlags & (ts.ObjectFlags.Class | ts.ObjectFlags.Interface | ts.ObjectFlags.Reference)) === 0) {
|
|
238
|
+
return false;
|
|
239
|
+
}
|
|
240
|
+
return checker.getBaseTypes(type).some(base => hasEngineSymbol(base, seen));
|
|
241
|
+
};
|
|
242
|
+
return hasEngineSymbol(checker.getTypeAtLocation(node), new Set());
|
|
243
|
+
}
|
|
244
|
+
/** An unresolved receiver may still be an engine; a resolved non-engine is not our call site. */
|
|
245
|
+
function shouldReportUnrecognized(node) {
|
|
246
|
+
if (checker === undefined || node.getSourceFile().isDeclarationFile) {
|
|
247
|
+
return true;
|
|
248
|
+
}
|
|
249
|
+
const flags = checker.getTypeAtLocation(node).flags;
|
|
250
|
+
return (flags & (ts.TypeFlags.Any | ts.TypeFlags.Unknown)) !== 0;
|
|
251
|
+
}
|
|
120
252
|
/** Add every identifier a binding name declares (`x`, `{ r4 }`, `[a, ...rest]`). */
|
|
121
253
|
function addBindingNames(name, into) {
|
|
122
254
|
if (ts.isIdentifier(name)) {
|
|
@@ -149,10 +281,116 @@ export function createSiteFinder(ts) {
|
|
|
149
281
|
}
|
|
150
282
|
return ts.isIdentifier(current) ? current.text : undefined;
|
|
151
283
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
284
|
+
/** Strips source wrappers that keep an expression's runtime identity. */
|
|
285
|
+
function unwrapped(node) {
|
|
286
|
+
let current = node;
|
|
287
|
+
while (current !== undefined &&
|
|
288
|
+
(ts.isParenthesizedExpression(current) ||
|
|
289
|
+
ts.isAsExpression(current) ||
|
|
290
|
+
ts.isSatisfiesExpression(current) ||
|
|
291
|
+
ts.isTypeAssertionExpression(current) ||
|
|
292
|
+
ts.isNonNullExpression(current))) {
|
|
293
|
+
current = current.expression;
|
|
294
|
+
}
|
|
295
|
+
return current;
|
|
296
|
+
}
|
|
297
|
+
/** Class bindings made reachable by one immutable initializer or default export. */
|
|
298
|
+
function bindingTargets(node) {
|
|
299
|
+
const target = unwrapped(node);
|
|
300
|
+
if (target === undefined) {
|
|
301
|
+
return [];
|
|
302
|
+
}
|
|
303
|
+
if (ts.isIdentifier(target)) {
|
|
304
|
+
return [target.text];
|
|
305
|
+
}
|
|
306
|
+
if (!ts.isClassExpression(target)) {
|
|
307
|
+
return [];
|
|
308
|
+
}
|
|
309
|
+
// A class expression's own name is scoped to its body, not a reference to a
|
|
310
|
+
// same-named top-level class. Only its base can expose another declaration.
|
|
311
|
+
const { baseName } = heritageOf(target);
|
|
312
|
+
return baseName === undefined ? [] : [baseName];
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* The module's exported names, plus what each top-level `const` binding stands
|
|
316
|
+
* for: `export const Row = ProblemRow` makes the loader enumerate `Row`, so
|
|
317
|
+
* `ProblemRow` is reachable through it — directly, through an alias chain, or
|
|
318
|
+
* as the base of an exported anonymous class expression.
|
|
319
|
+
*/
|
|
320
|
+
function moduleBindings(source) {
|
|
321
|
+
const exported = new Set();
|
|
322
|
+
const aliases = new Map();
|
|
323
|
+
const addAlias = (from, to) => {
|
|
324
|
+
const edges = aliases.get(from);
|
|
325
|
+
if (edges === undefined) {
|
|
326
|
+
aliases.set(from, [to]);
|
|
327
|
+
}
|
|
328
|
+
else {
|
|
329
|
+
edges.push(to);
|
|
330
|
+
}
|
|
331
|
+
};
|
|
332
|
+
const isExported = (statement) => (ts.canHaveModifiers(statement) ? (ts.getModifiers(statement) ?? []) : []).some(modifier => modifier.kind === ts.SyntaxKind.ExportKeyword);
|
|
333
|
+
for (const statement of source.statements) {
|
|
334
|
+
if (ts.isClassDeclaration(statement) && isExported(statement)) {
|
|
335
|
+
if (statement.name !== undefined) {
|
|
336
|
+
exported.add(statement.name.text);
|
|
337
|
+
}
|
|
338
|
+
else {
|
|
339
|
+
// `export default class extends Base {}`: the loader gets the class,
|
|
340
|
+
// so its base is reachable even though neither has a bound name here.
|
|
341
|
+
const base = heritageOf(statement).baseName;
|
|
342
|
+
if (base !== undefined) {
|
|
343
|
+
exported.add(base);
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
else if (ts.isVariableStatement(statement)) {
|
|
348
|
+
const immutable = (statement.declarationList.flags & ts.NodeFlags.Const) !== 0;
|
|
349
|
+
for (const declaration of statement.declarationList.declarations) {
|
|
350
|
+
if (!ts.isIdentifier(declaration.name)) {
|
|
351
|
+
continue;
|
|
352
|
+
}
|
|
353
|
+
const name = declaration.name.text;
|
|
354
|
+
if (isExported(statement)) {
|
|
355
|
+
exported.add(name);
|
|
356
|
+
}
|
|
357
|
+
if (immutable) {
|
|
358
|
+
for (const target of bindingTargets(declaration.initializer)) {
|
|
359
|
+
addAlias(name, target);
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
else if (ts.isExportDeclaration(statement) &&
|
|
365
|
+
statement.moduleSpecifier === undefined &&
|
|
366
|
+
statement.isTypeOnly === false &&
|
|
367
|
+
statement.exportClause !== undefined) {
|
|
368
|
+
if (ts.isNamedExports(statement.exportClause)) {
|
|
369
|
+
for (const element of statement.exportClause.elements) {
|
|
370
|
+
if (!element.isTypeOnly) {
|
|
371
|
+
exported.add((element.propertyName ?? element.name).text);
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
else if (ts.isExportAssignment(statement)) {
|
|
377
|
+
for (const target of bindingTargets(statement.expression)) {
|
|
378
|
+
exported.add(target);
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
return { exported, aliases };
|
|
383
|
+
}
|
|
384
|
+
return function scanExpressionSites(sourceText, fileName, options = {}) {
|
|
385
|
+
const programSource = program?.getSourceFile(fileName);
|
|
386
|
+
const source = programSource !== undefined && programSource.text === sourceText
|
|
387
|
+
? programSource
|
|
388
|
+
: ts.createSourceFile(fileName, sourceText, ts.ScriptTarget.Latest, true);
|
|
389
|
+
const engineSymbols = engineSymbolsFor(options);
|
|
390
|
+
const { bindings, dtoRoots, heritage } = collectFile(source, options, engineSymbols);
|
|
155
391
|
const sites = [];
|
|
392
|
+
const skipped = [];
|
|
393
|
+
const decoratedClasses = new Set();
|
|
156
394
|
const functions = {};
|
|
157
395
|
// A site points at the first character inside the quote/backtick (node start
|
|
158
396
|
// + 1), so fhirpath-check can add a diagnostic's span offsets directly. The
|
|
@@ -168,38 +406,121 @@ export function createSiteFinder(ts) {
|
|
|
168
406
|
...context,
|
|
169
407
|
});
|
|
170
408
|
};
|
|
171
|
-
const
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
409
|
+
const skip = (node, reason, message) => {
|
|
410
|
+
const { line, character } = source.getLineAndCharacterOfPosition(node.getStart(source));
|
|
411
|
+
skipped.push({ reason, message, line: line + 1, column: character + 1 });
|
|
412
|
+
};
|
|
413
|
+
const visit = (node, classRoot, enclosingClass) => {
|
|
414
|
+
if (ts.isTaggedTemplateExpression(node) && nameOf(node.tag) === TAG_NAME) {
|
|
415
|
+
if (!isCheckedTag(receiverRoot(node.tag), bindings)) {
|
|
416
|
+
if (shouldReportUnrecognized(node.tag)) {
|
|
417
|
+
skip(node.tag, 'unrecognized-receiver', 'FHIRPath tag not analyzed: its binding is not from fhirpath-ts');
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
else if (ts.isNoSubstitutionTemplateLiteral(node.template)) {
|
|
176
421
|
record(node.template.text, node.template);
|
|
177
422
|
}
|
|
423
|
+
else {
|
|
424
|
+
skip(node.template, 'dynamic-expression', 'FHIRPath template not analyzed: substitutions make it dynamic');
|
|
425
|
+
}
|
|
178
426
|
}
|
|
179
427
|
else if (ts.isCallExpression(node)) {
|
|
180
428
|
const callee = nameOf(node.expression);
|
|
181
429
|
const policy = callee === undefined ? undefined : CALL_SITES.get(callee);
|
|
182
430
|
const argument = policy && node.arguments[policy.argIndex];
|
|
183
|
-
if (callee !== undefined &&
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
isCheckedCall(policy, callee, receiverRoot(node.expression), bindings
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
if (
|
|
190
|
-
|
|
431
|
+
if (callee !== undefined && policy !== undefined && argument !== undefined) {
|
|
432
|
+
const typedEngineReceiver = ts.isPropertyAccessExpression(node.expression) &&
|
|
433
|
+
isEngineExpression(node.expression.expression, engineSymbols);
|
|
434
|
+
const checked = isCheckedCall(policy, callee, receiverRoot(node.expression), bindings, {
|
|
435
|
+
...(typedEngineReceiver && { engine: true }),
|
|
436
|
+
});
|
|
437
|
+
if (!checked) {
|
|
438
|
+
const receiver = receiverRoot(node.expression);
|
|
439
|
+
const receiverExpression = ts.isPropertyAccessExpression(node.expression)
|
|
440
|
+
? node.expression.expression
|
|
441
|
+
: node.expression;
|
|
442
|
+
if (shouldReportUnrecognized(receiverExpression)) {
|
|
443
|
+
skip(node.expression, 'unrecognized-receiver', `${callee}(...) expression not analyzed: ${receiver === undefined
|
|
444
|
+
? `binding '${callee}' is not recognized as fhirpath-ts`
|
|
445
|
+
: `receiver '${receiver}' is not recognized as a FhirPathEngine`}`);
|
|
446
|
+
}
|
|
191
447
|
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
448
|
+
else {
|
|
449
|
+
const declares = policy.declaresField;
|
|
450
|
+
const field = declares === undefined ? undefined : decoratedFieldName(node);
|
|
451
|
+
if (declares !== undefined && field !== undefined) {
|
|
452
|
+
if (enclosingClass !== undefined) {
|
|
453
|
+
decoratedClasses.add(enclosingClass);
|
|
454
|
+
}
|
|
455
|
+
functions[field] = declaredColumnOverloads(functions[field], columnFunctionDeclaration(declares, node.arguments[1], tsAst, classRoot));
|
|
456
|
+
}
|
|
457
|
+
for (const candidate of callExpressionCandidates(policy, index => node.arguments[index], classRoot, tsAst)) {
|
|
458
|
+
if (candidate.uncheckable === 'dynamic-vars') {
|
|
459
|
+
skip(candidate.node, 'dynamic-expression', `${callee}(...) var expressions not analyzed: their final names, values, or order are dynamic`);
|
|
460
|
+
}
|
|
461
|
+
else if (candidate.expression === undefined) {
|
|
462
|
+
skip(candidate.node, 'dynamic-expression', candidate.source === 'option-var'
|
|
463
|
+
? `${callee}(...) var expression not analyzed: it is not a string literal`
|
|
464
|
+
: `${callee}(...) expression not analyzed: it is not a string literal`);
|
|
465
|
+
}
|
|
466
|
+
else {
|
|
467
|
+
record(candidate.expression, candidate.node, candidate.context);
|
|
468
|
+
}
|
|
469
|
+
}
|
|
195
470
|
}
|
|
196
471
|
}
|
|
197
472
|
}
|
|
198
473
|
const nested = ts.isClassLike(node) ? rootOf(heritage.get(node), dtoRoots) : classRoot;
|
|
199
|
-
ts.
|
|
474
|
+
const nestedClass = ts.isClassLike(node) ? node : enclosingClass;
|
|
475
|
+
ts.forEachChild(node, child => visit(child, nested, nestedClass));
|
|
476
|
+
};
|
|
477
|
+
visit(source, undefined, undefined);
|
|
478
|
+
const { exported, aliases } = moduleBindings(source);
|
|
479
|
+
const classByName = new Map([...heritage.entries()].flatMap(([node, value]) => ts.isClassLike(node) && value.name !== undefined ? [[value.name, value]] : []));
|
|
480
|
+
// From every exported binding, follow alias and extends edges: what the
|
|
481
|
+
// loader enumerates under any name makes every class behind it analyzable.
|
|
482
|
+
const reachesExport = (name) => {
|
|
483
|
+
const seen = new Set();
|
|
484
|
+
const frontier = [...exported];
|
|
485
|
+
while (frontier.length > 0) {
|
|
486
|
+
const current = frontier.pop();
|
|
487
|
+
if (current === name) {
|
|
488
|
+
return true;
|
|
489
|
+
}
|
|
490
|
+
if (seen.has(current)) {
|
|
491
|
+
continue;
|
|
492
|
+
}
|
|
493
|
+
seen.add(current);
|
|
494
|
+
const base = classByName.get(current)?.baseName;
|
|
495
|
+
if (base !== undefined) {
|
|
496
|
+
frontier.push(base);
|
|
497
|
+
}
|
|
498
|
+
frontier.push(...(aliases.get(current) ?? []));
|
|
499
|
+
}
|
|
500
|
+
return false;
|
|
501
|
+
};
|
|
502
|
+
const dtoDeclarations = [...decoratedClasses].flatMap(node => {
|
|
503
|
+
const nameNode = node.name;
|
|
504
|
+
// Runtime module discovery can only miss top-level module-local classes.
|
|
505
|
+
// A class inside a factory is reached through whatever class the factory
|
|
506
|
+
// returns, rather than as a module export with its source name.
|
|
507
|
+
if (nameNode === undefined || node.parent !== source) {
|
|
508
|
+
return [];
|
|
509
|
+
}
|
|
510
|
+
const name = nameNode.text;
|
|
511
|
+
const { line, character } = source.getLineAndCharacterOfPosition(nameNode.getStart(source));
|
|
512
|
+
return [{ name, line: line + 1, column: character + 1, loadable: reachesExport(name) }];
|
|
513
|
+
});
|
|
514
|
+
return {
|
|
515
|
+
sites: Object.keys(functions).length === 0 ? sites : sites.map(site => ({ ...site, functions })),
|
|
516
|
+
skipped,
|
|
517
|
+
dtoDeclarations,
|
|
200
518
|
};
|
|
201
|
-
visit(source, undefined);
|
|
202
|
-
return Object.keys(functions).length === 0 ? sites : sites.map(site => ({ ...site, functions }));
|
|
203
519
|
};
|
|
204
520
|
}
|
|
521
|
+
/** Creates the compatibility finder that returns only expressions successfully extracted. */
|
|
522
|
+
export function createSiteFinder(ts, program) {
|
|
523
|
+
const scan = createSiteScanner(ts, program);
|
|
524
|
+
return (sourceText, fileName, options) => scan(sourceText, fileName, options).sites;
|
|
525
|
+
}
|
|
205
526
|
//# sourceMappingURL=index.js.map
|
package/dist/sites/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sites/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sites/index.ts"],"names":[],"mappings":"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"}
|
package/dist/typed/infer.d.ts
CHANGED
|
@@ -19,11 +19,13 @@ export type FhirpathFunctionDeclaration = {
|
|
|
19
19
|
readonly signature?: {
|
|
20
20
|
readonly input?: {
|
|
21
21
|
readonly types?: readonly string[];
|
|
22
|
+
readonly ordered?: boolean;
|
|
22
23
|
};
|
|
23
24
|
readonly args?: readonly string[];
|
|
24
25
|
readonly result?: {
|
|
25
26
|
readonly types?: readonly string[];
|
|
26
27
|
readonly single?: boolean;
|
|
28
|
+
readonly ordered?: boolean;
|
|
27
29
|
};
|
|
28
30
|
};
|
|
29
31
|
readonly expression?: string | {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infer.d.ts","sourceRoot":"","sources":["../../src/typed/infer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,eAAe,EACf,6BAA6B,EAC7B,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEtD,mDAAmD;AACnD,MAAM,MAAM,YAAY,GAAG,MAAM,QAAQ,GAAG,MAAM,CAAA;AAClD,MAAM,MAAM,wBAAwB,GAAG,eAAe,CAAA;AAEtD,gGAAgG;AAChG,MAAM,WAAW,uBAAuB,CACtC,IAAI,SAAS,YAAY,GAAG,YAAY,EACxC,UAAU,SAAS,OAAO,GAAG,OAAO;IAEpC,+DAA+D;IAC/D,IAAI,EAAE,IAAI,GAAG,SAAS,IAAI,EAAE,CAAA;IAC5B,6EAA6E;IAC7E,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,uDAAuD;IACvD,OAAO,CAAC,EAAE,YAAY,GAAG,SAAS,YAAY,EAAE,CAAA;CACjD;AAED,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAA;AAExF,wFAAwF;AACxF,MAAM,MAAM,2BAA2B,GACnC;IACE,QAAQ,CAAC,SAAS,CAAC,EAAE;QACnB,QAAQ,CAAC,KAAK,CAAC,EAAE;YAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;SAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"infer.d.ts","sourceRoot":"","sources":["../../src/typed/infer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
type DeclaredFunction,
|
|
12
12
|
type DeclaredVariable,
|
|
13
13
|
} from './analyze.ts'
|
|
14
|
-
import { analyzerEnvironmentVariables, analyzerVariables } from './declarations.ts'
|
|
14
|
+
import { analyzerEnvironmentVariables, analyzerVariables, PROJECT_ROW_VARIABLES } from './declarations.ts'
|
|
15
15
|
|
|
16
16
|
/** One `analyzeDto` finding: an analyzer diagnostic plus the class member it came from. */
|
|
17
17
|
export interface DtoDiagnostic extends AnalyzerDiagnostic {
|
|
@@ -96,15 +96,17 @@ export function analyzeDto(dto: DtoClass, options?: AnalyzeDtoOptions): DtoDiagn
|
|
|
96
96
|
const definition = dtoDefinition(dto)
|
|
97
97
|
const context = contextOf(options)
|
|
98
98
|
const inputType = context.inputType ?? definition.fhirType
|
|
99
|
-
const declared: Record<string, DeclaredVariable> = {
|
|
100
|
-
|
|
101
|
-
rowTotal: { types: ['System.Integer'], single: true },
|
|
102
|
-
}
|
|
103
|
-
for (const name of [...Object.keys(definition.env ?? {}), ...(definition.callerEnv ?? [])]) {
|
|
99
|
+
const declared: Record<string, DeclaredVariable> = { ...PROJECT_ROW_VARIABLES }
|
|
100
|
+
for (const name of [...Object.keys(definition.env ?? {}), ...definition.callerEnvNames]) {
|
|
104
101
|
declared[bareEnvironmentName(name)] = {}
|
|
105
102
|
}
|
|
103
|
+
Object.assign(declared, analyzerVariables(undefined, definition.callerEnvTypes))
|
|
106
104
|
const diagnostics: DtoDiagnostic[] = []
|
|
107
|
-
const analyze = (
|
|
105
|
+
const analyze = (
|
|
106
|
+
member: string,
|
|
107
|
+
expression: string,
|
|
108
|
+
column?: ColumnSpec
|
|
109
|
+
): { types: string[] | undefined; single: boolean | undefined; ordered: boolean | undefined } => {
|
|
108
110
|
const perExpression: AnalyzeOptions = {
|
|
109
111
|
...context,
|
|
110
112
|
...(inputType !== undefined && { inputType }),
|
|
@@ -126,12 +128,20 @@ export function analyzeDto(dto: DtoClass, options?: AnalyzeDtoOptions): DtoDiagn
|
|
|
126
128
|
span: { start: 0, end: expression.length, line: 1, column: 1 },
|
|
127
129
|
})
|
|
128
130
|
}
|
|
131
|
+
return result
|
|
129
132
|
}
|
|
130
133
|
for (const [name, value] of Object.entries(definition.vars ?? {})) {
|
|
131
134
|
const source = typeof value === 'string' ? value : sourceOf(value)
|
|
132
135
|
if (source !== undefined) {
|
|
133
|
-
// A var
|
|
134
|
-
|
|
136
|
+
// A var has no declared result to cross-check, but its inferred result is
|
|
137
|
+
// the input state for later vars and columns.
|
|
138
|
+
const result = analyze(`vars.${bareEnvironmentName(name)}`, source)
|
|
139
|
+
declared[bareEnvironmentName(name)] = {
|
|
140
|
+
...(result.types !== undefined && { types: result.types }),
|
|
141
|
+
...(result.single !== undefined && { single: result.single }),
|
|
142
|
+
...(result.ordered !== undefined && { ordered: result.ordered }),
|
|
143
|
+
}
|
|
144
|
+
continue
|
|
135
145
|
}
|
|
136
146
|
declared[bareEnvironmentName(name)] = {}
|
|
137
147
|
}
|