@platformos/platformos-language-server-common 0.0.5 → 0.0.6
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/CHANGELOG.md +10 -0
- package/dist/ClientCapabilities.js +1 -1
- package/dist/ClientCapabilities.js.map +1 -1
- package/dist/PropertyShapeInference.d.ts +0 -18
- package/dist/PropertyShapeInference.js +1 -59
- package/dist/PropertyShapeInference.js.map +1 -1
- package/dist/TypeSystem.js +26 -225
- package/dist/TypeSystem.js.map +1 -1
- package/dist/completions/params/LiquidCompletionParams.js +0 -3
- package/dist/completions/params/LiquidCompletionParams.js.map +1 -1
- package/dist/diagnostics/runChecks.d.ts +2 -1
- package/dist/diagnostics/runChecks.js +2 -2
- package/dist/diagnostics/runChecks.js.map +1 -1
- package/dist/server/Configuration.d.ts +7 -5
- package/dist/server/Configuration.js +10 -7
- package/dist/server/Configuration.js.map +1 -1
- package/dist/server/startServer.js +3 -2
- package/dist/server/startServer.js.map +1 -1
- package/dist/test/MockConnection.d.ts +15 -15
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/src/ClientCapabilities.ts +1 -1
- package/src/diagnostics/runChecks.ts +7 -2
- package/src/formatting/providers/HtmlElementAutoclosingOnTypeFormattingProvider.spec.ts +3 -2
- package/src/server/Configuration.ts +10 -4
- package/src/server/startServer.spec.ts +6 -6
- package/src/server/startServer.ts +4 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# @platformos/theme-language-server-common
|
|
2
2
|
|
|
3
|
+
## 0.0.6
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Beta release
|
|
8
|
+
- Updated dependencies
|
|
9
|
+
- @platformos/liquid-html-parser@0.0.6
|
|
10
|
+
- @platformos/platformos-check-common@0.0.6
|
|
11
|
+
- @platformos/platformos-graph@0.0.6
|
|
12
|
+
|
|
3
13
|
## 0.0.5
|
|
4
14
|
|
|
5
15
|
### Patch Changes
|
|
@@ -32,7 +32,7 @@ class ClientCapabilities {
|
|
|
32
32
|
return !!this.capabilities?.window?.workDoneProgress;
|
|
33
33
|
}
|
|
34
34
|
initializationOption(key, defaultValue) {
|
|
35
|
-
// { '
|
|
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,
|
|
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 '
|
|
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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"}
|
package/dist/TypeSystem.js
CHANGED
|
@@ -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
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
if
|
|
358
|
-
|
|
359
|
-
|
|
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
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
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
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
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
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
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']
|