@marko/language-server 2.1.13 → 2.1.15

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.
@@ -38,13 +38,15 @@ declare global {
38
38
 
39
39
  export function contentFor<Name>(
40
40
  tag: Name,
41
- ): Name extends { api: infer API }
42
- ? API extends "tags"
43
- ? "content"
44
- : API extends "class"
45
- ? "renderBody"
46
- : DefaultBodyContentKey
47
- : DefaultBodyContentKey;
41
+ ): [0] extends [1 & Name]
42
+ ? DefaultBodyContentKey
43
+ : Name extends { api: infer API }
44
+ ? API extends "tags"
45
+ ? "content"
46
+ : API extends "class"
47
+ ? "renderBody"
48
+ : DefaultBodyContentKey
49
+ : DefaultBodyContentKey;
48
50
 
49
51
  export const Template: new <Overrides = unknown>() => {
50
52
  [K in Exclude<
@@ -152,7 +154,7 @@ declare global {
152
154
  : Handler
153
155
  : (...args: any) => any; // If typescript ever actually supports partial application maybe we do this.
154
156
 
155
- export function renderTemplate<Name extends Marko.Template<any, any>>(
157
+ export function renderTemplate<Name>(
156
158
  template: Name,
157
159
  ): TemplateRenderer<Name>;
158
160
  export function renderNativeTag<Name extends string>(
@@ -177,19 +179,19 @@ declare global {
177
179
  >(input: Input): Input;
178
180
 
179
181
  export function forOfTag<
180
- Value extends Iterable,
182
+ Value,
181
183
  Item extends [0] extends [1 & Value]
182
184
  ? any
183
- : Value extends readonly (infer Item)[] | Iterable<infer Item>
185
+ : Value extends Iterable<infer Item>
184
186
  ? Item
185
187
  : never,
186
188
  BodyContent extends Marko.Body<
187
- [item: Item, index: number, all: Value],
189
+ [item: Item, index: number, all: Exclude<Value, false | void | null>],
188
190
  void
189
191
  >,
190
192
  >(
191
193
  input: {
192
- of: Value | false | void | null;
194
+ of: Value & (Iterable<unknown> | false | void | null);
193
195
  by?: ((item: Item, index: number) => string) | string;
194
196
  },
195
197
  content: BodyContent,
@@ -210,14 +212,14 @@ declare global {
210
212
  ): ReturnAndScope<BodyContentScope<BodyContent>, void>;
211
213
 
212
214
  export function forToTag<
213
- From extends void | number,
214
215
  To extends number,
216
+ From extends void | number,
215
217
  Step extends void | number,
216
218
  BodyContent extends Marko.Body<[index: number], void>,
217
219
  >(
218
220
  input: {
219
- from?: From;
220
221
  to: To;
222
+ from?: From;
221
223
  step?: Step;
222
224
  by?: (index: number) => string;
223
225
  },
@@ -225,14 +227,14 @@ declare global {
225
227
  ): ReturnAndScope<BodyContentScope<BodyContent>, void>;
226
228
 
227
229
  export function forUntilTag<
228
- From extends void | number,
229
230
  Until extends number,
231
+ From extends void | number,
230
232
  Step extends void | number,
231
233
  BodyContent extends Marko.Body<[index: number], void>,
232
234
  >(
233
235
  input: {
234
- from?: From;
235
236
  until: Until;
237
+ from?: From;
236
238
  step?: Step;
237
239
  by?: (index: number) => string;
238
240
  },
@@ -242,27 +244,27 @@ declare global {
242
244
  export function forTag<BodyContent extends AnyMarkoBody>(
243
245
  input: (
244
246
  | {
245
- from?: number;
246
247
  to: number;
248
+ from?: number;
247
249
  step?: number;
248
250
  }
249
251
  | {
250
- from?: number;
251
252
  until: number;
253
+ from?: number;
252
254
  step?: number;
253
255
  }
254
256
  | {
255
- in: object | false | void | null;
257
+ in: any;
256
258
  }
257
259
  | {
258
- of: Iterable<unknown> | readonly unknown[] | false | void | null;
260
+ of: any;
259
261
  }
260
- ) & { by?: (...args: unknown[]) => string },
262
+ ) & { by?: string | ((...args: unknown[]) => string) },
261
263
  content: BodyContent,
262
264
  ): ReturnAndScope<BodyContentScope<BodyContent>, void>;
263
265
 
264
266
  export function forOfAttrTag<
265
- Value extends Iterable,
267
+ Value,
266
268
  Item extends [0] extends [1 & Value]
267
269
  ? any
268
270
  : Value extends readonly (infer Item)[] | Iterable<infer Item>
@@ -271,14 +273,18 @@ declare global {
271
273
  const Return,
272
274
  >(
273
275
  input: {
274
- of: Value | false | void | null;
276
+ of: Value & (Iterable<unknown> | false | void | null);
275
277
  },
276
- content: (value: Item, index: number, all: Value) => Return,
278
+ content: (
279
+ value: Item,
280
+ index: number,
281
+ all: Exclude<Value, false | void | null>,
282
+ ) => Return,
277
283
  ): {
278
284
  [Key in keyof Return]: Return[Key] extends
279
285
  | readonly (infer Item)[]
280
286
  | (infer Item extends Record<PropertyKey, any>)
281
- ? AttrTagByListSize<Value, Item>
287
+ ? AttrTagByListSize<Exclude<Value, false | void | null>, Item>
282
288
  : never;
283
289
  };
284
290
 
@@ -296,14 +302,14 @@ declare global {
296
302
  };
297
303
 
298
304
  export function forToAttrTag<
299
- From extends void | number,
300
305
  To extends number,
306
+ From extends void | number,
301
307
  Step extends void | number,
302
308
  const Return,
303
309
  >(
304
310
  input: {
305
- from?: From;
306
311
  to: To;
312
+ from?: From;
307
313
  step?: Step;
308
314
  },
309
315
  content: (index: number) => Return,
@@ -322,14 +328,14 @@ declare global {
322
328
  };
323
329
 
324
330
  export function forUntilAttrTag<
325
- From extends void | number,
326
331
  Until extends number,
332
+ From extends void | number,
327
333
  Step extends void | number,
328
334
  const Return,
329
335
  >(
330
336
  input: {
331
- from?: From;
332
337
  until: Until;
338
+ from?: From;
333
339
  step?: Step;
334
340
  },
335
341
  content: (index: number) => Return,
@@ -350,19 +356,19 @@ declare global {
350
356
  export function forAttrTag<const Return>(
351
357
  input:
352
358
  | {
353
- of: Iterable<unknown> | readonly unknown[] | false | void | null;
359
+ of: Iterable<unknown> | false | void | null;
354
360
  }
355
361
  | {
356
- in: object;
362
+ in: object | false | void | null;
357
363
  }
358
364
  | {
359
- from?: number;
360
365
  to: number;
366
+ from?: number;
361
367
  step?: number;
362
368
  }
363
369
  | {
364
- from?: number;
365
370
  until: number;
371
+ from?: number;
366
372
  step?: number;
367
373
  },
368
374
  content: (...args: unknown[]) => Return,
@@ -420,7 +426,7 @@ declare global {
420
426
  ? Renderer
421
427
  : Template extends Marko.Template<infer Input, infer Return>
422
428
  ? BaseRenderer<Input, Return>
423
- : never;
429
+ : DefaultRenderer;
424
430
 
425
431
  export interface NativeTagRenderer<Name extends string> {
426
432
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-constraint
@@ -537,14 +543,6 @@ type MergeScopes<Scopes> = {
537
543
  : never;
538
544
  };
539
545
 
540
- type MergeOptionalScopes<Scopes> = {
541
- [K in Scopes extends Scopes ? keyof Scopes : never]: Scopes extends Scopes
542
- ? K extends keyof Scopes
543
- ? Scopes[K]
544
- : undefined
545
- : never;
546
- };
547
-
548
546
  type MergeAttrTags<Attrs extends readonly any[]> = Attrs extends readonly [
549
547
  infer A,
550
548
  infer B,
package/package.json CHANGED
@@ -1,31 +1,31 @@
1
1
  {
2
2
  "name": "@marko/language-server",
3
3
  "description": "Marko Language Server",
4
- "version": "2.1.13",
4
+ "version": "2.1.15",
5
5
  "bin": {
6
6
  "marko-language-server": "./bin.js"
7
7
  },
8
8
  "bugs": "https://github.com/marko-js/language-server/issues/new?template=Bug_report.md",
9
9
  "dependencies": {
10
10
  "@luxass/strip-json-comments": "^1.4.0",
11
- "@marko/language-tools": "^2.5.39",
12
- "@marko/compiler": "^5.39.35",
11
+ "@marko/language-tools": "^2.5.41",
12
+ "@marko/compiler": "^5.39.45",
13
13
  "htmljs-parser": "^5.7.4",
14
- "marko": "^5.37.55",
15
- "prettier": "^3.6.2",
14
+ "marko": "^5.38.1",
15
+ "prettier": "^3.7.4",
16
16
  "prettier-plugin-marko": "^3.3.2",
17
17
  "relative-import-path": "^1.0.0",
18
- "typescript": "^5.9.2",
19
- "vscode-css-languageservice": "^6.3.7",
18
+ "typescript": "^5.9.3",
19
+ "vscode-css-languageservice": "^6.3.9",
20
20
  "vscode-languageserver": "^9.0.1",
21
21
  "vscode-languageserver-textdocument": "^1.0.12",
22
22
  "vscode-uri": "^3.1.0",
23
- "axe-core": "^4.10.3",
23
+ "axe-core": "^4.11.0",
24
24
  "jsdom": "^26.1.0"
25
25
  },
26
26
  "devDependencies": {
27
- "@types/jsdom": "21.1.7",
28
- "tsx": "^4.20.5"
27
+ "@types/jsdom": "27.0.0",
28
+ "tsx": "^4.21.0"
29
29
  },
30
30
  "exports": {
31
31
  ".": {