@typecek/core 0.0.8 → 0.1.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/checker.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { type TemplateAST } from "./parser.js";
1
+ import { type ASTNode, type TemplateAST } from "./parser.js";
2
2
  import { type Type } from "./types.js";
3
3
  export interface Diagnostic {
4
4
  message: string;
@@ -7,6 +7,8 @@ export interface Diagnostic {
7
7
  column: number;
8
8
  length: number;
9
9
  }
10
+ /** Check for expressions/blocks that require data in a template without {{#import}}. */
11
+ export declare function checkMissingImport(body: ASTNode[]): Diagnostic[];
10
12
  export interface TypecheckContext {
11
13
  templateDir: string;
12
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../src/checker.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAwB,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAI7D,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AA0FD,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,UAAU,EAAE,CAqPpG"}
1
+ {"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../src/checker.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,OAAO,EAEZ,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAuC,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAI5E,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AA0FD,wFAAwF;AACxF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,CAkChE;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,UAAU,EAAE,CAgQpG"}
package/dist/checker.js CHANGED
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.checkMissingImport = checkMissingImport;
6
7
  exports.typecheck = typecheck;
7
8
  const fs_1 = __importDefault(require("fs"));
8
9
  const path_1 = __importDefault(require("path"));
@@ -89,6 +90,40 @@ function resolveTemplateType(templateDir, refPath) {
89
90
  return { kind: "resolved", result: { acceptsData: false, hasContent: ast.hasContent } };
90
91
  }
91
92
  }
93
+ /** Check for expressions/blocks that require data in a template without {{#import}}. */
94
+ function checkMissingImport(body) {
95
+ const diagnostics = [];
96
+ const msg = "Expressions require a {{#import}} type directive";
97
+ function check(nodes) {
98
+ for (const node of nodes) {
99
+ switch (node.type) {
100
+ case parser_js_1.NodeType.Expression:
101
+ diagnostics.push({ message: msg, severity: "error", line: node.line, column: node.column, length: 2 });
102
+ break;
103
+ case parser_js_1.NodeType.RawExpression:
104
+ diagnostics.push({ message: msg, severity: "error", line: node.line, column: node.column, length: 3 });
105
+ break;
106
+ case parser_js_1.NodeType.IfBlock:
107
+ diagnostics.push({ message: msg, severity: "error", line: node.line, column: node.column, length: 5 });
108
+ break;
109
+ case parser_js_1.NodeType.ForBlock:
110
+ diagnostics.push({ message: msg, severity: "error", line: node.line, column: node.column, length: 6 });
111
+ break;
112
+ case parser_js_1.NodeType.SwitchBlock:
113
+ diagnostics.push({ message: msg, severity: "error", line: node.line, column: node.column, length: 10 });
114
+ break;
115
+ case parser_js_1.NodeType.WithBlock:
116
+ diagnostics.push({ message: msg, severity: "error", line: node.line, column: node.column, length: 8 });
117
+ break;
118
+ case parser_js_1.NodeType.LayoutBlock:
119
+ check(node.body);
120
+ break;
121
+ }
122
+ }
123
+ }
124
+ check(body);
125
+ return diagnostics;
126
+ }
92
127
  function typecheck(ast, dataType, context) {
93
128
  const diagnostics = [];
94
129
  function exprLength(node) {
@@ -204,7 +239,18 @@ function typecheck(ast, dataType, context) {
204
239
  break;
205
240
  }
206
241
  case parser_js_1.NodeType.WithBlock: {
207
- const withType = resolver.resolveExprType(node.expression);
242
+ const rawType = resolver.resolveExprType(node.expression);
243
+ const withType = (0, types_js_1.narrowNullish)(rawType);
244
+ if (!withType) {
245
+ diagnostics.push({
246
+ message: `Expression is always null or undefined`,
247
+ severity: "error",
248
+ line: node.line,
249
+ column: node.column,
250
+ length: 4,
251
+ });
252
+ break;
253
+ }
208
254
  resolver.pushScope(withType);
209
255
  node.body.forEach(checkNode);
210
256
  resolver.popScope();
@@ -1 +1 @@
1
- {"version":3,"file":"checker.js","sourceRoot":"","sources":["../src/checker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checker.js","sourceRoot":"","sources":["../src/checker.ts"],"names":[],"mappings":"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"}
package/dist/hover.d.ts CHANGED
@@ -14,4 +14,9 @@ export interface CompletionEntry {
14
14
  type: Type;
15
15
  }
16
16
  export declare function completionsAtPosition(ast: TemplateAST, dataType: Type, line: number, column: number): CompletionEntry[];
17
+ /**
18
+ * Resolve the type of a dotted chain (e.g. ["customer", "address"]) at a
19
+ * given cursor position, accounting for loop variables and type narrowing.
20
+ */
21
+ export declare function resolveChainAtPosition(ast: TemplateAST, dataType: Type, chain: string[], line: number): Type | undefined;
17
22
  //# sourceMappingURL=hover.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hover.d.ts","sourceRoot":"","sources":["../src/hover.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAY,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAGjD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAOD,wBAAgB,cAAc,CAC5B,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,IAAI,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,WAAW,GAAG,SAAS,CAiOzB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,IAAI,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,eAAe,EAAE,CAkHnB"}
1
+ {"version":3,"file":"hover.d.ts","sourceRoot":"","sources":["../src/hover.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAA2B,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAGhE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAOD,wBAAgB,cAAc,CAC5B,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,IAAI,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,WAAW,GAAG,SAAS,CAkOzB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;CACZ;AAkCD,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,IAAI,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,eAAe,EAAE,CAqJnB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,IAAI,EACd,KAAK,EAAE,MAAM,EAAE,EACf,IAAI,EAAE,MAAM,GACX,IAAI,GAAG,SAAS,CAuClB"}
package/dist/hover.js CHANGED
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.typeAtPosition = typeAtPosition;
4
4
  exports.completionsAtPosition = completionsAtPosition;
5
+ exports.resolveChainAtPosition = resolveChainAtPosition;
5
6
  const parser_js_1 = require("./parser.js");
6
7
  const types_js_1 = require("./types.js");
7
8
  const type_resolver_js_1 = require("./type-resolver.js");
@@ -41,7 +42,7 @@ function typeAtPosition(ast, dataType, line, column) {
41
42
  function findInExpr(node) {
42
43
  if (node.type === parser_js_1.NodeType.PropertyAccess) {
43
44
  const objText = (0, type_resolver_js_1.formatExpr)(node.object);
44
- const propStart = node.column + objText.length + 1;
45
+ const propStart = node.column + objText.length + (node.optional ? 2 : 1);
45
46
  if (line === node.line && column >= propStart && column < propStart + node.property.length) {
46
47
  const type = resolver.resolveExprType(node);
47
48
  const text = (0, type_resolver_js_1.formatExpr)(node);
@@ -162,7 +163,8 @@ function typeAtPosition(ast, dataType, line, column) {
162
163
  const exprResult = findInExpr(node.expression);
163
164
  if (exprResult)
164
165
  return exprResult;
165
- const withType = resolver.resolveExprType(node.expression);
166
+ const rawWithType = resolver.resolveExprType(node.expression);
167
+ const withType = (0, types_js_1.narrowNullish)(rawWithType) ?? rawWithType;
166
168
  const withPath = resolveExprPath(node.expression);
167
169
  resolver.pushScope(withType);
168
170
  scopePathStack.push(withPath);
@@ -251,6 +253,43 @@ function typeAtPosition(ast, dataType, line, column) {
251
253
  }
252
254
  return undefined;
253
255
  }
256
+ function addUndefined(type) {
257
+ if (type.kind === types_js_1.TypeKind.Undefined)
258
+ return type;
259
+ if (type.kind === types_js_1.TypeKind.Union) {
260
+ if (type.types.some(t => t.kind === types_js_1.TypeKind.Undefined))
261
+ return type;
262
+ return { kind: types_js_1.TypeKind.Union, types: [...type.types, { kind: types_js_1.TypeKind.Undefined }] };
263
+ }
264
+ return { kind: types_js_1.TypeKind.Union, types: [type, { kind: types_js_1.TypeKind.Undefined }] };
265
+ }
266
+ function deduplicateTypes(types) {
267
+ const seen = new Set();
268
+ const result = [];
269
+ for (const t of types) {
270
+ const key = typeKey(t);
271
+ if (!seen.has(key)) {
272
+ seen.add(key);
273
+ result.push(t);
274
+ }
275
+ }
276
+ return result;
277
+ }
278
+ function typeKey(t) {
279
+ if (t.kind === types_js_1.TypeKind.Object)
280
+ return "object:" + [...t.properties.keys()].sort().join(",");
281
+ if (t.kind === types_js_1.TypeKind.Union)
282
+ return "union:" + t.types.map(typeKey).sort().join("|");
283
+ if (t.kind === types_js_1.TypeKind.Array)
284
+ return "array:" + typeKey(t.elementType);
285
+ if (t.kind === types_js_1.TypeKind.StringLiteral)
286
+ return "strlit:" + t.value;
287
+ if (t.kind === types_js_1.TypeKind.NumberLiteral)
288
+ return "numlit:" + t.value;
289
+ if (t.kind === types_js_1.TypeKind.BooleanLiteral)
290
+ return "boollit:" + t.value;
291
+ return types_js_1.TypeKind[t.kind];
292
+ }
254
293
  function completionsAtPosition(ast, dataType, line, column) {
255
294
  const resolver = new type_resolver_js_1.TypeResolver(dataType);
256
295
  function getProperties(type) {
@@ -258,127 +297,199 @@ function completionsAtPosition(ast, dataType, line, column) {
258
297
  return [...type.properties.entries()].map(([name, t]) => ({ name, type: t }));
259
298
  }
260
299
  if (type.kind === types_js_1.TypeKind.Union) {
261
- for (const t of type.types) {
262
- if (t.kind === types_js_1.TypeKind.Null || t.kind === types_js_1.TypeKind.Undefined)
263
- continue;
264
- const props = getProperties(t);
265
- if (props.length > 0)
266
- return props;
300
+ const objectTypes = type.types.filter((t) => t.kind === types_js_1.TypeKind.Object);
301
+ if (objectTypes.length === 0)
302
+ return [];
303
+ // Collect all property names across all object members
304
+ const allNames = new Set();
305
+ for (const t of objectTypes) {
306
+ for (const name of t.properties.keys())
307
+ allNames.add(name);
267
308
  }
309
+ return [...allNames].map((name) => {
310
+ const memberTypes = [];
311
+ let missingCount = 0;
312
+ for (const t of objectTypes) {
313
+ const prop = t.properties.get(name);
314
+ if (prop) {
315
+ memberTypes.push(prop);
316
+ }
317
+ else {
318
+ missingCount++;
319
+ }
320
+ }
321
+ // If not present in all members, add undefined
322
+ let propType;
323
+ if (memberTypes.length === 1) {
324
+ propType = memberTypes[0];
325
+ }
326
+ else {
327
+ // Deduplicate identical types
328
+ const unique = deduplicateTypes(memberTypes);
329
+ propType = unique.length === 1 ? unique[0] : { kind: types_js_1.TypeKind.Union, types: unique };
330
+ }
331
+ if (missingCount > 0) {
332
+ propType = addUndefined(propType);
333
+ }
334
+ return { name, type: propType };
335
+ });
268
336
  }
269
337
  return [];
270
338
  }
271
- function posAfterNode(node) {
272
- return line > node.line || (line === node.line && column > node.column);
339
+ function buildResult() {
340
+ const entries = getProperties(resolver.currentScope()).map(entry => {
341
+ const narrowed = resolver.getNarrowedType(entry.name);
342
+ return narrowed ? { name: entry.name, type: narrowed } : entry;
343
+ });
344
+ const loopVars = resolver.getLoopVars().map(lv => {
345
+ const narrowed = resolver.getNarrowedType(lv.variable);
346
+ return { name: lv.variable, type: narrowed ?? lv.type };
347
+ });
348
+ return [...loopVars, ...entries];
273
349
  }
274
- function searchNode(node) {
350
+ // Walk the AST and find the deepest block containing the cursor line.
351
+ // Track the resolver state (scopes, loop vars, narrowings) as we go,
352
+ // so that the result reflects the context at the cursor position.
353
+ let bestResult = buildResult();
354
+ function walkNodes(nodes) {
355
+ for (const node of nodes) {
356
+ // Only process nodes at or before the cursor line
357
+ if (node.line > line)
358
+ continue;
359
+ walkNode(node);
360
+ }
361
+ }
362
+ function walkNode(node) {
275
363
  switch (node.type) {
276
364
  case parser_js_1.NodeType.ForBlock: {
365
+ if (line > node.endLine)
366
+ break;
277
367
  const iterableType = resolver.resolveExprType(node.iterable);
278
368
  const elementType = iterableType.kind === types_js_1.TypeKind.Array ? iterableType.elementType : { kind: types_js_1.TypeKind.Any };
279
369
  resolver.pushLoopVar(node.variable, elementType);
280
- for (const child of node.body) {
281
- const r = searchNode(child);
282
- if (r) {
283
- resolver.popLoopVar();
284
- return r;
285
- }
286
- }
287
- if (node.emptyBlock) {
288
- for (const child of node.emptyBlock) {
289
- const r = searchNode(child);
290
- if (r) {
291
- resolver.popLoopVar();
292
- return r;
293
- }
294
- }
295
- }
370
+ bestResult = buildResult();
371
+ walkNodes(node.body);
372
+ if (node.emptyBlock)
373
+ walkNodes(node.emptyBlock);
296
374
  resolver.popLoopVar();
297
- return null;
375
+ break;
298
376
  }
299
377
  case parser_js_1.NodeType.WithBlock: {
300
- const withType = resolver.resolveExprType(node.expression);
378
+ if (line > node.endLine)
379
+ break;
380
+ const rawWithType = resolver.resolveExprType(node.expression);
381
+ const withType = (0, types_js_1.narrowNullish)(rawWithType) ?? rawWithType;
301
382
  resolver.pushScope(withType);
302
- for (const child of node.body) {
303
- const r = searchNode(child);
304
- if (r) {
305
- resolver.popScope();
306
- return r;
307
- }
308
- }
383
+ bestResult = buildResult();
384
+ walkNodes(node.body);
309
385
  resolver.popScope();
310
- if (node.emptyBlock) {
311
- for (const child of node.emptyBlock) {
312
- const r = searchNode(child);
313
- if (r)
314
- return r;
315
- }
316
- }
317
- return null;
386
+ if (node.emptyBlock)
387
+ walkNodes(node.emptyBlock);
388
+ break;
318
389
  }
319
390
  case parser_js_1.NodeType.IfBlock: {
320
- for (const child of node.consequent) {
321
- const r = searchNode(child);
322
- if (r)
323
- return r;
324
- }
391
+ if (line > node.endLine)
392
+ break;
393
+ const narrowings = resolver.extractNarrowings(node.condition);
394
+ const consequentMap = resolver.buildNarrowingMap(narrowings, "consequent");
395
+ resolver.pushNarrowing(consequentMap);
396
+ bestResult = buildResult();
397
+ walkNodes(node.consequent);
398
+ const consequentResult = bestResult;
399
+ resolver.popNarrowing(consequentMap);
325
400
  if (node.alternate) {
326
- if (Array.isArray(node.alternate)) {
327
- for (const child of node.alternate) {
328
- const r = searchNode(child);
329
- if (r)
330
- return r;
401
+ const altFirstLine = Array.isArray(node.alternate)
402
+ ? node.alternate[0]?.line
403
+ : node.alternate.line;
404
+ if (altFirstLine !== undefined && altFirstLine <= line) {
405
+ const alternateMap = resolver.buildNarrowingMap(narrowings, "alternate");
406
+ resolver.pushNarrowing(alternateMap);
407
+ bestResult = buildResult();
408
+ if (Array.isArray(node.alternate)) {
409
+ walkNodes(node.alternate);
410
+ }
411
+ else {
412
+ walkNode(node.alternate);
331
413
  }
414
+ resolver.popNarrowing(alternateMap);
332
415
  }
333
416
  else {
334
- const r = searchNode(node.alternate);
335
- if (r)
336
- return r;
417
+ bestResult = consequentResult;
337
418
  }
338
419
  }
339
- return null;
420
+ break;
340
421
  }
341
422
  case parser_js_1.NodeType.SwitchBlock: {
423
+ if (line > node.endLine)
424
+ break;
342
425
  for (const c of node.cases) {
343
- for (const child of c.body) {
344
- const r = searchNode(child);
345
- if (r)
346
- return r;
347
- }
426
+ walkNodes(c.body);
348
427
  }
349
- if (node.defaultCase) {
350
- for (const child of node.defaultCase) {
351
- const r = searchNode(child);
352
- if (r)
353
- return r;
354
- }
355
- }
356
- return null;
428
+ if (node.defaultCase)
429
+ walkNodes(node.defaultCase);
430
+ break;
357
431
  }
358
432
  case parser_js_1.NodeType.LayoutBlock: {
359
- for (const child of node.body) {
360
- const r = searchNode(child);
361
- if (r)
362
- return r;
363
- }
364
- return null;
433
+ walkNodes(node.body);
434
+ break;
365
435
  }
366
- case parser_js_1.NodeType.Expression:
367
- case parser_js_1.NodeType.RawExpression:
368
- if (node.line === line && posAfterNode(node)) {
369
- const entries = getProperties(resolver.currentScope());
370
- return entries;
371
- }
372
- return null;
373
436
  default:
374
- return null;
437
+ break;
375
438
  }
376
439
  }
377
- for (const node of ast.body) {
378
- const result = searchNode(node);
379
- if (result)
380
- return result;
440
+ walkNodes(ast.body);
441
+ return bestResult;
442
+ }
443
+ /**
444
+ * Resolve the type of a dotted chain (e.g. ["customer", "address"]) at a
445
+ * given cursor position, accounting for loop variables and type narrowing.
446
+ */
447
+ function resolveChainAtPosition(ast, dataType, chain, line) {
448
+ // First, get the completions at this position to find the root variable type
449
+ const entries = completionsAtPosition(ast, dataType, line, 0);
450
+ if (chain.length === 0)
451
+ return undefined;
452
+ const rootName = chain[0];
453
+ const rootEntry = entries.find(e => e.name === rootName);
454
+ if (!rootEntry)
455
+ return undefined;
456
+ let type = rootEntry.type;
457
+ for (let i = 1; i < chain.length; i++) {
458
+ const name = chain[i];
459
+ if (type.kind === types_js_1.TypeKind.Object) {
460
+ const prop = type.properties.get(name);
461
+ if (!prop)
462
+ return undefined;
463
+ type = prop;
464
+ }
465
+ else if (type.kind === types_js_1.TypeKind.Union) {
466
+ const objectTypes = type.types.filter(t => t.kind === types_js_1.TypeKind.Object);
467
+ const memberTypes = [];
468
+ let missingCount = 0;
469
+ for (const t of objectTypes) {
470
+ if (t.kind !== types_js_1.TypeKind.Object)
471
+ continue;
472
+ const prop = t.properties.get(name);
473
+ if (prop) {
474
+ memberTypes.push(prop);
475
+ }
476
+ else {
477
+ missingCount++;
478
+ }
479
+ }
480
+ if (memberTypes.length === 0)
481
+ return undefined;
482
+ type = memberTypes.length === 1 ? memberTypes[0] : { kind: types_js_1.TypeKind.Union, types: deduplicateTypes(memberTypes) };
483
+ if (missingCount > 0)
484
+ type = addUndefined(type);
485
+ }
486
+ else if (type.kind === types_js_1.TypeKind.Any) {
487
+ return type;
488
+ }
489
+ else {
490
+ return undefined;
491
+ }
381
492
  }
382
- return getProperties(resolver.currentScope());
493
+ return type;
383
494
  }
384
495
  //# sourceMappingURL=hover.js.map
package/dist/hover.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hover.js","sourceRoot":"","sources":["../src/hover.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hover.js","sourceRoot":"","sources":["../src/hover.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { tokenize, TokenType, type Token } from "./lexer.js";
2
2
  export { parse, ParseError, NodeType, type TemplateAST, type TypeDirective, type ASTNode, type ExprNode, type TextNode, type ExpressionNode, type RawExpressionNode, type IdentifierNode, type PropertyAccessNode, type BinaryExpressionNode, type UnaryExpressionNode, type StringLiteralNode, type NumberLiteralNode, type IfBlockNode, type ForBlockNode, type SwitchBlockNode, type SwitchCase, type WithBlockNode, type CommentNode, type PartialNode, type MetaVariableNode, type LayoutBlockNode, type ContentNode, } from "./parser.js";
3
3
  export { TypeKind, formatType, formatTypeDefinition, type Type, type TString, type TNumber, type TBoolean, type TNull, type TUndefined, type TAny, type TArray, type TObject, type TUnion, type TStringLiteral, type TNumberLiteral, type TBooleanLiteral, } from "./types.js";
4
- export { typecheck, type Diagnostic, type TypecheckContext } from "./checker.js";
5
- export { typeAtPosition, completionsAtPosition, type HoverResult, type CompletionEntry } from "./hover.js";
4
+ export { typecheck, checkMissingImport, type Diagnostic, type TypecheckContext } from "./checker.js";
5
+ export { typeAtPosition, completionsAtPosition, resolveChainAtPosition, type HoverResult, type CompletionEntry } from "./hover.js";
6
6
  export { resolveType, listExportedTypes, findDeclaration, type DeclarationLocation } from "./resolver.js";
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EACL,KAAK,EACL,UAAU,EACV,QAAQ,EACR,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,QAAQ,EACR,UAAU,EACV,oBAAoB,EACpB,KAAK,IAAI,EACT,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,KAAK,EACV,KAAK,UAAU,EACf,KAAK,IAAI,EACT,KAAK,MAAM,EACX,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAC3G,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,eAAe,EAAE,KAAK,mBAAmB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EACL,KAAK,EACL,UAAU,EACV,QAAQ,EACR,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,QAAQ,EACR,UAAU,EACV,oBAAoB,EACpB,KAAK,IAAI,EACT,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,KAAK,EACV,KAAK,UAAU,EACf,KAAK,IAAI,EACT,KAAK,MAAM,EACX,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,KAAK,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrG,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AACnI,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,eAAe,EAAE,KAAK,mBAAmB,EAAE,MAAM,eAAe,CAAC"}