@llui/vite-plugin 0.0.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.
@@ -0,0 +1,83 @@
1
+ import ts from 'typescript';
2
+ export function extractMsgSchema(source) {
3
+ return extractDiscriminatedUnionSchema(source, 'Msg');
4
+ }
5
+ export function extractEffectSchema(source) {
6
+ return extractDiscriminatedUnionSchema(source, 'Effect');
7
+ }
8
+ function extractDiscriminatedUnionSchema(source, typeName) {
9
+ const sf = ts.createSourceFile('input.ts', source, ts.ScriptTarget.Latest, true);
10
+ for (const stmt of sf.statements) {
11
+ if (!ts.isTypeAliasDeclaration(stmt))
12
+ continue;
13
+ if (stmt.name.text !== typeName)
14
+ continue;
15
+ const variants = {};
16
+ collectVariants(stmt.type, variants);
17
+ if (Object.keys(variants).length === 0)
18
+ return null;
19
+ return { discriminant: 'type', variants };
20
+ }
21
+ return null;
22
+ }
23
+ function collectVariants(type, variants) {
24
+ if (ts.isUnionTypeNode(type)) {
25
+ for (const member of type.types) {
26
+ collectVariants(member, variants);
27
+ }
28
+ return;
29
+ }
30
+ if (ts.isTypeLiteralNode(type)) {
31
+ let discriminantValue = null;
32
+ const fields = {};
33
+ for (const member of type.members) {
34
+ if (!ts.isPropertySignature(member) || !member.name || !ts.isIdentifier(member.name))
35
+ continue;
36
+ const name = member.name.text;
37
+ const memberType = member.type;
38
+ if (name === 'type' && memberType) {
39
+ // Extract the discriminant value
40
+ if (ts.isLiteralTypeNode(memberType) && ts.isStringLiteral(memberType.literal)) {
41
+ discriminantValue = memberType.literal.text;
42
+ }
43
+ continue;
44
+ }
45
+ if (!memberType) {
46
+ fields[name] = 'unknown';
47
+ continue;
48
+ }
49
+ fields[name] = resolveFieldType(memberType);
50
+ }
51
+ if (discriminantValue) {
52
+ variants[discriminantValue] = fields;
53
+ }
54
+ }
55
+ }
56
+ function resolveFieldType(type) {
57
+ // Primitive keywords
58
+ if (type.kind === ts.SyntaxKind.StringKeyword)
59
+ return 'string';
60
+ if (type.kind === ts.SyntaxKind.NumberKeyword)
61
+ return 'number';
62
+ if (type.kind === ts.SyntaxKind.BooleanKeyword)
63
+ return 'boolean';
64
+ // String literal union: 'a' | 'b' | 'c'
65
+ if (ts.isUnionTypeNode(type)) {
66
+ const literals = [];
67
+ let allLiterals = true;
68
+ for (const member of type.types) {
69
+ if (ts.isLiteralTypeNode(member) && ts.isStringLiteral(member.literal)) {
70
+ literals.push(member.literal.text);
71
+ }
72
+ else {
73
+ allLiterals = false;
74
+ break;
75
+ }
76
+ }
77
+ if (allLiterals && literals.length > 0) {
78
+ return { enum: literals };
79
+ }
80
+ }
81
+ return 'unknown';
82
+ }
83
+ //# sourceMappingURL=msg-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"msg-schema.js","sourceRoot":"","sources":["../src/msg-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ export type StateType = 'string' | 'number' | 'boolean' | 'unknown' | {
2
+ kind: 'enum';
3
+ values: string[];
4
+ } | {
5
+ kind: 'array';
6
+ of: StateType;
7
+ } | {
8
+ kind: 'object';
9
+ fields: Record<string, StateType>;
10
+ } | {
11
+ kind: 'optional';
12
+ of: StateType;
13
+ } | {
14
+ kind: 'union';
15
+ of: StateType[];
16
+ };
17
+ export interface StateSchema {
18
+ fields: Record<string, StateType>;
19
+ }
20
+ /**
21
+ * Walk `type State = { … }` (or a type matching a user-provided name) and emit
22
+ * a JSON-serializable shape descriptor. Supports primitives, string-literal
23
+ * unions, arrays, nested objects, and `T | undefined` optional fields.
24
+ *
25
+ * Returns null if the named type isn't found or isn't a type literal.
26
+ */
27
+ export declare function extractStateSchema(source: string, typeName?: string): StateSchema | null;
28
+ //# sourceMappingURL=state-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-schema.d.ts","sourceRoot":"","sources":["../src/state-schema.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,GACjB,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,SAAS,GACT;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,SAAS,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,EAAE,EAAE,SAAS,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,SAAS,EAAE,CAAA;CAAE,CAAA;AAEtC,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;CAClC;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,SAAU,GAAG,WAAW,GAAG,IAAI,CA6BzF"}
@@ -0,0 +1,108 @@
1
+ import ts from 'typescript';
2
+ /**
3
+ * Walk `type State = { … }` (or a type matching a user-provided name) and emit
4
+ * a JSON-serializable shape descriptor. Supports primitives, string-literal
5
+ * unions, arrays, nested objects, and `T | undefined` optional fields.
6
+ *
7
+ * Returns null if the named type isn't found or isn't a type literal.
8
+ */
9
+ export function extractStateSchema(source, typeName = 'State') {
10
+ const sf = ts.createSourceFile('input.ts', source, ts.ScriptTarget.Latest, true);
11
+ // Build a map of local type aliases so references like `Todo[]` resolve to
12
+ // the inline shape of `type Todo = { … }`.
13
+ const aliases = new Map();
14
+ for (const stmt of sf.statements) {
15
+ if (ts.isTypeAliasDeclaration(stmt)) {
16
+ aliases.set(stmt.name.text, stmt.type);
17
+ }
18
+ }
19
+ const stateType = aliases.get(typeName);
20
+ if (!stateType)
21
+ return null;
22
+ if (!ts.isTypeLiteralNode(stateType))
23
+ return null;
24
+ const fields = {};
25
+ for (const member of stateType.members) {
26
+ if (!ts.isPropertySignature(member) || !member.name || !ts.isIdentifier(member.name))
27
+ continue;
28
+ if (!member.type) {
29
+ fields[member.name.text] = 'unknown';
30
+ continue;
31
+ }
32
+ let t = resolve(member.type, aliases);
33
+ if (member.questionToken)
34
+ t = { kind: 'optional', of: t };
35
+ fields[member.name.text] = t;
36
+ }
37
+ return { fields };
38
+ }
39
+ function resolve(type, aliases) {
40
+ if (type.kind === ts.SyntaxKind.StringKeyword)
41
+ return 'string';
42
+ if (type.kind === ts.SyntaxKind.NumberKeyword)
43
+ return 'number';
44
+ if (type.kind === ts.SyntaxKind.BooleanKeyword)
45
+ return 'boolean';
46
+ // T[]
47
+ if (ts.isArrayTypeNode(type)) {
48
+ return { kind: 'array', of: resolve(type.elementType, aliases) };
49
+ }
50
+ // Array<T>
51
+ if (ts.isTypeReferenceNode(type) &&
52
+ ts.isIdentifier(type.typeName) &&
53
+ type.typeName.text === 'Array') {
54
+ const arg = type.typeArguments?.[0];
55
+ return { kind: 'array', of: arg ? resolve(arg, aliases) : 'unknown' };
56
+ }
57
+ // Object literal: { foo: bar }
58
+ if (ts.isTypeLiteralNode(type)) {
59
+ const fields = {};
60
+ for (const m of type.members) {
61
+ if (!ts.isPropertySignature(m) || !m.name || !ts.isIdentifier(m.name))
62
+ continue;
63
+ if (!m.type) {
64
+ fields[m.name.text] = 'unknown';
65
+ continue;
66
+ }
67
+ let t = resolve(m.type, aliases);
68
+ if (m.questionToken)
69
+ t = { kind: 'optional', of: t };
70
+ fields[m.name.text] = t;
71
+ }
72
+ return { kind: 'object', fields };
73
+ }
74
+ // Union: enum-of-strings, or general union, or T | undefined
75
+ if (ts.isUnionTypeNode(type)) {
76
+ // T | undefined → optional
77
+ const nonUndefined = type.types.filter((t) => !(t.kind === ts.SyntaxKind.UndefinedKeyword ||
78
+ (ts.isLiteralTypeNode(t) && t.literal.kind === ts.SyntaxKind.UndefinedKeyword)));
79
+ if (nonUndefined.length === type.types.length - 1 && nonUndefined.length === 1) {
80
+ return { kind: 'optional', of: resolve(nonUndefined[0], aliases) };
81
+ }
82
+ // String-literal union
83
+ const literals = [];
84
+ let allStringLiterals = true;
85
+ for (const m of type.types) {
86
+ if (ts.isLiteralTypeNode(m) && ts.isStringLiteral(m.literal)) {
87
+ literals.push(m.literal.text);
88
+ }
89
+ else {
90
+ allStringLiterals = false;
91
+ break;
92
+ }
93
+ }
94
+ if (allStringLiterals && literals.length > 0) {
95
+ return { kind: 'enum', values: literals };
96
+ }
97
+ // General union
98
+ return { kind: 'union', of: type.types.map((t) => resolve(t, aliases)) };
99
+ }
100
+ // Type reference: resolve via alias map if possible
101
+ if (ts.isTypeReferenceNode(type) && ts.isIdentifier(type.typeName)) {
102
+ const aliased = aliases.get(type.typeName.text);
103
+ if (aliased)
104
+ return resolve(aliased, aliases);
105
+ }
106
+ return 'unknown';
107
+ }
108
+ //# sourceMappingURL=state-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-schema.js","sourceRoot":"","sources":["../src/state-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Transform a source file containing @llui/dom imports.
3
+ * Returns the transformed source or null if no transformation needed.
4
+ */
5
+ export interface TransformEdit {
6
+ start: number;
7
+ end: number;
8
+ replacement: string;
9
+ }
10
+ export declare function transformLlui(source: string, _filename: string, devMode?: boolean, mcpPort?: number | null): {
11
+ output: string;
12
+ edits: TransformEdit[];
13
+ } | null;
14
+ //# sourceMappingURL=transform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"AAoHA;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,UAAQ,EACf,OAAO,GAAE,MAAM,GAAG,IAAW,GAC5B;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,aAAa,EAAE,CAAA;CAAE,GAAG,IAAI,CAiNnD"}