illimi-core 1.0.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/LICENSE +21 -0
- package/README.md +135 -0
- package/dist/ast/nodes.d.ts +91 -0
- package/dist/ast/nodes.d.ts.map +1 -0
- package/dist/ast/nodes.js +8 -0
- package/dist/ast/nodes.js.map +1 -0
- package/dist/compiler/mergeSlots.d.ts +31 -0
- package/dist/compiler/mergeSlots.d.ts.map +1 -0
- package/dist/compiler/mergeSlots.js +85 -0
- package/dist/compiler/mergeSlots.js.map +1 -0
- package/dist/compiler/resolveLayout.d.ts +22 -0
- package/dist/compiler/resolveLayout.d.ts.map +1 -0
- package/dist/compiler/resolveLayout.js +212 -0
- package/dist/compiler/resolveLayout.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/ir/transform.d.ts +50 -0
- package/dist/ir/transform.d.ts.map +1 -0
- package/dist/ir/transform.js +128 -0
- package/dist/ir/transform.js.map +1 -0
- package/dist/parser/directiveParser.d.ts +34 -0
- package/dist/parser/directiveParser.d.ts.map +1 -0
- package/dist/parser/directiveParser.js +131 -0
- package/dist/parser/directiveParser.js.map +1 -0
- package/dist/parser/htmlParser.d.ts +13 -0
- package/dist/parser/htmlParser.d.ts.map +1 -0
- package/dist/parser/htmlParser.js +350 -0
- package/dist/parser/htmlParser.js.map +1 -0
- package/dist/vdom/diff.d.ts +33 -0
- package/dist/vdom/diff.d.ts.map +1 -0
- package/dist/vdom/diff.js +259 -0
- package/dist/vdom/diff.js.map +1 -0
- package/dist/vdom/vnode.d.ts +52 -0
- package/dist/vdom/vnode.d.ts.map +1 -0
- package/dist/vdom/vnode.js +206 -0
- package/dist/vdom/vnode.js.map +1 -0
- package/package.json +38 -0
- package/tsconfig.base.json +28 -0
- package/tsconfig.json +8 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FeedJS Core - VDOM Node Types
|
|
3
|
+
*
|
|
4
|
+
* Defines the Virtual DOM (VDOM) node structure.
|
|
5
|
+
* VDOM is platform-agnostic and represents the renderable tree.
|
|
6
|
+
*/
|
|
7
|
+
import type { IRNode } from '../ir/transform.js';
|
|
8
|
+
export declare const FragmentSymbol: unique symbol;
|
|
9
|
+
export declare const TextSymbol: unique symbol;
|
|
10
|
+
export interface VNode {
|
|
11
|
+
type: string | symbol;
|
|
12
|
+
props: VNodeProps | null;
|
|
13
|
+
children: VNodeChild;
|
|
14
|
+
key: string;
|
|
15
|
+
interpolation?: string;
|
|
16
|
+
directives?: Array<{
|
|
17
|
+
type: string;
|
|
18
|
+
name: string;
|
|
19
|
+
value: string;
|
|
20
|
+
expression: string;
|
|
21
|
+
modifiers?: string[];
|
|
22
|
+
}>;
|
|
23
|
+
}
|
|
24
|
+
export interface VNodeProps {
|
|
25
|
+
[key: string]: VNodePropValue;
|
|
26
|
+
}
|
|
27
|
+
export type VNodePropValue = string | number | boolean | null | undefined;
|
|
28
|
+
export type VNodeChild = VNode[] | string | null;
|
|
29
|
+
export interface VNodeState {
|
|
30
|
+
[key: string]: unknown;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Create a VDOM node from IR
|
|
34
|
+
*
|
|
35
|
+
* @param ir - The IR node(s) to convert
|
|
36
|
+
* @param state - The current state for evaluating expressions
|
|
37
|
+
* @returns VNode
|
|
38
|
+
*/
|
|
39
|
+
export declare function createVDOM(ir: IRNode | IRNode[], state: VNodeState): VNode;
|
|
40
|
+
/**
|
|
41
|
+
* Check if VNode is a text node
|
|
42
|
+
*/
|
|
43
|
+
export declare function isTextVNode(node: VNode): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Check if VNode is a fragment
|
|
46
|
+
*/
|
|
47
|
+
export declare function isFragment(node: VNode): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Get the type name of a VNode
|
|
50
|
+
*/
|
|
51
|
+
export declare function getVNodeType(node: VNode): string;
|
|
52
|
+
//# sourceMappingURL=vnode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vnode.d.ts","sourceRoot":"","sources":["../../src/vdom/vnode.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGjD,eAAO,MAAM,cAAc,eAAgC,CAAC;AAC5D,eAAO,MAAM,UAAU,eAA4B,CAAC;AAGpD,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,UAAU,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC,CAAC;CACJ;AAGD,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAC;CAC/B;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAG1E,MAAM,MAAM,UAAU,GAAG,KAAK,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC;AAGjD,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,GAAG,KAAK,CAS1E;AAwLD;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAEhD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAE/C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,CAOhD"}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FeedJS Core - VDOM Node Types
|
|
3
|
+
*
|
|
4
|
+
* Defines the Virtual DOM (VDOM) node structure.
|
|
5
|
+
* VDOM is platform-agnostic and represents the renderable tree.
|
|
6
|
+
*/
|
|
7
|
+
// Symbol for element type
|
|
8
|
+
export const FragmentSymbol = Symbol.for('feedjs.fragment');
|
|
9
|
+
export const TextSymbol = Symbol.for('feedjs.text');
|
|
10
|
+
/**
|
|
11
|
+
* Create a VDOM node from IR
|
|
12
|
+
*
|
|
13
|
+
* @param ir - The IR node(s) to convert
|
|
14
|
+
* @param state - The current state for evaluating expressions
|
|
15
|
+
* @returns VNode
|
|
16
|
+
*/
|
|
17
|
+
export function createVDOM(ir, state) {
|
|
18
|
+
// Handle array of IR nodes
|
|
19
|
+
if (Array.isArray(ir)) {
|
|
20
|
+
// Create a fragment to hold multiple root nodes
|
|
21
|
+
const fragment = createFragmentVNode(ir, state);
|
|
22
|
+
return fragment;
|
|
23
|
+
}
|
|
24
|
+
return createVNodeFromIR(ir, state);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Create VNode from IR node
|
|
28
|
+
*/
|
|
29
|
+
function createVNodeFromIR(ir, state) {
|
|
30
|
+
if (ir.kind === 'text') {
|
|
31
|
+
return createTextVNode(ir.value ?? '', state, ir);
|
|
32
|
+
}
|
|
33
|
+
if (ir.kind === 'fragment') {
|
|
34
|
+
return createFragmentVNode(ir.children ?? [], state);
|
|
35
|
+
}
|
|
36
|
+
return createElementVNode(ir, state);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Create an element VNode
|
|
40
|
+
*/
|
|
41
|
+
function createElementVNode(ir, state) {
|
|
42
|
+
const props = {};
|
|
43
|
+
// Process static props
|
|
44
|
+
if (ir.props) {
|
|
45
|
+
for (const [key, value] of Object.entries(ir.props)) {
|
|
46
|
+
props[key] = value;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// Process directives
|
|
50
|
+
if (ir.directives) {
|
|
51
|
+
for (const directive of ir.directives) {
|
|
52
|
+
processDirective(directive, props, state);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// Process children
|
|
56
|
+
let children = null;
|
|
57
|
+
if (ir.children && ir.children.length > 0) {
|
|
58
|
+
const childNodes = [];
|
|
59
|
+
for (const childIR of ir.children) {
|
|
60
|
+
const childVNode = createVNodeFromIR(childIR, state);
|
|
61
|
+
childNodes.push(childVNode);
|
|
62
|
+
}
|
|
63
|
+
children = childNodes;
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
type: ir.tag ?? 'div',
|
|
67
|
+
props,
|
|
68
|
+
children,
|
|
69
|
+
key: ir.key ?? '',
|
|
70
|
+
directives: ir.directives || [],
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Create a text VNode
|
|
75
|
+
*/
|
|
76
|
+
function createTextVNode(value, state, ir) {
|
|
77
|
+
// Check for interpolation
|
|
78
|
+
if (ir?.interpolation) {
|
|
79
|
+
const interpValue = evaluateExpression(ir.interpolation, state);
|
|
80
|
+
return {
|
|
81
|
+
type: TextSymbol,
|
|
82
|
+
props: null,
|
|
83
|
+
children: String(interpValue ?? ''),
|
|
84
|
+
key: '',
|
|
85
|
+
interpolation: ir.interpolation,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
// Don't evaluate at compile time - the runtime will handle directives
|
|
89
|
+
// Just store the raw value
|
|
90
|
+
return {
|
|
91
|
+
type: TextSymbol,
|
|
92
|
+
props: null,
|
|
93
|
+
children: value,
|
|
94
|
+
key: '',
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Create a fragment VNode
|
|
99
|
+
*/
|
|
100
|
+
function createFragmentVNode(children, state) {
|
|
101
|
+
const childNodes = [];
|
|
102
|
+
for (const childIR of children) {
|
|
103
|
+
const childVNode = createVNodeFromIR(childIR, state);
|
|
104
|
+
childNodes.push(childVNode);
|
|
105
|
+
}
|
|
106
|
+
return {
|
|
107
|
+
type: FragmentSymbol,
|
|
108
|
+
props: null,
|
|
109
|
+
children: childNodes,
|
|
110
|
+
key: '',
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Process a directive and update props
|
|
115
|
+
*/
|
|
116
|
+
function processDirective(directive, props, state) {
|
|
117
|
+
switch (directive.type) {
|
|
118
|
+
case 'text': {
|
|
119
|
+
// x-text directive - set as text content
|
|
120
|
+
const value = evaluateExpression(directive.expression ?? '', state);
|
|
121
|
+
props['x-text'] = String(value ?? '');
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
case 'html': {
|
|
125
|
+
// x-html directive - set as raw HTML
|
|
126
|
+
const value = evaluateExpression(directive.expression ?? '', state);
|
|
127
|
+
props['x-html'] = String(value ?? '');
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
case 'bind': {
|
|
131
|
+
// x-bind:attribute - bind attribute to expression
|
|
132
|
+
const attrName = directive.name.replace(/^(?:x|f)-bind:/, '');
|
|
133
|
+
const value = evaluateExpression(directive.expression ?? '', state);
|
|
134
|
+
props[attrName] = value == null ? '' : String(value);
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
case 'on': {
|
|
138
|
+
// x-on:event - declare event handler
|
|
139
|
+
const eventName = directive.name.replace(/^(?:x|f)-on:/, '');
|
|
140
|
+
props[`x-on:${eventName}`] = directive.expression ?? '';
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
case 'show': {
|
|
144
|
+
const value = evaluateExpression(directive.expression ?? '', state);
|
|
145
|
+
props['x-show'] = Boolean(value);
|
|
146
|
+
break;
|
|
147
|
+
}
|
|
148
|
+
case 'model': {
|
|
149
|
+
props['x-model'] = directive.expression ?? '';
|
|
150
|
+
break;
|
|
151
|
+
}
|
|
152
|
+
case 'if':
|
|
153
|
+
case 'else-if':
|
|
154
|
+
case 'else':
|
|
155
|
+
case 'for':
|
|
156
|
+
case 'items':
|
|
157
|
+
case 'key':
|
|
158
|
+
// These are handled at a higher level
|
|
159
|
+
break;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Simple expression evaluator
|
|
164
|
+
* In a real implementation, this would use a proper expression parser
|
|
165
|
+
* For now, it supports simple property access and literals
|
|
166
|
+
*/
|
|
167
|
+
function evaluateExpression(expr, state) {
|
|
168
|
+
if (!expr)
|
|
169
|
+
return undefined;
|
|
170
|
+
try {
|
|
171
|
+
const context = state;
|
|
172
|
+
const keys = Object.keys(context);
|
|
173
|
+
const values = Object.values(context);
|
|
174
|
+
const fn = new Function(...keys, `"use strict"; return (${expr});`);
|
|
175
|
+
return fn(...values);
|
|
176
|
+
}
|
|
177
|
+
catch {
|
|
178
|
+
return undefined;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Check if VNode is a text node
|
|
183
|
+
*/
|
|
184
|
+
export function isTextVNode(node) {
|
|
185
|
+
return node.type === TextSymbol;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Check if VNode is a fragment
|
|
189
|
+
*/
|
|
190
|
+
export function isFragment(node) {
|
|
191
|
+
return node.type === FragmentSymbol;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Get the type name of a VNode
|
|
195
|
+
*/
|
|
196
|
+
export function getVNodeType(node) {
|
|
197
|
+
if (typeof node.type === 'symbol') {
|
|
198
|
+
if (node.type === TextSymbol)
|
|
199
|
+
return 'text';
|
|
200
|
+
if (node.type === FragmentSymbol)
|
|
201
|
+
return 'fragment';
|
|
202
|
+
return 'unknown';
|
|
203
|
+
}
|
|
204
|
+
return node.type;
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=vnode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vnode.js","sourceRoot":"","sources":["../../src/vdom/vnode.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "illimi-core",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"private": false,
|
|
5
|
+
"description": "Core library for illimi framework - Virtual DOM and Reactivity System",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "dist/index.js",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": "./dist/index.js"
|
|
10
|
+
},
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "tsc"
|
|
13
|
+
},
|
|
14
|
+
"keywords": [],
|
|
15
|
+
"authors": [
|
|
16
|
+
{
|
|
17
|
+
"name": "Rapha Panchi",
|
|
18
|
+
"email": "raphapanchi@gmail.com",
|
|
19
|
+
"url": "https://github.com/ralphxp"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"name": "Codizium Team",
|
|
23
|
+
"email": "hell.codizium@gmail.com",
|
|
24
|
+
"url": "https://github.com/codizium"
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
"license": "MIT",
|
|
28
|
+
"repository": {
|
|
29
|
+
"type": "git",
|
|
30
|
+
"url": "git@github.com:codizium/illimi-core.git"
|
|
31
|
+
},
|
|
32
|
+
"bugs": {
|
|
33
|
+
"url": "https://github.com/codizium/illimi-core/issues"
|
|
34
|
+
},
|
|
35
|
+
"homepage": "https://github.com/codizium/illimi-core#readme"
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
/* === Module System === */
|
|
4
|
+
"module": "NodeNext",
|
|
5
|
+
"moduleResolution": "NodeNext",
|
|
6
|
+
|
|
7
|
+
/* === Output === */
|
|
8
|
+
"target": "ES2020",
|
|
9
|
+
"outDir": "./dist",
|
|
10
|
+
"declaration": true,
|
|
11
|
+
"declarationMap": true,
|
|
12
|
+
"sourceMap": true,
|
|
13
|
+
|
|
14
|
+
/* === Project Structure === */
|
|
15
|
+
/* rootDir is set per-package in package tsconfigs */
|
|
16
|
+
"rootDir": "./src",
|
|
17
|
+
|
|
18
|
+
/* === Type Safety === */
|
|
19
|
+
"strict": true,
|
|
20
|
+
"noUncheckedIndexedAccess": true,
|
|
21
|
+
"exactOptionalPropertyTypes": true,
|
|
22
|
+
|
|
23
|
+
/* === Interop & Stability === */
|
|
24
|
+
"esModuleInterop": true,
|
|
25
|
+
"forceConsistentCasingInFileNames": true,
|
|
26
|
+
"skipLibCheck": true
|
|
27
|
+
}
|
|
28
|
+
}
|