@knapsack/spec-utils 4.93.4--canary.7769.e277caf.0 → 4.93.4--canary.6273d75.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/analyze-type.d.ts.map +1 -1
- package/dist/analyze-type.js +29 -0
- package/dist/analyze-type.js.map +1 -1
- package/dist/test-fixtures/generic-props.d.ts +79 -0
- package/dist/test-fixtures/generic-props.d.ts.map +1 -0
- package/dist/test-fixtures/generic-props.js +46 -0
- package/dist/test-fixtures/generic-props.js.map +1 -0
- package/dist/test-fixtures/index.d.ts +1 -0
- package/dist/test-fixtures/index.d.ts.map +1 -1
- package/dist/test-fixtures/index.js +1 -0
- package/dist/test-fixtures/index.js.map +1 -1
- package/package.json +10 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-type.d.ts","sourceRoot":"","sources":["../src/analyze-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EACL,KAAK,QAAQ,EAGd,MAAM,YAAY,CAAC;AA6CpB;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,OAAO,EACP,UAAU,EACV,YAA0C,EAC1C,KAAS;AACT;;;GAGG;AACH,QAAY,GACb,EAAE;IACD,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;IACd,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"analyze-type.d.ts","sourceRoot":"","sources":["../src/analyze-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EACL,KAAK,QAAQ,EAGd,MAAM,YAAY,CAAC;AA6CpB;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,OAAO,EACP,UAAU,EACV,YAA0C,EAC1C,KAAS;AACT;;;GAGG;AACH,QAAY,GACb,EAAE;IACD,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;IACd,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,QAAQ,CAoUX"}
|
package/dist/analyze-type.js
CHANGED
|
@@ -95,6 +95,35 @@ maxDepth = 3, }) {
|
|
|
95
95
|
visitedTypes.set(typeId, result);
|
|
96
96
|
return result;
|
|
97
97
|
}
|
|
98
|
+
// Resolve generic type parameters — and the constraint-dependent types that hinge on
|
|
99
|
+
// them (indexed-access `Obj[T]`, conditional `T extends … ? … : …`) — to their base
|
|
100
|
+
// constraint. Without this, props on a GENERIC component reach the fallthrough as
|
|
101
|
+
// `misc` and get dropped from the spec. e.g. `Badge<T extends BadgeTypes>` exposing
|
|
102
|
+
// `type?: T` and `color?: BadgeColor<T>` (= `…Map[T]`): the constraint of `T` is the
|
|
103
|
+
// `BadgeTypes` union, and the constraint of `…Map[T]` is the union of the map's value
|
|
104
|
+
// types — so both surface as a string-literal union, which `convert-to-spec` renders
|
|
105
|
+
// as an enum ("options") field. Placed before the max-depth guard for the same reason
|
|
106
|
+
// literals are: the union it unwraps to may sit a level deeper than `maxDepth`.
|
|
107
|
+
if (
|
|
108
|
+
// eslint-disable-next-line no-bitwise
|
|
109
|
+
type.flags &
|
|
110
|
+
(ts.TypeFlags.TypeParameter |
|
|
111
|
+
ts.TypeFlags.IndexedAccess |
|
|
112
|
+
ts.TypeFlags.Conditional)) {
|
|
113
|
+
const constraint = checker.getBaseConstraintOfType(type);
|
|
114
|
+
if (constraint && constraint !== type) {
|
|
115
|
+
const resolved = analyzeType({
|
|
116
|
+
type: constraint,
|
|
117
|
+
checker,
|
|
118
|
+
isOptional,
|
|
119
|
+
visitedTypes,
|
|
120
|
+
depth,
|
|
121
|
+
maxDepth,
|
|
122
|
+
});
|
|
123
|
+
visitedTypes.set(typeId, resolved);
|
|
124
|
+
return resolved;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
98
127
|
// If we've reached max depth, return a simplified type. This now only bounds
|
|
99
128
|
// the recursive/composite branches below (union, array, intersection,
|
|
100
129
|
// object); leaf types are already handled above.
|
package/dist/analyze-type.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-type.js","sourceRoot":"","sources":["../src/analyze-type.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analyze-type.js","sourceRoot":"","sources":["../src/analyze-type.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fixtures for GENERIC components whose props are typed THROUGH the component's own type
|
|
3
|
+
* parameter. This is GSK's `Badge<T extends BadgeTypes>` shape, where `type?: T` and
|
|
4
|
+
* `color?: BadgeColor<T>` (= `…Map[T]`) were silently dropped: the analyzer had no branch
|
|
5
|
+
* for type parameters or the constraint-dependent types (indexed-access, conditional)
|
|
6
|
+
* that hinge on them, so they fell through to `misc`. Resolving each to its base
|
|
7
|
+
* constraint turns it into a string-literal union → an `enum` ("options") field.
|
|
8
|
+
*
|
|
9
|
+
* Each export below isolates one way a generic can carry an enum, plus the unconstrained
|
|
10
|
+
* case that must degrade gracefully (no enum, no crash).
|
|
11
|
+
*/
|
|
12
|
+
type Size = 'sm' | 'md' | 'lg';
|
|
13
|
+
type BadgeKind = 'pill-color' | 'color' | 'modern';
|
|
14
|
+
type ColorByKind = {
|
|
15
|
+
'pill-color': 'gray' | 'brand' | 'error';
|
|
16
|
+
color: 'gray' | 'brand' | 'error';
|
|
17
|
+
modern: 'gray';
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Bare type parameter (`kind?: T`) + indexed-access (`color?: ColorByKind[T]`), alongside
|
|
21
|
+
* a plain union control (`size`). Mirrors `Badge` most directly.
|
|
22
|
+
*/
|
|
23
|
+
export declare function GenericBadge<T extends BadgeKind>(props: {
|
|
24
|
+
/** Bare type parameter — constraint is the BadgeKind union. */
|
|
25
|
+
kind?: T;
|
|
26
|
+
/** Plain union (control — always worked). */
|
|
27
|
+
size?: Size;
|
|
28
|
+
/** Indexed-access into a map, keyed by the type parameter. */
|
|
29
|
+
color?: ColorByKind[T];
|
|
30
|
+
}): {
|
|
31
|
+
/** Bare type parameter — constraint is the BadgeKind union. */
|
|
32
|
+
kind?: T;
|
|
33
|
+
/** Plain union (control — always worked). */
|
|
34
|
+
size?: Size;
|
|
35
|
+
/** Indexed-access into a map, keyed by the type parameter. */
|
|
36
|
+
color?: ColorByKind[T];
|
|
37
|
+
};
|
|
38
|
+
/** Conditional type that depends on the type parameter. */
|
|
39
|
+
export declare function ConditionalBadge<T extends 'in' | 'out'>(props: {
|
|
40
|
+
dir?: T;
|
|
41
|
+
placement?: T extends 'in' ? 'top' | 'bottom' : 'left' | 'right';
|
|
42
|
+
}): {
|
|
43
|
+
dir?: T;
|
|
44
|
+
placement?: T extends "in" ? "top" | "bottom" : "left" | "right";
|
|
45
|
+
};
|
|
46
|
+
/** Multiple, independently-constrained type parameters. */
|
|
47
|
+
export declare function MultiGenericBadge<A extends 'a1' | 'a2', B extends 'b1' | 'b2' | 'b3'>(props: {
|
|
48
|
+
a?: A;
|
|
49
|
+
b?: B;
|
|
50
|
+
}): {
|
|
51
|
+
a?: A;
|
|
52
|
+
b?: B;
|
|
53
|
+
};
|
|
54
|
+
declare const badgeTypes: {
|
|
55
|
+
readonly pillColor: "pill-color";
|
|
56
|
+
readonly badgeColor: "color";
|
|
57
|
+
readonly badgeModern: "modern";
|
|
58
|
+
};
|
|
59
|
+
type BadgeTypesFromConst = (typeof badgeTypes)[keyof typeof badgeTypes];
|
|
60
|
+
/**
|
|
61
|
+
* Type parameter whose constraint is derived from a `const` object's values — the exact
|
|
62
|
+
* `BadgeTypes = (typeof badgeTypes)[keyof typeof badgeTypes]` shape in GSK's code.
|
|
63
|
+
*/
|
|
64
|
+
export declare function ConstDerivedBadge<T extends BadgeTypesFromConst>(props: {
|
|
65
|
+
type?: T;
|
|
66
|
+
}): {
|
|
67
|
+
type?: T;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Unconstrained type parameter — there is no enum to recover, so this must degrade
|
|
71
|
+
* gracefully (NOT become a union/enum, and never throw).
|
|
72
|
+
*/
|
|
73
|
+
export declare function UnconstrainedGeneric<T>(props: {
|
|
74
|
+
value?: T;
|
|
75
|
+
}): {
|
|
76
|
+
value?: T;
|
|
77
|
+
};
|
|
78
|
+
export {};
|
|
79
|
+
//# sourceMappingURL=generic-props.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generic-props.d.ts","sourceRoot":"","sources":["../../src/test-fixtures/generic-props.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC/B,KAAK,SAAS,GAAG,YAAY,GAAG,OAAO,GAAG,QAAQ,CAAC;AACnD,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IACzC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE;IACvD,+DAA+D;IAC/D,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,6CAA6C;IAC7C,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,8DAA8D;IAC9D,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;CACxB;IANC,+DAA+D;WACxD,CAAC;IACR,6CAA6C;WACtC,IAAI;IACX,8DAA8D;YACtD,WAAW,CAAC,CAAC,CAAC;EAGvB;AAED,2DAA2D;AAC3D,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;IAC9D,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,SAAS,CAAC,EAAE,CAAC,SAAS,IAAI,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;CAClE;UAFO,CAAC;gBACK,CAAC,SAAS,IAAI,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO;EAGjE;AAED,2DAA2D;AAC3D,wBAAgB,iBAAiB,CAC/B,CAAC,SAAS,IAAI,GAAG,IAAI,EACrB,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG,IAAI,EAC5B,KAAK,EAAE;IAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAAC,CAAC,CAAC,EAAE,CAAC,CAAA;CAAE;QAAV,CAAC;QAAM,CAAC;EAEtB;AAED,QAAA,MAAM,UAAU;;;;CAIN,CAAC;AACX,KAAK,mBAAmB,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAExE;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,mBAAmB,EAAE,KAAK,EAAE;IACtE,IAAI,CAAC,EAAE,CAAC,CAAC;CACV;WADQ,CAAC;EAGT;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE;IAAE,KAAK,CAAC,EAAE,CAAC,CAAA;CAAE;YAAH,CAAC;EAEzD"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fixtures for GENERIC components whose props are typed THROUGH the component's own type
|
|
3
|
+
* parameter. This is GSK's `Badge<T extends BadgeTypes>` shape, where `type?: T` and
|
|
4
|
+
* `color?: BadgeColor<T>` (= `…Map[T]`) were silently dropped: the analyzer had no branch
|
|
5
|
+
* for type parameters or the constraint-dependent types (indexed-access, conditional)
|
|
6
|
+
* that hinge on them, so they fell through to `misc`. Resolving each to its base
|
|
7
|
+
* constraint turns it into a string-literal union → an `enum` ("options") field.
|
|
8
|
+
*
|
|
9
|
+
* Each export below isolates one way a generic can carry an enum, plus the unconstrained
|
|
10
|
+
* case that must degrade gracefully (no enum, no crash).
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Bare type parameter (`kind?: T`) + indexed-access (`color?: ColorByKind[T]`), alongside
|
|
14
|
+
* a plain union control (`size`). Mirrors `Badge` most directly.
|
|
15
|
+
*/
|
|
16
|
+
export function GenericBadge(props) {
|
|
17
|
+
return props;
|
|
18
|
+
}
|
|
19
|
+
/** Conditional type that depends on the type parameter. */
|
|
20
|
+
export function ConditionalBadge(props) {
|
|
21
|
+
return props;
|
|
22
|
+
}
|
|
23
|
+
/** Multiple, independently-constrained type parameters. */
|
|
24
|
+
export function MultiGenericBadge(props) {
|
|
25
|
+
return props;
|
|
26
|
+
}
|
|
27
|
+
const badgeTypes = {
|
|
28
|
+
pillColor: 'pill-color',
|
|
29
|
+
badgeColor: 'color',
|
|
30
|
+
badgeModern: 'modern',
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Type parameter whose constraint is derived from a `const` object's values — the exact
|
|
34
|
+
* `BadgeTypes = (typeof badgeTypes)[keyof typeof badgeTypes]` shape in GSK's code.
|
|
35
|
+
*/
|
|
36
|
+
export function ConstDerivedBadge(props) {
|
|
37
|
+
return props;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Unconstrained type parameter — there is no enum to recover, so this must degrade
|
|
41
|
+
* gracefully (NOT become a union/enum, and never throw).
|
|
42
|
+
*/
|
|
43
|
+
export function UnconstrainedGeneric(props) {
|
|
44
|
+
return props;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=generic-props.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generic-props.js","sourceRoot":"","sources":["../../src/test-fixtures/generic-props.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAsB,KAOjD;IACC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,gBAAgB,CAAyB,KAGxD;IACC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,iBAAiB,CAG/B,KAAuB;IACvB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,GAAG;IACjB,SAAS,EAAE,YAAY;IACvB,UAAU,EAAE,OAAO;IACnB,WAAW,EAAE,QAAQ;CACb,CAAC;AAGX;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAgC,KAEhE;IACC,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAI,KAAoB;IAC1D,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test-fixtures/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test-fixtures/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/test-fixtures/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/test-fixtures/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@knapsack/spec-utils",
|
|
3
3
|
"description": "",
|
|
4
|
-
"version": "4.93.4--canary.
|
|
4
|
+
"version": "4.93.4--canary.6273d75.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": {
|
|
@@ -20,19 +20,19 @@
|
|
|
20
20
|
"test": "vitest run"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@knapsack/utils": "4.93.4--canary.
|
|
23
|
+
"@knapsack/utils": "4.93.4--canary.6273d75.0",
|
|
24
24
|
"json-stable-stringify": "^1.3.0",
|
|
25
25
|
"quick-lru": "^7.3.0",
|
|
26
26
|
"typescript": "^5.9.3"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@knapsack/angular-sandbox-components": "4.93.4--canary.
|
|
30
|
-
"@knapsack/eslint-config-starter": "4.93.4--canary.
|
|
31
|
-
"@knapsack/file-utils": "4.93.4--canary.
|
|
32
|
-
"@knapsack/prettier-config": "4.93.4--canary.
|
|
33
|
-
"@knapsack/sandbox-components": "4.93.4--canary.
|
|
34
|
-
"@knapsack/types": "4.93.4--canary.
|
|
35
|
-
"@knapsack/typescript-config-starter": "4.93.4--canary.
|
|
29
|
+
"@knapsack/angular-sandbox-components": "4.93.4--canary.6273d75.0",
|
|
30
|
+
"@knapsack/eslint-config-starter": "4.93.4--canary.6273d75.0",
|
|
31
|
+
"@knapsack/file-utils": "4.93.4--canary.6273d75.0",
|
|
32
|
+
"@knapsack/prettier-config": "4.93.4--canary.6273d75.0",
|
|
33
|
+
"@knapsack/sandbox-components": "4.93.4--canary.6273d75.0",
|
|
34
|
+
"@knapsack/types": "4.93.4--canary.6273d75.0",
|
|
35
|
+
"@knapsack/typescript-config-starter": "4.93.4--canary.6273d75.0",
|
|
36
36
|
"@mui/material": "^5.18.0",
|
|
37
37
|
"@types/node": "^22.19.11",
|
|
38
38
|
"eslint": "^9.20.0",
|
|
@@ -47,5 +47,5 @@
|
|
|
47
47
|
"directory": "apps/client/libs/spec-utils",
|
|
48
48
|
"type": "git"
|
|
49
49
|
},
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "6273d75930bb7e0fd70d26931b90cb333d77c3ed"
|
|
51
51
|
}
|