@hypen-space/core 0.2.1 → 0.2.3
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/README.md +199 -154
- package/dist/src/app.js +2 -1
- package/dist/src/app.js.map +3 -3
- package/dist/src/engine.browser.js +2 -2
- package/dist/src/engine.browser.js.map +2 -2
- package/dist/src/engine.js +4 -3
- package/dist/src/engine.js.map +3 -3
- package/dist/src/index.js +18 -6
- package/dist/src/index.js.map +1 -1
- package/dist/src/plugin.js +126 -0
- package/dist/src/plugin.js.map +10 -0
- package/dist/src/resolver.js +102 -0
- package/dist/src/resolver.js.map +10 -0
- package/dist/src/router.js +37 -18
- package/dist/src/router.js.map +3 -3
- package/dist/src/state.js +9 -1
- package/dist/src/state.js.map +3 -3
- package/package.json +15 -2
- package/src/app.ts +1 -0
- package/src/engine.browser.ts +1 -1
- package/src/engine.ts +4 -2
- package/src/index.ts +21 -1
- package/src/plugin.ts +219 -0
- package/src/resolver.ts +216 -0
- package/src/router.ts +43 -21
- package/src/state.ts +20 -0
- package/wasm-browser/README.md +425 -0
- package/wasm-browser/hypen_engine.d.ts +151 -0
- package/wasm-browser/hypen_engine.js +811 -0
- package/wasm-browser/hypen_engine_bg.js +736 -0
- package/wasm-browser/hypen_engine_bg.wasm +0 -0
- package/wasm-browser/hypen_engine_bg.wasm.d.ts +30 -0
- package/wasm-browser/package.json +15 -0
- package/wasm-node/README.md +425 -0
- package/wasm-node/hypen_engine.d.ts +97 -0
- package/wasm-node/hypen_engine.js +751 -0
- package/wasm-node/hypen_engine_bg.js +736 -0
- package/wasm-node/hypen_engine_bg.wasm +0 -0
- package/wasm-node/hypen_engine_bg.wasm.d.ts +30 -0
- package/wasm-node/package.json +11 -0
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* Export patches as JSON string (for debugging)
|
|
5
|
+
*/
|
|
6
|
+
export function patchesToJson(patches: any): string;
|
|
7
|
+
/**
|
|
8
|
+
* Parse Hypen DSL and return AST as JSON
|
|
9
|
+
*/
|
|
10
|
+
export function parseToJson(source: string): string;
|
|
11
|
+
export function main(): void;
|
|
12
|
+
/**
|
|
13
|
+
* WASM-exported engine instance
|
|
14
|
+
* Uses Rc<RefCell<>> instead of Send+Sync for WASM single-threaded environment
|
|
15
|
+
*/
|
|
16
|
+
export class WasmEngine {
|
|
17
|
+
free(): void;
|
|
18
|
+
[Symbol.dispose](): void;
|
|
19
|
+
/**
|
|
20
|
+
* Create a new engine instance
|
|
21
|
+
*/
|
|
22
|
+
constructor();
|
|
23
|
+
/**
|
|
24
|
+
* Parse and render Hypen DSL source code
|
|
25
|
+
*/
|
|
26
|
+
renderSource(source: string): void;
|
|
27
|
+
/**
|
|
28
|
+
* Set the render callback that receives patches
|
|
29
|
+
*/
|
|
30
|
+
setRenderCallback(callback: Function): void;
|
|
31
|
+
/**
|
|
32
|
+
* Set the component resolver callback
|
|
33
|
+
* The resolver receives (componentName, contextPath) and should return
|
|
34
|
+
* { source: string, path: string } or null
|
|
35
|
+
*
|
|
36
|
+
* contextPath is the path of the component that's referencing this component
|
|
37
|
+
* The returned path should be the resolved absolute path to the component file
|
|
38
|
+
*/
|
|
39
|
+
setComponentResolver(resolver: Function): void;
|
|
40
|
+
/**
|
|
41
|
+
* Register a primitive element (like Text, Button, etc.) to skip component resolution
|
|
42
|
+
* This prevents unnecessary resolver calls for built-in DOM elements
|
|
43
|
+
*/
|
|
44
|
+
registerPrimitive(name: string): void;
|
|
45
|
+
/**
|
|
46
|
+
* Render a component source (for lazy loading routes)
|
|
47
|
+
* This allows rendering a component on-demand
|
|
48
|
+
*/
|
|
49
|
+
renderLazyComponent(source: string): void;
|
|
50
|
+
/**
|
|
51
|
+
* Render a component into a specific parent node (subtree rendering)
|
|
52
|
+
* This is used for lazy routing where components are rendered on-demand into route containers
|
|
53
|
+
*
|
|
54
|
+
* # Arguments
|
|
55
|
+
* * `source` - The Hypen DSL source to parse and render
|
|
56
|
+
* * `parent_node_id_str` - The serialized node ID string of the parent element
|
|
57
|
+
* * `state_js` - The state to use for rendering (as JsValue)
|
|
58
|
+
*/
|
|
59
|
+
renderInto(source: string, parent_node_id_str: string, state_js: any): void;
|
|
60
|
+
/**
|
|
61
|
+
* Update state from JavaScript
|
|
62
|
+
*/
|
|
63
|
+
updateState(state_patch: any): void;
|
|
64
|
+
/**
|
|
65
|
+
* Update state using sparse path-value pairs
|
|
66
|
+
* More efficient than updateState for large state objects when only a few paths changed
|
|
67
|
+
*
|
|
68
|
+
* # Arguments
|
|
69
|
+
* * `paths_js` - Array of changed paths (e.g., ["user.name", "count"])
|
|
70
|
+
* * `values_js` - Object mapping paths to their new values (e.g., { "user.name": "Bob", "count": 42 })
|
|
71
|
+
*/
|
|
72
|
+
updateStateSparse(paths_js: any, values_js: any): void;
|
|
73
|
+
/**
|
|
74
|
+
* Dispatch an action
|
|
75
|
+
*/
|
|
76
|
+
dispatchAction(name: string, payload: any): void;
|
|
77
|
+
/**
|
|
78
|
+
* Register an action handler
|
|
79
|
+
*/
|
|
80
|
+
onAction(action_name: string, handler: Function): void;
|
|
81
|
+
/**
|
|
82
|
+
* Clear the engine tree (useful when switching samples)
|
|
83
|
+
*/
|
|
84
|
+
clearTree(): void;
|
|
85
|
+
/**
|
|
86
|
+
* Debug method to inspect parsed components
|
|
87
|
+
*/
|
|
88
|
+
debugParseComponent(source: string): string;
|
|
89
|
+
/**
|
|
90
|
+
* Initialize a module
|
|
91
|
+
*/
|
|
92
|
+
setModule(name: string, actions: string[], state_keys: string[], initial_state: any): void;
|
|
93
|
+
/**
|
|
94
|
+
* Get the current revision number
|
|
95
|
+
*/
|
|
96
|
+
getRevision(): bigint;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
|
|
100
|
+
|
|
101
|
+
export interface InitOutput {
|
|
102
|
+
readonly memory: WebAssembly.Memory;
|
|
103
|
+
readonly __wbg_wasmengine_free: (a: number, b: number) => void;
|
|
104
|
+
readonly wasmengine_new: () => number;
|
|
105
|
+
readonly wasmengine_setRenderCallback: (a: number, b: any) => void;
|
|
106
|
+
readonly wasmengine_setComponentResolver: (a: number, b: any) => void;
|
|
107
|
+
readonly wasmengine_registerPrimitive: (a: number, b: number, c: number) => void;
|
|
108
|
+
readonly wasmengine_renderLazyComponent: (a: number, b: number, c: number) => [number, number];
|
|
109
|
+
readonly wasmengine_renderInto: (a: number, b: number, c: number, d: number, e: number, f: any) => [number, number];
|
|
110
|
+
readonly wasmengine_updateState: (a: number, b: any) => [number, number];
|
|
111
|
+
readonly wasmengine_updateStateSparse: (a: number, b: any, c: any) => [number, number];
|
|
112
|
+
readonly wasmengine_dispatchAction: (a: number, b: number, c: number, d: any) => [number, number];
|
|
113
|
+
readonly wasmengine_onAction: (a: number, b: number, c: number, d: any) => void;
|
|
114
|
+
readonly wasmengine_clearTree: (a: number) => void;
|
|
115
|
+
readonly wasmengine_debugParseComponent: (a: number, b: number, c: number) => [number, number, number, number];
|
|
116
|
+
readonly wasmengine_setModule: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: any) => [number, number];
|
|
117
|
+
readonly wasmengine_getRevision: (a: number) => bigint;
|
|
118
|
+
readonly patchesToJson: (a: any) => [number, number, number, number];
|
|
119
|
+
readonly parseToJson: (a: number, b: number) => [number, number, number, number];
|
|
120
|
+
readonly main: () => void;
|
|
121
|
+
readonly wasmengine_renderSource: (a: number, b: number, c: number) => [number, number];
|
|
122
|
+
readonly __wbindgen_exn_store: (a: number) => void;
|
|
123
|
+
readonly __externref_table_alloc: () => number;
|
|
124
|
+
readonly __wbindgen_export_2: WebAssembly.Table;
|
|
125
|
+
readonly __wbindgen_malloc: (a: number, b: number) => number;
|
|
126
|
+
readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
|
|
127
|
+
readonly __externref_table_dealloc: (a: number) => void;
|
|
128
|
+
readonly __wbindgen_free: (a: number, b: number, c: number) => void;
|
|
129
|
+
readonly __wbindgen_start: () => void;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
export type SyncInitInput = BufferSource | WebAssembly.Module;
|
|
133
|
+
/**
|
|
134
|
+
* Instantiates the given `module`, which can either be bytes or
|
|
135
|
+
* a precompiled `WebAssembly.Module`.
|
|
136
|
+
*
|
|
137
|
+
* @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated.
|
|
138
|
+
*
|
|
139
|
+
* @returns {InitOutput}
|
|
140
|
+
*/
|
|
141
|
+
export function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput;
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* If `module_or_path` is {RequestInfo} or {URL}, makes a request and
|
|
145
|
+
* for everything else, calls `WebAssembly.instantiate` directly.
|
|
146
|
+
*
|
|
147
|
+
* @param {{ module_or_path: InitInput | Promise<InitInput> }} module_or_path - Passing `InitInput` directly is deprecated.
|
|
148
|
+
*
|
|
149
|
+
* @returns {Promise<InitOutput>}
|
|
150
|
+
*/
|
|
151
|
+
export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise<InitInput> } | InitInput | Promise<InitInput>): Promise<InitOutput>;
|