@marko/language-tools 2.3.1 → 2.4.1
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/index.js +128 -152
- package/dist/index.mjs +128 -156
- package/dist/processors/index.d.ts +2 -2
- package/dist/util/project.d.ts +1 -1
- package/marko.internal.d.ts +46 -77
- package/package.json +9 -11
- package/dist/extractors/script/util/is-valid-identifier.d.ts +0 -1
package/marko.internal.d.ts
CHANGED
|
@@ -24,13 +24,13 @@ declare global {
|
|
|
24
24
|
|
|
25
25
|
export function getGlobal<Override>(
|
|
26
26
|
override: Override,
|
|
27
|
-
):
|
|
27
|
+
): [0] extends [1 & Override] ? Marko.Global : Override;
|
|
28
28
|
|
|
29
|
-
export function attrTagNames<Input, Keys extends keyof Input>(
|
|
29
|
+
export function attrTagNames<Input, Keys extends keyof Input & string>(
|
|
30
30
|
input: Input,
|
|
31
31
|
): Record<string, never> & {
|
|
32
32
|
[Key in Keys as `@${Input[Key] extends infer Value
|
|
33
|
-
? Value extends
|
|
33
|
+
? Value extends Marko.AttrTag<any>
|
|
34
34
|
? Key
|
|
35
35
|
: never
|
|
36
36
|
: never}`]: Input[Key];
|
|
@@ -144,7 +144,7 @@ declare global {
|
|
|
144
144
|
export function renderPreferLocal<Name, Fallback>(
|
|
145
145
|
name: Name,
|
|
146
146
|
fallback: Fallback,
|
|
147
|
-
): 0 extends 1 & Name ? Fallback : DynamicRenderer<Name>;
|
|
147
|
+
): [0] extends [1 & Name] ? Fallback : DynamicRenderer<Name>;
|
|
148
148
|
export function renderDynamicTag<Name>(tag: Name): DynamicRenderer<Name>;
|
|
149
149
|
|
|
150
150
|
export function returnTag<
|
|
@@ -211,7 +211,7 @@ declare global {
|
|
|
211
211
|
|
|
212
212
|
export function forAttrTag<
|
|
213
213
|
Value extends Iterable<any> | readonly any[],
|
|
214
|
-
Return,
|
|
214
|
+
const Return,
|
|
215
215
|
>(
|
|
216
216
|
input: {
|
|
217
217
|
of: Value;
|
|
@@ -226,12 +226,12 @@ declare global {
|
|
|
226
226
|
): {
|
|
227
227
|
[Key in keyof Return]: Return[Key] extends
|
|
228
228
|
| readonly (infer Item)[]
|
|
229
|
-
| infer Item extends Record<PropertyKey, any>
|
|
229
|
+
| (infer Item extends Record<PropertyKey, any>)
|
|
230
230
|
? AttrTagByListSize<Value, Item>
|
|
231
231
|
: never;
|
|
232
232
|
};
|
|
233
233
|
|
|
234
|
-
export function forAttrTag<Value extends object, Return>(
|
|
234
|
+
export function forAttrTag<Value extends object, const Return>(
|
|
235
235
|
input: {
|
|
236
236
|
in: Value;
|
|
237
237
|
},
|
|
@@ -239,7 +239,7 @@ declare global {
|
|
|
239
239
|
): {
|
|
240
240
|
[Key in keyof Return]: Return[Key] extends
|
|
241
241
|
| readonly (infer Item)[]
|
|
242
|
-
| infer Item extends Record<PropertyKey, any>
|
|
242
|
+
| (infer Item extends Record<PropertyKey, any>)
|
|
243
243
|
? AttrTagByObjectSize<Value, Item>
|
|
244
244
|
: never;
|
|
245
245
|
};
|
|
@@ -248,7 +248,7 @@ declare global {
|
|
|
248
248
|
From extends void | number,
|
|
249
249
|
To extends number,
|
|
250
250
|
Step extends void | number,
|
|
251
|
-
Return,
|
|
251
|
+
const Return,
|
|
252
252
|
>(
|
|
253
253
|
input: {
|
|
254
254
|
from?: From;
|
|
@@ -259,18 +259,18 @@ declare global {
|
|
|
259
259
|
): {
|
|
260
260
|
[Key in keyof Return]: Return[Key] extends
|
|
261
261
|
| readonly (infer Item)[]
|
|
262
|
-
| infer Item extends Record<PropertyKey, any>
|
|
262
|
+
| (infer Item extends Record<PropertyKey, any>)
|
|
263
263
|
? number extends From | To | Step
|
|
264
|
-
?
|
|
264
|
+
? undefined | Marko.AttrTag<Item>
|
|
265
265
|
: Step extends 0
|
|
266
266
|
? never
|
|
267
267
|
: [To] extends [From extends void ? 0 : From]
|
|
268
268
|
? undefined
|
|
269
|
-
:
|
|
269
|
+
: Marko.AttrTag<Item>
|
|
270
270
|
: never;
|
|
271
271
|
};
|
|
272
272
|
|
|
273
|
-
export function forAttrTag<Return>(attrs: {
|
|
273
|
+
export function forAttrTag<const Return>(attrs: {
|
|
274
274
|
input:
|
|
275
275
|
| {
|
|
276
276
|
of: any;
|
|
@@ -287,8 +287,8 @@ declare global {
|
|
|
287
287
|
}): {
|
|
288
288
|
[Key in keyof Return]: Return[Key] extends
|
|
289
289
|
| readonly (infer Item)[]
|
|
290
|
-
| infer Item extends Record<PropertyKey, any>
|
|
291
|
-
?
|
|
290
|
+
| (infer Item extends Record<PropertyKey, any>)
|
|
291
|
+
? undefined | Marko.AttrTag<Item>
|
|
292
292
|
: never;
|
|
293
293
|
};
|
|
294
294
|
|
|
@@ -296,9 +296,13 @@ declare global {
|
|
|
296
296
|
...attrs: Attrs
|
|
297
297
|
): MergeAttrTags<Attrs>;
|
|
298
298
|
|
|
299
|
+
export function repeatedAttrTag<AttrTag>(
|
|
300
|
+
...attrTags: Marko.AttrTag<AttrTag>[]
|
|
301
|
+
): AttrTag;
|
|
302
|
+
|
|
299
303
|
// TODO: this could be improved.
|
|
300
304
|
// currently falls back to DefaultRenderer too eagerly.
|
|
301
|
-
export type DynamicRenderer<Name> = 0 extends 1 & Name
|
|
305
|
+
export type DynamicRenderer<Name> = [0] extends [1 & Name]
|
|
302
306
|
? DefaultRenderer
|
|
303
307
|
: [Name] extends [Marko.Template]
|
|
304
308
|
? TemplateRenderer<Name>
|
|
@@ -306,14 +310,10 @@ declare global {
|
|
|
306
310
|
? NativeTagRenderer<Name>
|
|
307
311
|
: [Name] extends [AnyMarkoBody]
|
|
308
312
|
? BodyRenderer<Name>
|
|
309
|
-
: [Name] extends [
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
RenderBodyInput<
|
|
314
|
-
BodyParameters<Exclude<Name["renderBody"], void>>
|
|
315
|
-
>
|
|
316
|
-
>
|
|
313
|
+
: [Name] extends [
|
|
314
|
+
{ renderBody?: infer Name extends AnyMarkoBody },
|
|
315
|
+
]
|
|
316
|
+
? BodyRenderer<Name>
|
|
317
317
|
: DefaultRenderer;
|
|
318
318
|
|
|
319
319
|
export type TemplateRenderer<Template> = Template extends {
|
|
@@ -345,12 +345,8 @@ declare global {
|
|
|
345
345
|
export interface BodyRenderer<Body extends AnyMarkoBody> {
|
|
346
346
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-constraint
|
|
347
347
|
(): () => <__marko_internal_input extends unknown>(
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
Relate<
|
|
351
|
-
__marko_internal_input,
|
|
352
|
-
Marko.Directives & RenderBodyInput<BodyParameters<Body>>
|
|
353
|
-
>,
|
|
348
|
+
...args: BodyParamsWithDefault<Body> &
|
|
349
|
+
Relate<__marko_internal_input, BodyParamsWithDefault<Body>>
|
|
354
350
|
) => ReturnAndScope<
|
|
355
351
|
Scopes<__marko_internal_input>,
|
|
356
352
|
BodyReturnType<Body>
|
|
@@ -397,17 +393,14 @@ type ReturnAndScope<Scope, Return> = {
|
|
|
397
393
|
scope: Scope;
|
|
398
394
|
};
|
|
399
395
|
|
|
400
|
-
type
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
:
|
|
406
|
-
? { value?: [] }
|
|
407
|
-
: { value: Args }
|
|
408
|
-
: never;
|
|
396
|
+
type BodyParamsWithDefault<Body extends AnyMarkoBody> =
|
|
397
|
+
Body extends Marko.Body<infer Params, any>
|
|
398
|
+
? Params extends []
|
|
399
|
+
? [input?: Record<string, never>]
|
|
400
|
+
: Params
|
|
401
|
+
: never;
|
|
409
402
|
|
|
410
|
-
type Scopes<Input> = 0 extends 1 & Input
|
|
403
|
+
type Scopes<Input> = [0] extends [1 & Input]
|
|
411
404
|
? never
|
|
412
405
|
: Input extends Record<any, unknown>
|
|
413
406
|
? MergeScopes<FlatScopes<Input>>
|
|
@@ -425,7 +418,7 @@ type ComponentEventHandlers<Component extends Marko.Component> = {
|
|
|
425
418
|
|
|
426
419
|
type FlatScopes<Input extends object, Objects = Input> = Input[keyof Input &
|
|
427
420
|
(string | number)] extends infer Prop
|
|
428
|
-
? 0 extends 1 & Prop
|
|
421
|
+
? [0] extends [1 & Prop]
|
|
429
422
|
? unknown
|
|
430
423
|
: Prop extends (...args: any) => { [Marko._.scope]: infer Scope }
|
|
431
424
|
? unknown extends Scope
|
|
@@ -472,30 +465,25 @@ type MergeAttrTag<A, B> = {
|
|
|
472
465
|
: never;
|
|
473
466
|
};
|
|
474
467
|
|
|
475
|
-
type MergeAttrTagValue<A, B> = A extends readonly
|
|
476
|
-
? B extends readonly
|
|
477
|
-
?
|
|
468
|
+
type MergeAttrTagValue<A, B> = A extends readonly (infer AType)[]
|
|
469
|
+
? B extends readonly (infer BType)[]
|
|
470
|
+
? AType | BType
|
|
478
471
|
: B extends void
|
|
479
472
|
? A
|
|
480
|
-
:
|
|
473
|
+
: AType | B
|
|
481
474
|
: A extends void
|
|
482
475
|
? B
|
|
483
476
|
: B extends void
|
|
484
477
|
? A
|
|
485
|
-
:
|
|
478
|
+
: A | B;
|
|
486
479
|
|
|
487
480
|
type AttrTagByListSize<T, Item> = T extends
|
|
488
|
-
| readonly [any,
|
|
489
|
-
| readonly [...any[], any
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
: T extends readonly [any, ...any[]] | readonly [...any[], any]
|
|
495
|
-
? Repeatable<Item>
|
|
496
|
-
: T extends readonly []
|
|
497
|
-
? undefined
|
|
498
|
-
: MaybeRepeatable<Item>;
|
|
481
|
+
| readonly [any, ...any[]]
|
|
482
|
+
| readonly [...any[], any]
|
|
483
|
+
? Marko.AttrTag<Item>
|
|
484
|
+
: T extends readonly []
|
|
485
|
+
? undefined
|
|
486
|
+
: undefined | Marko.AttrTag<Item>;
|
|
499
487
|
|
|
500
488
|
type AttrTagByObjectSize<
|
|
501
489
|
Value,
|
|
@@ -505,22 +493,7 @@ type AttrTagByObjectSize<
|
|
|
505
493
|
> = CheckNever<
|
|
506
494
|
Keys,
|
|
507
495
|
undefined,
|
|
508
|
-
|
|
509
|
-
KnownKeys,
|
|
510
|
-
[Keys] extends [KnownKeys] ? Item : Repeatable<Item>,
|
|
511
|
-
Repeated<Item>,
|
|
512
|
-
MaybeRepeatable<Item>
|
|
513
|
-
>
|
|
514
|
-
>;
|
|
515
|
-
|
|
516
|
-
type CheckUnionSize<T, IfOne, IfMany, Else, Copy = T> = CheckNever<
|
|
517
|
-
T,
|
|
518
|
-
Else,
|
|
519
|
-
T extends T
|
|
520
|
-
? (Copy extends T ? never : true) extends never
|
|
521
|
-
? IfOne
|
|
522
|
-
: IfMany
|
|
523
|
-
: never
|
|
496
|
+
CheckNever<KnownKeys, Marko.AttrTag<Item>, undefined | Marko.AttrTag<Item>>
|
|
524
497
|
>;
|
|
525
498
|
|
|
526
499
|
type RecordKeys<T> = keyof {
|
|
@@ -545,8 +518,4 @@ type UnionToIntersection<T> = (T extends any ? (_: T) => any : never) extends (
|
|
|
545
518
|
? U
|
|
546
519
|
: never;
|
|
547
520
|
|
|
548
|
-
type Repeated<T> = [T, T, ...T[]];
|
|
549
|
-
type Repeatable<T> = T | Repeated<T>;
|
|
550
|
-
type MaybeRepeatable<T> = undefined | Repeatable<T>;
|
|
551
|
-
|
|
552
521
|
export {};
|
package/package.json
CHANGED
|
@@ -1,28 +1,26 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@marko/language-tools",
|
|
3
3
|
"description": "Marko Language Tools",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.4.1",
|
|
5
5
|
"bugs": "https://github.com/marko-js/language-server/issues/new?template=Bug_report.md",
|
|
6
6
|
"peerDependencies": {
|
|
7
7
|
"@marko/compiler": "^5.28.4"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@babel/
|
|
11
|
-
"@
|
|
12
|
-
"@luxass/strip-json-comments": "^1.2.0",
|
|
10
|
+
"@babel/parser": "^7.25.8",
|
|
11
|
+
"@luxass/strip-json-comments": "^1.3.2",
|
|
13
12
|
"htmljs-parser": "^5.5.2",
|
|
14
13
|
"relative-import-path": "^1.0.0"
|
|
15
14
|
},
|
|
16
15
|
"devDependencies": {
|
|
17
|
-
"@babel/code-frame": "^7.
|
|
18
|
-
"@marko/compiler": "^5.
|
|
19
|
-
"@marko/translator-default": "^
|
|
16
|
+
"@babel/code-frame": "^7.25.7",
|
|
17
|
+
"@marko/compiler": "^5.37.19",
|
|
18
|
+
"@marko/translator-default": "^6.0.19",
|
|
20
19
|
"@types/babel__code-frame": "^7.0.6",
|
|
21
|
-
"@
|
|
22
|
-
"
|
|
23
|
-
"marko": "^5.32.7",
|
|
20
|
+
"@typescript/vfs": "^1.6.0",
|
|
21
|
+
"marko": "^5.35.27",
|
|
24
22
|
"mitata": "^0.1.8",
|
|
25
|
-
"tsx": "^4.
|
|
23
|
+
"tsx": "^4.19.1"
|
|
26
24
|
},
|
|
27
25
|
"exports": {
|
|
28
26
|
".": {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function isValidIdentifier(name: string): boolean;
|