@platformos/platformos-language-server-common 0.0.5 → 0.0.7

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.
Files changed (77) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/ClientCapabilities.js +1 -1
  3. package/dist/ClientCapabilities.js.map +1 -1
  4. package/dist/PropertyShapeInference.d.ts +0 -18
  5. package/dist/PropertyShapeInference.js +1 -59
  6. package/dist/PropertyShapeInference.js.map +1 -1
  7. package/dist/TypeSystem.js +26 -225
  8. package/dist/TypeSystem.js.map +1 -1
  9. package/dist/completions/params/LiquidCompletionParams.js +0 -3
  10. package/dist/completions/params/LiquidCompletionParams.js.map +1 -1
  11. package/dist/completions/providers/FilterCompletionProvider.js.map +1 -1
  12. package/dist/completions/providers/TranslationCompletionProvider.js +1 -1
  13. package/dist/completions/providers/TranslationCompletionProvider.js.map +1 -1
  14. package/dist/diagnostics/runChecks.d.ts +2 -1
  15. package/dist/diagnostics/runChecks.js +2 -2
  16. package/dist/diagnostics/runChecks.js.map +1 -1
  17. package/dist/documentHighlights/providers/HtmlTagNameDocumentHighlightsProvider.d.ts +1 -1
  18. package/dist/formatting/OnTypeFormattingProvider.d.ts +1 -1
  19. package/dist/formatting/providers/HtmlElementAutoclosingOnTypeFormattingProvider.js.map +1 -1
  20. package/dist/linkedEditingRanges/providers/HtmlTagNameLinkedRangesProvider.d.ts +1 -1
  21. package/dist/progress.js.map +1 -1
  22. package/dist/server/Configuration.d.ts +7 -5
  23. package/dist/server/Configuration.js +10 -7
  24. package/dist/server/Configuration.js.map +1 -1
  25. package/dist/server/startServer.js +3 -2
  26. package/dist/server/startServer.js.map +1 -1
  27. package/dist/test/MockConnection.d.ts +15 -15
  28. package/dist/tsconfig.tsbuildinfo +1 -1
  29. package/package.json +9 -9
  30. package/src/ClientCapabilities.ts +1 -1
  31. package/src/TypeSystem.spec.ts +6 -9
  32. package/src/TypeSystem.ts +2 -2
  33. package/src/completions/providers/ContentForBlockTypeCompletionProvider.spec.ts +1 -1
  34. package/src/completions/providers/ContentForCompletionProvider.spec.ts +1 -1
  35. package/src/completions/providers/ContentForParameterCompletionProvider.spec.ts +2 -2
  36. package/src/completions/providers/FilterCompletionProvider.spec.ts +1 -1
  37. package/src/completions/providers/FilterCompletionProvider.ts +6 -6
  38. package/src/completions/providers/FilterNamedParameterCompletionProvider.spec.ts +1 -1
  39. package/src/completions/providers/HtmlAttributeCompletionProvider.spec.ts +1 -1
  40. package/src/completions/providers/HtmlAttributeValueCompletionProvider.spec.ts +1 -1
  41. package/src/completions/providers/HtmlTagCompletionProvider.spec.ts +1 -1
  42. package/src/completions/providers/LiquidDocParamTypeCompletionProvider.spec.ts +1 -1
  43. package/src/completions/providers/LiquidDocTagCompletionProvider.spec.ts +1 -1
  44. package/src/completions/providers/LiquidTagsCompletionProvider.spec.ts +1 -1
  45. package/src/completions/providers/ObjectAttributeCompletionProvider.spec.ts +1 -1
  46. package/src/completions/providers/PartialCompletionProvider.spec.ts +4 -4
  47. package/src/completions/providers/RenderPartialParameterCompletionProvider.spec.ts +1 -1
  48. package/src/completions/providers/TranslationCompletionProvider.spec.ts +1 -1
  49. package/src/completions/providers/TranslationCompletionProvider.ts +1 -1
  50. package/src/css/CSSLanguageService.spec.ts +8 -10
  51. package/src/diagnostics/runChecks.ts +7 -2
  52. package/src/formatting/providers/HtmlElementAutoclosingOnTypeFormattingProvider.spec.ts +3 -2
  53. package/src/formatting/providers/HtmlElementAutoclosingOnTypeFormattingProvider.ts +1 -3
  54. package/src/hover/providers/ContentForArgumentHoverProvider.spec.ts +1 -1
  55. package/src/hover/providers/ContentForTypeHoverProvider.spec.ts +1 -1
  56. package/src/hover/providers/HtmlAttributeHoverProvider.spec.ts +1 -1
  57. package/src/hover/providers/HtmlAttributeValueHoverProvider.spec.ts +1 -1
  58. package/src/hover/providers/HtmlTagHoverProvider.spec.ts +1 -1
  59. package/src/hover/providers/LiquidDocTagHoverProvider.spec.ts +1 -1
  60. package/src/hover/providers/LiquidFilterArgumentHoverProvider.spec.ts +1 -1
  61. package/src/hover/providers/LiquidFilterHoverProvider.spec.ts +1 -1
  62. package/src/hover/providers/LiquidObjectAttributeHoverProvider.spec.ts +1 -1
  63. package/src/hover/providers/LiquidTagHoverProvider.spec.ts +1 -1
  64. package/src/hover/providers/RenderPartialHoverProvider.spec.ts +1 -1
  65. package/src/hover/providers/RenderPartialParameterHoverProvider.spec.ts +1 -1
  66. package/src/hover/providers/TranslationHoverProvider.spec.ts +1 -1
  67. package/src/progress.ts +4 -1
  68. package/src/server/Configuration.ts +14 -5
  69. package/src/server/startServer.spec.ts +6 -6
  70. package/src/server/startServer.ts +4 -3
  71. package/src/test/CompletionItemsAssertion.spec.ts +1 -1
  72. package/dist/codeActions/providers/GenerateDocBlockProvider.d.ts +0 -10
  73. package/dist/codeActions/providers/GenerateDocBlockProvider.js +0 -39
  74. package/dist/codeActions/providers/GenerateDocBlockProvider.js.map +0 -1
  75. package/dist/commands/providers/GenerateDocBlockCommandProvider.d.ts +0 -19
  76. package/dist/commands/providers/GenerateDocBlockCommandProvider.js +0 -64
  77. package/dist/commands/providers/GenerateDocBlockCommandProvider.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # @platformos/theme-language-server-common
2
2
 
3
+ ## 0.0.7
4
+
5
+ ### Patch Changes
6
+
7
+ - Update dependencies
8
+ - Updated dependencies
9
+ - @platformos/liquid-html-parser@0.0.7
10
+ - @platformos/platformos-check-common@0.0.7
11
+ - @platformos/platformos-graph@0.0.7
12
+
13
+ ## 0.0.6
14
+
15
+ ### Patch Changes
16
+
17
+ - Beta release
18
+ - Updated dependencies
19
+ - @platformos/liquid-html-parser@0.0.6
20
+ - @platformos/platformos-check-common@0.0.6
21
+ - @platformos/platformos-graph@0.0.6
22
+
3
23
  ## 0.0.5
4
24
 
5
25
  ### Patch Changes
@@ -32,7 +32,7 @@ class ClientCapabilities {
32
32
  return !!this.capabilities?.window?.workDoneProgress;
33
33
  }
34
34
  initializationOption(key, defaultValue) {
35
- // { 'themeCheck.checkOnSave': true }
35
+ // { 'platformosCheck.checkOnSave': true }
36
36
  const direct = this.initializationOptions?.[key];
37
37
  if (direct !== undefined)
38
38
  return direct;
@@ -1 +1 @@
1
- {"version":3,"file":"ClientCapabilities.js","sourceRoot":"","sources":["../src/ClientCapabilities.ts"],"names":[],"mappings":";;;AAKA,MAAa,kBAAkB;IAA/B;QACU,iBAAY,GAAgC,EAAE,CAAC;QAC/C,0BAAqB,GAA+C,EAAE,CAAC;IAkDjF,CAAC;IAhDC,KAAK,CACH,YAAwC,EACxC,wBAAmE,EAAE;QAErE,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;IACrD,CAAC;IAED,IAAI,gCAAgC;QAClC,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,aAAa,CAAC;IACvD,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC;IACnD,CAAC;IAED,IAAI,0BAA0B;QAC5B,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,gBAAgB,CAAC;IAC1D,CAAC;IAED,IAAI,mDAAmD;QACrD,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,sBAAsB,EAAE,mBAAmB,CAAC;IACrF,CAAC;IAED,IAAI,kDAAkD;QACpD,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,qBAAqB,EAAE,mBAAmB,CAAC;IACpF,CAAC;IAED,IAAI,sBAAsB;QACxB,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC;IACnD,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,gBAAgB,CAAC;IACvD,CAAC;IAED,oBAAoB,CAAI,GAAW,EAAE,YAAe;QAClD,qCAAqC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;QAExC,wCAAwC;QACxC,MAAM,MAAM,GAAG,OAAO,CAAI,IAAI,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;QAC3D,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;QAExC,WAAW;QACX,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AApDD,gDAoDC;AAED,SAAS,OAAO,CAAI,GAAQ,EAAE,GAAW;IACvC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"ClientCapabilities.js","sourceRoot":"","sources":["../src/ClientCapabilities.ts"],"names":[],"mappings":";;;AAKA,MAAa,kBAAkB;IAA/B;QACU,iBAAY,GAAgC,EAAE,CAAC;QAC/C,0BAAqB,GAA+C,EAAE,CAAC;IAkDjF,CAAC;IAhDC,KAAK,CACH,YAAwC,EACxC,wBAAmE,EAAE;QAErE,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;IACrD,CAAC;IAED,IAAI,gCAAgC;QAClC,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,aAAa,CAAC;IACvD,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC;IACnD,CAAC;IAED,IAAI,0BAA0B;QAC5B,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,gBAAgB,CAAC;IAC1D,CAAC;IAED,IAAI,mDAAmD;QACrD,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,sBAAsB,EAAE,mBAAmB,CAAC;IACrF,CAAC;IAED,IAAI,kDAAkD;QACpD,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,qBAAqB,EAAE,mBAAmB,CAAC;IACpF,CAAC;IAED,IAAI,sBAAsB;QACxB,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC;IACnD,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,gBAAgB,CAAC;IACvD,CAAC;IAED,oBAAoB,CAAI,GAAW,EAAE,YAAe;QAClD,0CAA0C;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;QAExC,wCAAwC;QACxC,MAAM,MAAM,GAAG,OAAO,CAAI,IAAI,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;QAC3D,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;QAExC,WAAW;QACX,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AApDD,gDAoDC;AAED,SAAS,OAAO,CAAI,GAAQ,EAAE,GAAW;IACvC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5D,CAAC"}
@@ -1,4 +1,3 @@
1
- import { JsonHashLiteral, JsonArrayLiteral, LiquidExpression } from '@platformos/liquid-html-parser';
2
1
  export interface PropertyShape {
3
2
  kind: 'object' | 'array' | 'primitive';
4
3
  /** For objects: map of property name to nested shape */
@@ -13,10 +12,6 @@ export interface LookupResult {
13
12
  error?: 'unknown_property' | 'primitive_access';
14
13
  errorAt?: number;
15
14
  }
16
- /**
17
- * Merge two shapes together, combining their properties
18
- */
19
- export declare function mergeShapes(a: PropertyShape, b: PropertyShape): PropertyShape;
20
15
  /**
21
16
  * Infer shape from a parsed JSON value
22
17
  */
@@ -25,19 +20,6 @@ export declare function inferShapeFromJSON(value: unknown): PropertyShape;
25
20
  * Try to parse a string as JSON and infer its shape
26
21
  */
27
22
  export declare function inferShapeFromJSONString(jsonString: string): PropertyShape | undefined;
28
- /**
29
- * Optional callback to resolve expressions the shape inferrer can't handle
30
- * (e.g. variable lookups that require the type system).
31
- */
32
- export type ExpressionShapeResolver = (expr: LiquidExpression) => PropertyShape | undefined;
33
- /**
34
- * Infer shape from a JSON literal AST node (JsonHashLiteral or JsonArrayLiteral).
35
- * This mirrors inferShapeFromJSON but walks AST nodes instead of parsed JS values.
36
- *
37
- * @param resolveExpression - Optional callback to resolve variable references and
38
- * other expressions that require type system context.
39
- */
40
- export declare function inferShapeFromJsonLiteral(node: JsonHashLiteral | JsonArrayLiteral, resolveExpression?: ExpressionShapeResolver): PropertyShape;
41
23
  /**
42
24
  * Extract response shape from GraphQL document content
43
25
  * @param content - The GraphQL query/mutation content
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mergeShapes = mergeShapes;
4
3
  exports.inferShapeFromJSON = inferShapeFromJSON;
5
4
  exports.inferShapeFromJSONString = inferShapeFromJSONString;
6
- exports.inferShapeFromJsonLiteral = inferShapeFromJsonLiteral;
7
5
  exports.inferShapeFromGraphQL = inferShapeFromGraphQL;
8
6
  exports.lookupPropertyPath = lookupPropertyPath;
9
7
  exports.getAvailableProperties = getAvailableProperties;
@@ -14,7 +12,6 @@ exports.mergePropertyIntoShape = mergePropertyIntoShape;
14
12
  const language_1 = require("graphql/language");
15
13
  const graphql_1 = require("graphql");
16
14
  const platformos_check_common_1 = require("@platformos/platformos-check-common");
17
- const liquid_html_parser_1 = require("@platformos/liquid-html-parser");
18
15
  /**
19
16
  * Merge two shapes together, combining their properties
20
17
  */
@@ -94,61 +91,6 @@ function inferShapeFromJSONString(jsonString) {
94
91
  }
95
92
  return inferShapeFromJSON(parsed);
96
93
  }
97
- /**
98
- * Infer shape from a JSON literal AST node (JsonHashLiteral or JsonArrayLiteral).
99
- * This mirrors inferShapeFromJSON but walks AST nodes instead of parsed JS values.
100
- *
101
- * @param resolveExpression - Optional callback to resolve variable references and
102
- * other expressions that require type system context.
103
- */
104
- function inferShapeFromJsonLiteral(node, resolveExpression) {
105
- if (node.type === liquid_html_parser_1.NodeTypes.JsonHashLiteral) {
106
- const properties = new Map();
107
- for (const entry of node.entries) {
108
- const key = getJsonKeyName(entry.key);
109
- if (key !== undefined) {
110
- properties.set(key, inferShapeFromExpression(entry.value, resolveExpression));
111
- }
112
- }
113
- return { kind: 'object', properties };
114
- }
115
- // JsonArrayLiteral
116
- let itemShape;
117
- for (const element of node.elements) {
118
- const shape = inferShapeFromExpression(element, resolveExpression);
119
- itemShape = itemShape ? mergeShapes(itemShape, shape) : shape;
120
- }
121
- return { kind: 'array', itemShape };
122
- }
123
- function getJsonKeyName(key) {
124
- switch (key.type) {
125
- case liquid_html_parser_1.NodeTypes.String:
126
- return key.value;
127
- case liquid_html_parser_1.NodeTypes.VariableLookup:
128
- return key.name ?? undefined;
129
- default:
130
- return undefined;
131
- }
132
- }
133
- function inferShapeFromExpression(expr, resolveExpression) {
134
- switch (expr.type) {
135
- case liquid_html_parser_1.NodeTypes.JsonHashLiteral:
136
- case liquid_html_parser_1.NodeTypes.JsonArrayLiteral:
137
- return inferShapeFromJsonLiteral(expr, resolveExpression);
138
- case liquid_html_parser_1.NodeTypes.String:
139
- return { kind: 'primitive', primitiveType: 'string' };
140
- case liquid_html_parser_1.NodeTypes.Number:
141
- return { kind: 'primitive', primitiveType: 'number' };
142
- case liquid_html_parser_1.NodeTypes.LiquidLiteral:
143
- if (expr.value === null)
144
- return { kind: 'primitive', primitiveType: 'null' };
145
- if (typeof expr.value === 'boolean')
146
- return { kind: 'primitive', primitiveType: 'boolean' };
147
- return { kind: 'primitive' };
148
- default:
149
- return resolveExpression?.(expr) ?? { kind: 'primitive' };
150
- }
151
- }
152
94
  /**
153
95
  * Unwrap NonNull and get the underlying type
154
96
  */
@@ -316,7 +258,7 @@ function shapeToTypeString(shape) {
316
258
  return 'array';
317
259
  }
318
260
  if (shape.kind === 'object') {
319
- return 'hash';
261
+ return 'object';
320
262
  }
321
263
  return 'any';
322
264
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PropertyShapeInference.js","sourceRoot":"","sources":["../src/PropertyShapeInference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PropertyShapeInference.js","sourceRoot":"","sources":["../src/PropertyShapeInference.ts"],"names":[],"mappings":"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"}
@@ -346,184 +346,41 @@ async function buildSymbolsTable(partialAst, seedSymbolsTable, liquidDrops, grap
346
346
  const typeRanges = await (0, platformos_check_common_2.visit)(partialAst, {
347
347
  // {% assign x = foo.x | filter %}
348
348
  // {% assign x = '{"a": 1}' | parse_json %}
349
- // {% assign x = {a: 1, b: "hello"} %}
350
- // {% assign x["key"] = value %}
351
- // {% assign arr << item %}
352
349
  async AssignMarkup(node) {
353
- const expression = node.value.expression;
354
- let valueShape;
355
- // Resolver for variable references inside JSON literals
356
- const resolveExpr = (expr) => {
357
- if (expr.type !== liquid_html_parser_1.NodeTypes.VariableLookup || !expr.name)
358
- return undefined;
359
- // Look up the variable's shape from already-processed assignments
360
- const shapes = variableShapes.get(expr.name);
361
- const shapeEntry = shapes
362
- ? findLastApplicableShape(shapes, node.position.start)
363
- : undefined;
364
- let shape = shapeEntry?.shape;
365
- // Fall back to seedSymbolsTable
366
- if (!shape && seedSymbolsTable[expr.name]) {
367
- for (const tr of seedSymbolsTable[expr.name]) {
368
- if (tr.range[0] < node.position.start) {
369
- if (typeof tr.type !== 'string' && tr.type.kind === 'shape') {
370
- shape = tr.type.shape;
371
- }
372
- else if (typeof tr.type === 'string' || tr.type.kind === 'array') {
373
- shape = resolvedTypeToShape(tr.type);
374
- }
375
- }
376
- }
377
- }
378
- if (!shape)
379
- return undefined;
380
- // Resolve lookups (e.g. a.x or a["key"])
381
- for (const lookup of expr.lookups) {
382
- if (shape.kind === 'object' && lookup.type === liquid_html_parser_1.NodeTypes.String && shape.properties) {
383
- const prop = shape.properties.get(lookup.value);
384
- if (prop) {
385
- shape = prop;
386
- }
387
- else {
388
- return undefined;
389
- }
390
- }
391
- else if (shape.kind === 'array') {
392
- if (lookup.type === liquid_html_parser_1.NodeTypes.Number ||
393
- (lookup.type === liquid_html_parser_1.NodeTypes.String &&
394
- (lookup.value === 'first' || lookup.value === 'last'))) {
395
- shape = shape.itemShape;
396
- if (!shape)
397
- return undefined;
398
- }
399
- else {
400
- return undefined;
401
- }
402
- }
403
- else {
404
- return undefined;
405
- }
350
+ // Check if this has a parse_json or to_hash filter
351
+ const hasParseJsonFilter = node.value.filters?.some((f) => f.name === 'parse_json' || f.name === 'to_hash');
352
+ if (hasParseJsonFilter) {
353
+ let jsonString;
354
+ // Check if expression is a direct JSON string
355
+ if (node.value.expression.type === liquid_html_parser_1.NodeTypes.String) {
356
+ jsonString = node.value.expression.value;
406
357
  }
407
- return shape;
408
- };
409
- // Case 1: JSON literal expression
410
- if (expression.type === liquid_html_parser_1.NodeTypes.JsonHashLiteral ||
411
- expression.type === liquid_html_parser_1.NodeTypes.JsonArrayLiteral) {
412
- valueShape = (0, PropertyShapeInference_1.inferShapeFromJsonLiteral)(expression, resolveExpr);
413
- }
414
- // Case 2: parse_json / to_hash filter on a string
415
- if (!valueShape) {
416
- const hasParseJsonFilter = node.value.filters?.some((f) => f.name === 'parse_json' || f.name === 'to_hash');
417
- if (hasParseJsonFilter) {
418
- let jsonString;
419
- if (expression.type === liquid_html_parser_1.NodeTypes.String) {
420
- jsonString = expression.value;
421
- }
422
- if (!jsonString && node.value.filters) {
423
- const defaultFilter = node.value.filters.find((f) => f.name === 'default');
424
- if (defaultFilter &&
425
- defaultFilter.args &&
426
- defaultFilter.args.length > 0 &&
427
- defaultFilter.args[0].type === liquid_html_parser_1.NodeTypes.String) {
428
- jsonString = defaultFilter.args[0].value;
358
+ // Check if there's a default filter with a JSON string argument
359
+ if (!jsonString && node.value.filters) {
360
+ const defaultFilter = node.value.filters.find((f) => f.name === 'default');
361
+ if (defaultFilter && defaultFilter.args && defaultFilter.args.length > 0) {
362
+ const firstArg = defaultFilter.args[0];
363
+ if (firstArg.type === liquid_html_parser_1.NodeTypes.String) {
364
+ jsonString = firstArg.value;
429
365
  }
430
366
  }
431
- if (jsonString) {
432
- valueShape = (0, PropertyShapeInference_1.inferShapeFromJSONString)(jsonString) ?? undefined;
433
- }
434
- }
435
- }
436
- // Case 3: Infer primitive shape for << and LHS lookup scenarios
437
- if (!valueShape && ((node.lookups && node.lookups.length > 0) || node.operator === '<<')) {
438
- if (expression.type === liquid_html_parser_1.NodeTypes.String) {
439
- valueShape = { kind: 'primitive', primitiveType: 'string' };
440
367
  }
441
- else if (expression.type === liquid_html_parser_1.NodeTypes.Number) {
442
- valueShape = { kind: 'primitive', primitiveType: 'number' };
443
- }
444
- else if (expression.type === liquid_html_parser_1.NodeTypes.LiquidLiteral) {
445
- if (expression.value === null) {
446
- valueShape = { kind: 'primitive', primitiveType: 'null' };
447
- }
448
- else if (typeof expression.value === 'boolean') {
449
- valueShape = { kind: 'primitive', primitiveType: 'boolean' };
450
- }
451
- }
452
- }
453
- // Handle lookups on the LHS (assign x["key"] = value)
454
- if (node.lookups && node.lookups.length > 0) {
455
- const lookupPath = getAssignLookupPath(node.lookups);
456
- if (lookupPath && lookupPath.length > 0) {
457
- const existingShapes = variableShapes.get(node.name) || [];
458
- const existingShapeEntry = findLastApplicableShape(existingShapes, node.position.start);
459
- let baseShape;
460
- if (existingShapeEntry) {
461
- baseShape = existingShapeEntry.shape;
462
- }
463
- else {
464
- let existingType;
465
- if (seedSymbolsTable[node.name]) {
466
- for (const tr of seedSymbolsTable[node.name]) {
467
- if (tr.range[0] < node.position.start) {
468
- if (typeof tr.type !== 'string' && tr.type.kind === 'shape') {
469
- existingType = tr.type;
470
- }
471
- }
472
- }
368
+ if (jsonString) {
369
+ const shape = (0, PropertyShapeInference_1.inferShapeFromJSONString)(jsonString);
370
+ if (shape) {
371
+ // Track shape for potential hash_assign merging
372
+ if (!variableShapes.has(node.name)) {
373
+ variableShapes.set(node.name, []);
473
374
  }
474
- baseShape =
475
- existingType && isShapeType(existingType)
476
- ? existingType.shape
477
- : { kind: 'object', properties: new Map() };
375
+ variableShapes.get(node.name).push({ shape, rangeEnd: node.position.end });
376
+ return {
377
+ identifier: node.name,
378
+ type: shapeType(shape),
379
+ range: [node.position.end],
380
+ };
478
381
  }
479
- const newShape = mergeNestedPropertyIntoShape(baseShape, lookupPath, valueShape ?? { kind: 'primitive' });
480
- if (!variableShapes.has(node.name))
481
- variableShapes.set(node.name, []);
482
- variableShapes.get(node.name).push({ shape: newShape, rangeEnd: node.position.end });
483
- return {
484
- identifier: node.name,
485
- type: shapeType(newShape),
486
- range: [node.position.end],
487
- };
488
382
  }
489
383
  }
490
- // Handle << operator (array append)
491
- if (node.operator === '<<') {
492
- const itemShape = valueShape ?? { kind: 'primitive' };
493
- const existingShapes = variableShapes.get(node.name) || [];
494
- const existingShapeEntry = findLastApplicableShape(existingShapes, node.position.start);
495
- let arrayShape;
496
- if (existingShapeEntry?.shape.kind === 'array') {
497
- const existing = existingShapeEntry.shape.itemShape;
498
- arrayShape = {
499
- kind: 'array',
500
- itemShape: existing ? (0, PropertyShapeInference_1.mergeShapes)(existing, itemShape) : itemShape,
501
- };
502
- }
503
- else {
504
- arrayShape = { kind: 'array', itemShape };
505
- }
506
- if (!variableShapes.has(node.name))
507
- variableShapes.set(node.name, []);
508
- variableShapes.get(node.name).push({ shape: arrayShape, rangeEnd: node.position.end });
509
- return {
510
- identifier: node.name,
511
- type: shapeType(arrayShape),
512
- range: [node.position.end],
513
- };
514
- }
515
- // Simple assignment with shape (JSON literal or parse_json)
516
- if (valueShape) {
517
- if (!variableShapes.has(node.name))
518
- variableShapes.set(node.name, []);
519
- variableShapes.get(node.name).push({ shape: valueShape, rangeEnd: node.position.end });
520
- return {
521
- identifier: node.name,
522
- type: shapeType(valueShape),
523
- range: [node.position.end],
524
- };
525
- }
526
- // Default: lazy variable type
527
384
  return {
528
385
  identifier: node.name,
529
386
  type: lazyVariable(node.value, node.position.start),
@@ -874,15 +731,6 @@ function inferType(thing, symbolsTable, objectMap, filtersMap) {
874
731
  case liquid_html_parser_1.NodeTypes.Range: {
875
732
  return arrayType('number');
876
733
  }
877
- // JSON literal expressions: {key: val} or [1, 2, 3]
878
- case liquid_html_parser_1.NodeTypes.JsonHashLiteral:
879
- case liquid_html_parser_1.NodeTypes.JsonArrayLiteral: {
880
- const resolver = (expr) => {
881
- const type = inferType(expr, symbolsTable, objectMap, filtersMap);
882
- return resolvedTypeToShape(type);
883
- };
884
- return shapeType((0, PropertyShapeInference_1.inferShapeFromJsonLiteral)(thing, resolver));
885
- }
886
734
  // The type of the assign markup is the type of the right hand side.
887
735
  // {% assign x = y.property | filter1 | filter2 %}
888
736
  case liquid_html_parser_1.NodeTypes.AssignMarkup: {
@@ -1148,34 +996,6 @@ function shapeToType(shape) {
1148
996
  }
1149
997
  return exports.Untyped;
1150
998
  }
1151
- /**
1152
- * Convert a resolved type back to a PropertyShape (inverse of shapeToType).
1153
- * Used when embedding resolved variable types into JSON literal shapes.
1154
- */
1155
- function resolvedTypeToShape(type) {
1156
- if (typeof type === 'string') {
1157
- switch (type) {
1158
- case 'string':
1159
- return { kind: 'primitive', primitiveType: 'string' };
1160
- case 'number':
1161
- return { kind: 'primitive', primitiveType: 'number' };
1162
- case 'boolean':
1163
- return { kind: 'primitive', primitiveType: 'boolean' };
1164
- case exports.Untyped:
1165
- case exports.Unknown:
1166
- return undefined;
1167
- default:
1168
- return { kind: 'primitive' };
1169
- }
1170
- }
1171
- if (isShapeType(type))
1172
- return type.shape;
1173
- if (isArrayType(type)) {
1174
- const itemShape = resolvedTypeToShape(type.valueType);
1175
- return { kind: 'array', itemShape };
1176
- }
1177
- return undefined;
1178
- }
1179
999
  function inferPseudoTypePropertyType(curr, // settings
1180
1000
  lookup, objectMap) {
1181
1001
  const parentEntry = objectMap[curr];
@@ -1419,25 +1239,6 @@ function typeToDisplayString(type) {
1419
1239
  return type.types.map((t) => typeToDisplayString(t)).join(' | ');
1420
1240
  return 'unknown';
1421
1241
  }
1422
- /**
1423
- * Extract the lookup path from assign lookups.
1424
- * For {% assign a["key1"]["key2"] = value %}, returns ['key1', 'key2']
1425
- */
1426
- function getAssignLookupPath(lookups) {
1427
- const path = [];
1428
- for (const lookup of lookups) {
1429
- if (lookup.type === liquid_html_parser_1.NodeTypes.String) {
1430
- path.push(lookup.value);
1431
- }
1432
- else if (lookup.type === liquid_html_parser_1.NodeTypes.Number) {
1433
- path.push(`${lookup.value}`);
1434
- }
1435
- else {
1436
- return undefined;
1437
- }
1438
- }
1439
- return path.length > 0 ? path : undefined;
1440
- }
1441
1242
  /**
1442
1243
  * Extract the lookup path from a hash_assign target.
1443
1244
  * For {% hash_assign a['key1']['key2'] = value %}, returns ['key1', 'key2']