@hypen-space/core 0.4.37 → 0.4.39
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 +13 -14
- package/dist/app.js +304 -227
- package/dist/app.js.map +5 -5
- package/dist/components/builtin.d.ts +17 -0
- package/dist/components/builtin.js +336 -256
- package/dist/components/builtin.js.map +6 -6
- package/dist/context.d.ts +11 -20
- package/dist/context.js +69 -101
- package/dist/context.js.map +3 -3
- package/dist/datasource.js +80 -0
- package/dist/datasource.js.map +10 -0
- package/dist/disposable.js +60 -63
- package/dist/disposable.js.map +2 -2
- package/dist/events.js +60 -63
- package/dist/events.js.map +2 -2
- package/dist/hypen.js +78 -0
- package/dist/hypen.js.map +10 -0
- package/dist/index.browser.d.ts +2 -1
- package/dist/index.browser.js +327 -281
- package/dist/index.browser.js.map +7 -8
- package/dist/index.d.ts +0 -3
- package/dist/index.js +547 -246
- package/dist/index.js.map +9 -9
- package/dist/logger.js +60 -64
- package/dist/logger.js.map +2 -2
- package/dist/remote/client.js +258 -158
- package/dist/remote/client.js.map +6 -6
- package/dist/remote/index.d.ts +6 -5
- package/dist/remote/index.js +255 -1985
- package/dist/remote/index.js.map +6 -13
- package/dist/remote/session.js +151 -0
- package/dist/remote/session.js.map +10 -0
- package/dist/renderer.js +60 -63
- package/dist/renderer.js.map +2 -2
- package/dist/result.js +235 -0
- package/dist/result.js.map +10 -0
- package/dist/retry.js +344 -0
- package/dist/retry.js.map +11 -0
- package/dist/router.js +62 -70
- package/dist/router.js.map +2 -2
- package/dist/state.js +3 -8
- package/dist/state.js.map +2 -2
- package/package.json +11 -56
- package/src/components/builtin.ts +78 -56
- package/src/context.ts +22 -65
- package/src/index.browser.ts +5 -4
- package/src/index.ts +10 -23
- package/src/remote/index.ts +9 -5
- package/src/result.ts +11 -0
- package/dist/discovery.d.ts +0 -90
- package/dist/discovery.js +0 -1334
- package/dist/discovery.js.map +0 -15
- package/dist/engine.browser.d.ts +0 -116
- package/dist/engine.browser.js +0 -479
- package/dist/engine.browser.js.map +0 -12
- package/dist/engine.d.ts +0 -107
- package/dist/engine.js +0 -543
- package/dist/engine.js.map +0 -12
- package/dist/loader.d.ts +0 -51
- package/dist/loader.js +0 -292
- package/dist/loader.js.map +0 -11
- package/dist/plugin.d.ts +0 -39
- package/dist/plugin.js +0 -685
- package/dist/plugin.js.map +0 -12
- package/dist/remote/server.d.ts +0 -188
- package/dist/remote/server.js +0 -2270
- package/dist/remote/server.js.map +0 -19
- package/src/discovery.ts +0 -527
- package/src/engine.browser.ts +0 -302
- package/src/engine.ts +0 -282
- package/src/loader.ts +0 -136
- package/src/plugin.ts +0 -220
- package/src/remote/server.ts +0 -879
- package/wasm-browser/README.md +0 -594
- package/wasm-browser/hypen_engine.d.ts +0 -389
- package/wasm-browser/hypen_engine.js +0 -1070
- package/wasm-browser/hypen_engine_bg.wasm +0 -0
- package/wasm-browser/hypen_engine_bg.wasm.d.ts +0 -37
- package/wasm-browser/package.json +0 -24
- package/wasm-node/README.md +0 -594
- package/wasm-node/hypen_engine.d.ts +0 -327
- package/wasm-node/hypen_engine.js +0 -979
- package/wasm-node/hypen_engine_bg.wasm +0 -0
- package/wasm-node/hypen_engine_bg.wasm.d.ts +0 -37
- package/wasm-node/package.json +0 -22
package/src/index.browser.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @hypen-space/core - Browser Entry Point
|
|
3
3
|
*
|
|
4
|
-
* This entry point
|
|
4
|
+
* This entry point exports platform-agnostic runtime APIs for browser use.
|
|
5
|
+
* Engine has moved to @hypen-space/web-engine (browser) and @hypen-space/server (Node.js).
|
|
5
6
|
*/
|
|
6
7
|
|
|
7
8
|
// ============================================================================
|
|
@@ -17,9 +18,9 @@ export type {
|
|
|
17
18
|
ComponentResolver,
|
|
18
19
|
} from "./types.js";
|
|
19
20
|
|
|
20
|
-
// NOTE: Engine
|
|
21
|
-
//
|
|
22
|
-
// import { Engine } from "@hypen-space/
|
|
21
|
+
// NOTE: Engine has moved to dedicated packages:
|
|
22
|
+
// Browser: import { Engine } from "@hypen-space/web-engine/engine"
|
|
23
|
+
// Node.js: import { Engine } from "@hypen-space/server/engine"
|
|
23
24
|
|
|
24
25
|
// ============================================================================
|
|
25
26
|
// APP / MODULE SYSTEM
|
package/src/index.ts
CHANGED
|
@@ -54,10 +54,9 @@ export type {
|
|
|
54
54
|
ComponentResolver as EngineComponentResolver,
|
|
55
55
|
} from "./types.js";
|
|
56
56
|
|
|
57
|
-
// NOTE: Engine
|
|
58
|
-
//
|
|
59
|
-
// import { Engine } from "@hypen-space/
|
|
60
|
-
// import { Engine } from "@hypen-space/core/engine/browser"
|
|
57
|
+
// NOTE: Engine has moved to dedicated packages:
|
|
58
|
+
// Browser: import { Engine } from "@hypen-space/web-engine/engine"
|
|
59
|
+
// Node.js: import { Engine } from "@hypen-space/server/engine"
|
|
61
60
|
|
|
62
61
|
// ============================================================================
|
|
63
62
|
// APP / MODULE SYSTEM
|
|
@@ -172,9 +171,8 @@ export type {
|
|
|
172
171
|
SessionInfo,
|
|
173
172
|
} from "./remote/client.js";
|
|
174
173
|
|
|
175
|
-
// NOTE: RemoteServer
|
|
176
|
-
//
|
|
177
|
-
// import { RemoteServer, serve } from "@hypen-space/core/remote/server"
|
|
174
|
+
// NOTE: RemoteServer has moved to @hypen-space/server:
|
|
175
|
+
// import { RemoteServer, serve } from "@hypen-space/server/remote"
|
|
178
176
|
|
|
179
177
|
// Session Management
|
|
180
178
|
export { SessionManager } from "./remote/session.js";
|
|
@@ -210,25 +208,14 @@ export type {
|
|
|
210
208
|
} from "./resolver.js";
|
|
211
209
|
|
|
212
210
|
// ============================================================================
|
|
213
|
-
// NODE-ONLY MODULES
|
|
211
|
+
// NODE-ONLY MODULES — Moved to @hypen-space/server
|
|
214
212
|
// ============================================================================
|
|
215
213
|
//
|
|
216
|
-
// These modules
|
|
217
|
-
//
|
|
214
|
+
// These modules have moved to the @hypen-space/server package:
|
|
215
|
+
// import { ComponentLoader, componentLoader } from "@hypen-space/server/loader"
|
|
216
|
+
// import { discoverComponents, ... } from "@hypen-space/server/discovery"
|
|
217
|
+
// import { hypenPlugin, ... } from "@hypen-space/server/plugin"
|
|
218
218
|
//
|
|
219
|
-
// import { ComponentLoader, componentLoader } from "@hypen-space/core/loader"
|
|
220
|
-
// import { discoverComponents, ... } from "@hypen-space/core/discovery"
|
|
221
|
-
// import { hypenPlugin, ... } from "@hypen-space/core/plugin"
|
|
222
|
-
//
|
|
223
|
-
|
|
224
|
-
// Re-export types only (types are always safe)
|
|
225
|
-
export type { ComponentDefinition } from "./loader.js";
|
|
226
|
-
export type {
|
|
227
|
-
DiscoveredComponent,
|
|
228
|
-
DiscoveryOptions,
|
|
229
|
-
WatchOptions,
|
|
230
|
-
} from "./discovery.js";
|
|
231
|
-
export type { HypenPluginOptions } from "./plugin.js";
|
|
232
219
|
|
|
233
220
|
// ============================================================================
|
|
234
221
|
// BUILT-IN COMPONENTS
|
package/src/remote/index.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Remote UI
|
|
2
|
+
* Remote UI client and session management for Hypen
|
|
3
3
|
*
|
|
4
|
-
* Client-side: Connect to remote Hypen apps
|
|
5
|
-
*
|
|
4
|
+
* Client-side: Connect to remote Hypen apps via RemoteEngine
|
|
5
|
+
* Session: Manage client sessions with SessionManager
|
|
6
|
+
*
|
|
7
|
+
* Note: RemoteServer has moved to @hypen-space/server
|
|
6
8
|
*/
|
|
7
9
|
|
|
8
10
|
// Client
|
|
@@ -14,8 +16,8 @@ export type {
|
|
|
14
16
|
SessionInfo,
|
|
15
17
|
} from "./client.js";
|
|
16
18
|
|
|
17
|
-
//
|
|
18
|
-
|
|
19
|
+
// NOTE: RemoteServer has moved to @hypen-space/server
|
|
20
|
+
// Import it from: import { RemoteServer } from "@hypen-space/server/remote"
|
|
19
21
|
|
|
20
22
|
// Session Management
|
|
21
23
|
export { SessionManager } from "./session.js";
|
|
@@ -28,6 +30,8 @@ export type {
|
|
|
28
30
|
PatchMessage,
|
|
29
31
|
DispatchActionMessage,
|
|
30
32
|
StateUpdateMessage,
|
|
33
|
+
UpdateStateMessage,
|
|
34
|
+
SubscribeStateMessage,
|
|
31
35
|
HelloMessage,
|
|
32
36
|
SessionAckMessage,
|
|
33
37
|
SessionExpiredMessage,
|
package/src/result.ts
CHANGED
|
@@ -292,6 +292,17 @@ export class RenderError extends HypenError {
|
|
|
292
292
|
* The engine returns JsValue error strings with known prefixes.
|
|
293
293
|
*/
|
|
294
294
|
export function classifyEngineError(err: unknown): HypenError {
|
|
295
|
+
// Handle structured WASM errors: { type: string, message: string }
|
|
296
|
+
if (err && typeof err === 'object' && 'message' in err && 'type' in err) {
|
|
297
|
+
const structured = err as { type: string; message: string };
|
|
298
|
+
switch (structured.type) {
|
|
299
|
+
case 'parseError': return new ParseError(structured.message);
|
|
300
|
+
case 'stateError': return new StateError(structured.message);
|
|
301
|
+
case 'renderError': return new RenderError(structured.message);
|
|
302
|
+
case 'actionError': return new HypenError('ACTION_ERROR', structured.message);
|
|
303
|
+
default: return new HypenError('UNKNOWN_ERROR', structured.message);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
295
306
|
const message = err instanceof Error ? err.message : String(err);
|
|
296
307
|
|
|
297
308
|
if (message.startsWith('Parse error:')) {
|
package/dist/discovery.d.ts
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Component Discovery
|
|
3
|
-
*
|
|
4
|
-
* Automatically discovers Hypen components from the filesystem.
|
|
5
|
-
*
|
|
6
|
-
* Supports multiple conventions:
|
|
7
|
-
* 1. Single-file: ComponentName.ts with .ui(hypen`...`) inline template
|
|
8
|
-
* 2. Folder-based: ComponentName/component.ts + ComponentName/component.hypen
|
|
9
|
-
* 3. Sibling files: ComponentName.ts + ComponentName.hypen
|
|
10
|
-
* 4. Index-based: ComponentName/index.ts + ComponentName/index.hypen
|
|
11
|
-
*/
|
|
12
|
-
import type { HypenModuleDefinition } from "./app.js";
|
|
13
|
-
export interface DiscoveredComponent {
|
|
14
|
-
name: string;
|
|
15
|
-
/** Path to .hypen file (null for single-file components with inline templates) */
|
|
16
|
-
hypenPath: string | null;
|
|
17
|
-
/** Path to .ts module file */
|
|
18
|
-
modulePath: string | null;
|
|
19
|
-
/** The UI template (from .hypen file or inline) */
|
|
20
|
-
template: string;
|
|
21
|
-
/** Whether this component has a module (state/actions) */
|
|
22
|
-
hasModule: boolean;
|
|
23
|
-
/** Whether this is a single-file component with inline template */
|
|
24
|
-
isSingleFile: boolean;
|
|
25
|
-
}
|
|
26
|
-
export interface DiscoveryOptions {
|
|
27
|
-
/**
|
|
28
|
-
* Which naming patterns to look for
|
|
29
|
-
* Default: ["single-file", "folder", "sibling", "index"]
|
|
30
|
-
*
|
|
31
|
-
* - single-file: ComponentName.ts with .ui(hypen`...`) inline template
|
|
32
|
-
* - folder: ComponentName/component.ts + ComponentName/component.hypen
|
|
33
|
-
* - sibling: ComponentName.ts + ComponentName.hypen
|
|
34
|
-
* - index: ComponentName/index.ts + ComponentName/index.hypen
|
|
35
|
-
*/
|
|
36
|
-
patterns?: ("single-file" | "folder" | "sibling" | "index")[];
|
|
37
|
-
/**
|
|
38
|
-
* Recursively scan subdirectories
|
|
39
|
-
* Default: true
|
|
40
|
-
*/
|
|
41
|
-
recursive?: boolean;
|
|
42
|
-
/**
|
|
43
|
-
* Enable debug logging
|
|
44
|
-
* Default: false
|
|
45
|
-
*/
|
|
46
|
-
debug?: boolean;
|
|
47
|
-
}
|
|
48
|
-
export interface WatchOptions extends DiscoveryOptions {
|
|
49
|
-
/**
|
|
50
|
-
* Callback when components change
|
|
51
|
-
*/
|
|
52
|
-
onChange?: (components: DiscoveredComponent[]) => void;
|
|
53
|
-
/**
|
|
54
|
-
* Callback when a component is added
|
|
55
|
-
*/
|
|
56
|
-
onAdd?: (component: DiscoveredComponent) => void;
|
|
57
|
-
/**
|
|
58
|
-
* Callback when a component is removed
|
|
59
|
-
*/
|
|
60
|
-
onRemove?: (name: string) => void;
|
|
61
|
-
/**
|
|
62
|
-
* Callback when a component is updated
|
|
63
|
-
*/
|
|
64
|
-
onUpdate?: (component: DiscoveredComponent) => void;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Discover all Hypen components in a directory
|
|
68
|
-
*/
|
|
69
|
-
export declare function discoverComponents(baseDir: string, options?: DiscoveryOptions): Promise<DiscoveredComponent[]>;
|
|
70
|
-
/**
|
|
71
|
-
* Load discovered components into a map for use with Hypen
|
|
72
|
-
*/
|
|
73
|
-
export declare function loadDiscoveredComponents(components: DiscoveredComponent[]): Promise<Map<string, {
|
|
74
|
-
name: string;
|
|
75
|
-
module: HypenModuleDefinition<any>;
|
|
76
|
-
template: string;
|
|
77
|
-
}>>;
|
|
78
|
-
/**
|
|
79
|
-
* Watch a directory for component changes
|
|
80
|
-
*/
|
|
81
|
-
export declare function watchComponents(baseDir: string, options?: WatchOptions): {
|
|
82
|
-
stop: () => void;
|
|
83
|
-
};
|
|
84
|
-
/**
|
|
85
|
-
* Generate a components object from discovered components
|
|
86
|
-
* Useful for static imports / code generation
|
|
87
|
-
*/
|
|
88
|
-
export declare function generateComponentsCode(baseDir: string, options?: DiscoveryOptions & {
|
|
89
|
-
outputDir?: string;
|
|
90
|
-
}): Promise<string>;
|