@liteforge/runtime 0.1.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 +216 -0
- package/dist/app.d.ts +38 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +266 -0
- package/dist/app.js.map +1 -0
- package/dist/component.d.ts +45 -0
- package/dist/component.d.ts.map +1 -0
- package/dist/component.js +295 -0
- package/dist/component.js.map +1 -0
- package/dist/context.d.ts +66 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +121 -0
- package/dist/context.js.map +1 -0
- package/dist/control-flow.d.ts +119 -0
- package/dist/control-flow.d.ts.map +1 -0
- package/dist/control-flow.js +452 -0
- package/dist/control-flow.js.map +1 -0
- package/dist/h.d.ts +53 -0
- package/dist/h.d.ts.map +1 -0
- package/dist/h.js +282 -0
- package/dist/h.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/template.d.ts +65 -0
- package/dist/template.d.ts.map +1 -0
- package/dist/template.js +237 -0
- package/dist/template.js.map +1 -0
- package/dist/types.d.ts +434 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/package.json +61 -0
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,434 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LiteForge Runtime Types
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for components, context, and lifecycle.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Supported prop types for component props definition.
|
|
8
|
+
*/
|
|
9
|
+
export type PropType<T> = typeof String | typeof Number | typeof Boolean | typeof Object | typeof Array | {
|
|
10
|
+
new (...args: unknown[]): T;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Single prop definition with type, required flag, and default.
|
|
14
|
+
*/
|
|
15
|
+
export interface PropDefinition<T = unknown> {
|
|
16
|
+
type?: PropType<T>;
|
|
17
|
+
required?: boolean;
|
|
18
|
+
default?: T | (() => T);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Props schema - maps prop names to their definitions.
|
|
22
|
+
*/
|
|
23
|
+
export type PropsSchema<T extends Record<string, unknown>> = {
|
|
24
|
+
[K in keyof T]: PropDefinition<T[K]>;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Extract the actual prop types from a props schema.
|
|
28
|
+
*/
|
|
29
|
+
export type ExtractProps<S extends PropsSchema<Record<string, unknown>>> = {
|
|
30
|
+
[K in keyof S]: S[K] extends PropDefinition<infer T> ? T : never;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Check if a prop definition has a default value.
|
|
34
|
+
* We check if 'default' key exists and is not undefined type.
|
|
35
|
+
*/
|
|
36
|
+
type PropHasDefault<Def> = Def extends {
|
|
37
|
+
default: infer D;
|
|
38
|
+
} ? D extends undefined ? false : true : false;
|
|
39
|
+
/**
|
|
40
|
+
* Check if a prop definition is marked as required.
|
|
41
|
+
*/
|
|
42
|
+
type PropIsRequired<Def> = Def extends {
|
|
43
|
+
required: true;
|
|
44
|
+
} ? true : false;
|
|
45
|
+
/**
|
|
46
|
+
* A prop requires input if it's marked required AND has no default.
|
|
47
|
+
*/
|
|
48
|
+
type PropRequiresInput<Def> = PropIsRequired<Def> extends true ? PropHasDefault<Def> extends true ? false : true : false;
|
|
49
|
+
/**
|
|
50
|
+
* Extract keys of props that require input (required: true, no default).
|
|
51
|
+
*/
|
|
52
|
+
type RequiredInputKeys<Schema> = {
|
|
53
|
+
[K in keyof Schema]: PropRequiresInput<Schema[K]> extends true ? K : never;
|
|
54
|
+
}[keyof Schema];
|
|
55
|
+
/**
|
|
56
|
+
* Extract keys of props that are optional for input.
|
|
57
|
+
*/
|
|
58
|
+
type OptionalInputKeys<Schema> = Exclude<keyof Schema, RequiredInputKeys<Schema>>;
|
|
59
|
+
/**
|
|
60
|
+
* Compute the input props type from a schema and full props type.
|
|
61
|
+
* - Props with `required: true` and no default: required in input
|
|
62
|
+
* - Props with `default` or not required: optional in input
|
|
63
|
+
*/
|
|
64
|
+
export type InputPropsFromSchema<Schema, FullProps extends Record<string, unknown>> = {
|
|
65
|
+
[K in RequiredInputKeys<Schema> & keyof FullProps]: FullProps[K];
|
|
66
|
+
} & {
|
|
67
|
+
[K in OptionalInputKeys<Schema> & keyof FullProps]?: FullProps[K];
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Simplify a type for better IDE display.
|
|
71
|
+
* Flattens intersection types into a single object type.
|
|
72
|
+
*/
|
|
73
|
+
export type Simplify<T> = {
|
|
74
|
+
[K in keyof T]: T[K];
|
|
75
|
+
} & {};
|
|
76
|
+
/**
|
|
77
|
+
* The use() function type for accessing context.
|
|
78
|
+
*/
|
|
79
|
+
export type UseFn = <T = unknown>(key: string) => T;
|
|
80
|
+
/**
|
|
81
|
+
* Context values stored at app/component level.
|
|
82
|
+
*/
|
|
83
|
+
export type ContextValues = Record<string, unknown>;
|
|
84
|
+
/**
|
|
85
|
+
* Context provider function for components.
|
|
86
|
+
*/
|
|
87
|
+
export type ProviderFn = (ctx: {
|
|
88
|
+
use: UseFn;
|
|
89
|
+
}) => ContextValues;
|
|
90
|
+
/**
|
|
91
|
+
* Arguments passed to the setup() function.
|
|
92
|
+
*/
|
|
93
|
+
export interface SetupArgs<P> {
|
|
94
|
+
props: P;
|
|
95
|
+
use: UseFn;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Arguments passed to the load() function.
|
|
99
|
+
*/
|
|
100
|
+
export interface LoadArgs<P, S> {
|
|
101
|
+
props: P;
|
|
102
|
+
setup: S;
|
|
103
|
+
use: UseFn;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Arguments passed to placeholder component.
|
|
107
|
+
*/
|
|
108
|
+
export interface PlaceholderArgs<P> {
|
|
109
|
+
props: P;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Arguments passed to error component.
|
|
113
|
+
*/
|
|
114
|
+
export interface ErrorArgs<P> {
|
|
115
|
+
props: P;
|
|
116
|
+
error: Error;
|
|
117
|
+
retry: () => void;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Arguments passed to the main component function.
|
|
121
|
+
*/
|
|
122
|
+
export interface ComponentArgs<P, D, S> {
|
|
123
|
+
props: P;
|
|
124
|
+
data: D;
|
|
125
|
+
setup: S;
|
|
126
|
+
use: UseFn;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Arguments passed to the mounted() function.
|
|
130
|
+
*/
|
|
131
|
+
export interface MountedArgs<P, D, S> {
|
|
132
|
+
el: Element;
|
|
133
|
+
props: P;
|
|
134
|
+
data: D;
|
|
135
|
+
setup: S;
|
|
136
|
+
use: UseFn;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Arguments passed to the destroyed() function.
|
|
140
|
+
*/
|
|
141
|
+
export interface DestroyedArgs<P, S> {
|
|
142
|
+
props: P;
|
|
143
|
+
setup: S;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Full component definition passed to createComponent().
|
|
147
|
+
*/
|
|
148
|
+
export interface ComponentDefinition<P extends Record<string, unknown> = Record<string, unknown>, D = unknown, S = unknown> {
|
|
149
|
+
/** Component name for debugging (shown in DevTools) */
|
|
150
|
+
name?: string;
|
|
151
|
+
/** Optional prop definitions with types and defaults */
|
|
152
|
+
props?: PropsSchema<P>;
|
|
153
|
+
/** Phase 1: Synchronous setup, create local signals. No DOM access. */
|
|
154
|
+
setup?: (args: SetupArgs<P>) => S;
|
|
155
|
+
/** Phase 2: Async data loading. Component not rendered until resolved. */
|
|
156
|
+
load?: (args: LoadArgs<P, S>) => Promise<D>;
|
|
157
|
+
/** Shown immediately while load() is running */
|
|
158
|
+
placeholder?: (args: PlaceholderArgs<P>) => Node;
|
|
159
|
+
/** Shown if load() rejects */
|
|
160
|
+
error?: (args: ErrorArgs<P>) => Node;
|
|
161
|
+
/** Phase 3: Main component render. Only called when load() resolved. */
|
|
162
|
+
component: (args: ComponentArgs<P, D, S>) => Node;
|
|
163
|
+
/** Phase 4: After component is in DOM. Return cleanup function. */
|
|
164
|
+
mounted?: (args: MountedArgs<P, D, S>) => void | (() => void);
|
|
165
|
+
/** Phase 5: When component is removed from DOM */
|
|
166
|
+
destroyed?: (args: DestroyedArgs<P, S>) => void;
|
|
167
|
+
/** Provide additional context for children */
|
|
168
|
+
provide?: ProviderFn;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* A component factory function returned by createComponent().
|
|
172
|
+
*
|
|
173
|
+
* @typeParam FullP - The full props type (with all values, including defaults applied)
|
|
174
|
+
* @typeParam InputP - The input props type (what callers must provide)
|
|
175
|
+
*
|
|
176
|
+
* InputP defaults to FullP for backward compatibility, but createComponent()
|
|
177
|
+
* computes the proper InputP based on which props have defaults.
|
|
178
|
+
*/
|
|
179
|
+
export interface ComponentFactory<FullP extends Record<string, unknown> = Record<string, unknown>, InputP = FullP> {
|
|
180
|
+
(props: InputP): ComponentInstance;
|
|
181
|
+
/** Internal marker for component detection */
|
|
182
|
+
__liteforge_component: true;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Internal component instance with lifecycle management.
|
|
186
|
+
*/
|
|
187
|
+
export interface ComponentInstance {
|
|
188
|
+
/** Mount the component to a parent element */
|
|
189
|
+
mount(parent: Element, before?: Node | null): void;
|
|
190
|
+
/** Unmount and clean up the component */
|
|
191
|
+
unmount(): void;
|
|
192
|
+
/** Get the current root DOM node */
|
|
193
|
+
getNode(): Node | null;
|
|
194
|
+
/** Update props (triggers re-render if needed) */
|
|
195
|
+
updateProps(newProps: Record<string, unknown>): void;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Generic store type for createApp stores array.
|
|
199
|
+
*
|
|
200
|
+
* This interface defines the minimal contract a store must satisfy
|
|
201
|
+
* to be used with createApp(). It doesn't use an index signature
|
|
202
|
+
* because stores from defineStore() have complex typed properties
|
|
203
|
+
* that would conflict with `[key: string]: unknown`.
|
|
204
|
+
*/
|
|
205
|
+
export interface AnyStore {
|
|
206
|
+
readonly $name: string;
|
|
207
|
+
$reset: () => void;
|
|
208
|
+
$snapshot: () => Record<string, unknown>;
|
|
209
|
+
$restore: (snapshot: Record<string, unknown>) => void;
|
|
210
|
+
initialize?: () => void | Promise<void>;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Router interface for createApp.
|
|
214
|
+
* Minimal interface that any router implementation should satisfy.
|
|
215
|
+
*/
|
|
216
|
+
export interface RouterLike {
|
|
217
|
+
/** Navigate to a path */
|
|
218
|
+
navigate: (path: string) => void;
|
|
219
|
+
/** Current path signal */
|
|
220
|
+
path: () => string;
|
|
221
|
+
/** Start the router (initial navigation) */
|
|
222
|
+
start?: () => void | Promise<void>;
|
|
223
|
+
/** Stop the router */
|
|
224
|
+
stop?: () => void;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Plugin definition for extending app functionality.
|
|
228
|
+
*/
|
|
229
|
+
export interface Plugin {
|
|
230
|
+
/** Plugin name (for identification/logging) */
|
|
231
|
+
name: string;
|
|
232
|
+
/** Called before stores are initialized */
|
|
233
|
+
beforeInit?: (app: {
|
|
234
|
+
context: Record<string, unknown>;
|
|
235
|
+
}) => void | Promise<void>;
|
|
236
|
+
/** Called after everything is mounted */
|
|
237
|
+
afterMount?: (app: AppInstance) => void | Promise<void>;
|
|
238
|
+
/** Called before unmount */
|
|
239
|
+
beforeUnmount?: (app: AppInstance) => void;
|
|
240
|
+
/** Context values this plugin provides */
|
|
241
|
+
provide?: Record<string, unknown>;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* App configuration passed to createApp().
|
|
245
|
+
*/
|
|
246
|
+
export interface AppConfig {
|
|
247
|
+
/** Root component to render */
|
|
248
|
+
root: ComponentFactory<Record<string, unknown>> | (() => Node);
|
|
249
|
+
/** Target element or CSS selector */
|
|
250
|
+
target: string | HTMLElement;
|
|
251
|
+
/** Router instance (optional) */
|
|
252
|
+
router?: RouterLike;
|
|
253
|
+
/** Stores to register and initialize */
|
|
254
|
+
stores?: AnyStore[];
|
|
255
|
+
/** Custom context values available via use() */
|
|
256
|
+
context?: ContextValues;
|
|
257
|
+
/** Plugins that extend the app lifecycle */
|
|
258
|
+
plugins?: Plugin[];
|
|
259
|
+
/** Debug mode: $lf on window, logging (default: auto-detect via import.meta.env?.DEV) */
|
|
260
|
+
debug?: boolean;
|
|
261
|
+
/** Callback when app is successfully mounted */
|
|
262
|
+
onReady?: (app: AppInstance) => void;
|
|
263
|
+
/** Callback when an error occurs during bootstrap */
|
|
264
|
+
onError?: (error: Error) => void;
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* App instance returned by createApp().
|
|
268
|
+
*/
|
|
269
|
+
export interface AppInstance {
|
|
270
|
+
/** Unmount and clean up the app */
|
|
271
|
+
unmount: () => void;
|
|
272
|
+
/** Access context values from outside components */
|
|
273
|
+
use: UseFn;
|
|
274
|
+
/** Router instance (if configured) */
|
|
275
|
+
router?: RouterLike;
|
|
276
|
+
/** All registered stores by name */
|
|
277
|
+
stores: Record<string, AnyStore>;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Falsy values that Show considers "not showing"
|
|
281
|
+
*/
|
|
282
|
+
export type Falsy = false | 0 | '' | null | undefined;
|
|
283
|
+
/**
|
|
284
|
+
* Props for the Show component with generic type inference.
|
|
285
|
+
*
|
|
286
|
+
* @typeParam T - The type returned by the `when` getter. When truthy,
|
|
287
|
+
* this value (narrowed to NonNullable<T>) is passed to children.
|
|
288
|
+
*
|
|
289
|
+
* @example
|
|
290
|
+
* ```ts
|
|
291
|
+
* Show({
|
|
292
|
+
* when: () => currentUser(), // () => User | null
|
|
293
|
+
* children: (user) => ( // user is User, not User | null
|
|
294
|
+
* <h1>{user.name}</h1>
|
|
295
|
+
* ),
|
|
296
|
+
* })
|
|
297
|
+
* ```
|
|
298
|
+
*/
|
|
299
|
+
export interface ShowProps<T> {
|
|
300
|
+
/**
|
|
301
|
+
* Reactive condition. When the returned value is truthy,
|
|
302
|
+
* children is called with that value.
|
|
303
|
+
*/
|
|
304
|
+
when: (() => T) | T;
|
|
305
|
+
/**
|
|
306
|
+
* Render function called with the truthy value.
|
|
307
|
+
* The value is guaranteed to be non-null/non-undefined.
|
|
308
|
+
*/
|
|
309
|
+
children: (value: NonNullable<T>) => Node;
|
|
310
|
+
/** Rendered when the condition is falsy */
|
|
311
|
+
fallback?: () => Node;
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Props for the For component with generic type inference.
|
|
315
|
+
*
|
|
316
|
+
* @typeParam T - The item type, inferred from the `each` array.
|
|
317
|
+
*
|
|
318
|
+
* @example
|
|
319
|
+
* ```ts
|
|
320
|
+
* For({
|
|
321
|
+
* each: () => users(), // () => User[]
|
|
322
|
+
* key: 'id', // keyof User - TypeScript validates this
|
|
323
|
+
* children: (user, index) => ( // user is User, index is number
|
|
324
|
+
* <li>{index}: {user.name}</li>
|
|
325
|
+
* ),
|
|
326
|
+
* })
|
|
327
|
+
* ```
|
|
328
|
+
*/
|
|
329
|
+
export interface ForProps<T> {
|
|
330
|
+
/**
|
|
331
|
+
* Reactive array source. Can be a signal, getter, or static array.
|
|
332
|
+
*/
|
|
333
|
+
each: (() => ReadonlyArray<T>) | (() => T[]) | ReadonlyArray<T> | T[];
|
|
334
|
+
/**
|
|
335
|
+
* Key extractor for reconciliation. Can be:
|
|
336
|
+
* - A property name of T (validated by TypeScript)
|
|
337
|
+
* - A function that extracts a key from an item
|
|
338
|
+
*/
|
|
339
|
+
key?: keyof T | ((item: T, index: number) => string | number);
|
|
340
|
+
/**
|
|
341
|
+
* Render function for each item.
|
|
342
|
+
* @param item - The current item (type T, inferred from each)
|
|
343
|
+
* @param index - The current index (plain number)
|
|
344
|
+
*/
|
|
345
|
+
children: (item: T, index: number) => Node;
|
|
346
|
+
/** Rendered when the array is empty */
|
|
347
|
+
fallback?: () => Node;
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Props for the Switch component.
|
|
351
|
+
*/
|
|
352
|
+
export interface SwitchProps {
|
|
353
|
+
/** Fallback rendered when no Match condition is true */
|
|
354
|
+
fallback?: () => Node;
|
|
355
|
+
/** Array of Match case objects */
|
|
356
|
+
children: Array<MatchCase>;
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* A single case in a Switch statement.
|
|
360
|
+
*/
|
|
361
|
+
export interface MatchCase {
|
|
362
|
+
/** Condition - first true match wins */
|
|
363
|
+
when: (() => boolean) | boolean;
|
|
364
|
+
/** Render function for this case */
|
|
365
|
+
render: () => Node;
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* Props for the Match helper function.
|
|
369
|
+
*/
|
|
370
|
+
export interface MatchProps {
|
|
371
|
+
/** Reactive condition */
|
|
372
|
+
when: (() => boolean) | boolean;
|
|
373
|
+
/** Rendered when condition is true */
|
|
374
|
+
children: () => Node;
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* Props for the Dynamic component.
|
|
378
|
+
*
|
|
379
|
+
* @typeParam P - Props type for the dynamic component
|
|
380
|
+
*
|
|
381
|
+
* The component prop is a getter function that returns either:
|
|
382
|
+
* - RenderFunction: A simple () => Node function
|
|
383
|
+
* - ComponentFactory: A LiteForge component from createComponent()
|
|
384
|
+
* - null: No component to render
|
|
385
|
+
*/
|
|
386
|
+
export interface DynamicProps<P extends Record<string, unknown> = Record<string, unknown>> {
|
|
387
|
+
/** Reactive getter for the component to render */
|
|
388
|
+
component: () => RenderFunction | ComponentFactory<P> | null;
|
|
389
|
+
/** Props to pass to the component */
|
|
390
|
+
props?: P | (() => P);
|
|
391
|
+
}
|
|
392
|
+
/**
|
|
393
|
+
* A simple render function that returns a DOM Node.
|
|
394
|
+
* Distinguished from ComponentFactory by not having __liteforge_component.
|
|
395
|
+
*/
|
|
396
|
+
export type RenderFunction = () => Node;
|
|
397
|
+
/**
|
|
398
|
+
* Child types that can be rendered.
|
|
399
|
+
* Includes functions that return primitives for reactive expressions.
|
|
400
|
+
*/
|
|
401
|
+
export type Child = Node | string | number | boolean | null | undefined | (() => Child) | Child[];
|
|
402
|
+
/**
|
|
403
|
+
* Function component type.
|
|
404
|
+
*/
|
|
405
|
+
export type FunctionComponent<P = Record<string, unknown>> = (props: P) => Node;
|
|
406
|
+
/**
|
|
407
|
+
* Intrinsic element attributes.
|
|
408
|
+
* Properties can be functions (getters) for reactivity.
|
|
409
|
+
*/
|
|
410
|
+
export type HTMLAttributes = Record<string, unknown> & {
|
|
411
|
+
class?: string | (() => string);
|
|
412
|
+
style?: string | (() => string) | Record<string, string>;
|
|
413
|
+
children?: Child | Child[];
|
|
414
|
+
};
|
|
415
|
+
declare global {
|
|
416
|
+
namespace JSX {
|
|
417
|
+
/** JSX elements return Node */
|
|
418
|
+
type Element = Node;
|
|
419
|
+
/** Props for elements */
|
|
420
|
+
interface ElementAttributesProperty {
|
|
421
|
+
props: Record<string, unknown>;
|
|
422
|
+
}
|
|
423
|
+
/** Children attribute */
|
|
424
|
+
interface ElementChildrenAttribute {
|
|
425
|
+
children: Child | Child[];
|
|
426
|
+
}
|
|
427
|
+
/** HTML elements with loose typing */
|
|
428
|
+
interface IntrinsicElements {
|
|
429
|
+
[elemName: string]: HTMLAttributes;
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
export {};
|
|
434
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
package/package.json
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@liteforge/runtime",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Component runtime with JSX support. Control flow components for conditional and list rendering.",
|
|
5
|
+
"author": "SchildW3rk <contact@schildw3rk.dev>",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/schildw3rk/liteforge",
|
|
10
|
+
"directory": "packages/runtime"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://github.com/schildw3rk/liteforge#readme",
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/schildw3rk/liteforge/issues"
|
|
15
|
+
},
|
|
16
|
+
"keywords": [
|
|
17
|
+
"liteforge",
|
|
18
|
+
"runtime",
|
|
19
|
+
"jsx",
|
|
20
|
+
"components",
|
|
21
|
+
"dom",
|
|
22
|
+
"show",
|
|
23
|
+
"for",
|
|
24
|
+
"switch",
|
|
25
|
+
"control-flow"
|
|
26
|
+
],
|
|
27
|
+
"type": "module",
|
|
28
|
+
"main": "./dist/index.js",
|
|
29
|
+
"module": "./dist/index.js",
|
|
30
|
+
"types": "./dist/index.d.ts",
|
|
31
|
+
"exports": {
|
|
32
|
+
".": {
|
|
33
|
+
"types": "./dist/index.d.ts",
|
|
34
|
+
"import": "./dist/index.js"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"files": [
|
|
38
|
+
"dist",
|
|
39
|
+
"README.md",
|
|
40
|
+
"LICENSE"
|
|
41
|
+
],
|
|
42
|
+
"sideEffects": false,
|
|
43
|
+
"engines": {
|
|
44
|
+
"node": ">=18"
|
|
45
|
+
},
|
|
46
|
+
"publishConfig": {
|
|
47
|
+
"access": "public"
|
|
48
|
+
},
|
|
49
|
+
"peerDependencies": {
|
|
50
|
+
"@liteforge/core": ">=0.1.0"
|
|
51
|
+
},
|
|
52
|
+
"devDependencies": {
|
|
53
|
+
"@liteforge/core": "0.1.0"
|
|
54
|
+
},
|
|
55
|
+
"scripts": {
|
|
56
|
+
"build": "tsc -p tsconfig.build.json",
|
|
57
|
+
"dev": "tsc -p tsconfig.build.json --watch",
|
|
58
|
+
"typecheck": "tsc --noEmit",
|
|
59
|
+
"clean": "rm -rf dist *.tsbuildinfo"
|
|
60
|
+
}
|
|
61
|
+
}
|