@hypen-space/core 0.3.9 → 0.3.11
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/dist/{src/app.js → app.js} +15 -2
- package/dist/{src/app.js.map → app.js.map} +3 -3
- package/dist/{src/components → components}/builtin.js +22 -7
- package/dist/{src/components → components}/builtin.js.map +4 -4
- package/dist/context.js +387 -0
- package/dist/context.js.map +12 -0
- package/dist/{src/discovery.js → discovery.js} +18 -4
- package/dist/{src/discovery.js.map → discovery.js.map} +4 -4
- package/dist/disposable.js +377 -0
- package/dist/disposable.js.map +11 -0
- package/dist/engine.browser.js +347 -0
- package/dist/engine.browser.js.map +11 -0
- package/dist/engine.js +320 -0
- package/dist/engine.js.map +11 -0
- package/dist/events.js +282 -0
- package/dist/events.js.map +11 -0
- package/dist/{src/index.browser.js → index.browser.js} +278 -229
- package/dist/index.browser.js.map +22 -0
- package/dist/{src/index.js → index.js} +1377 -1330
- package/dist/index.js.map +31 -0
- package/dist/loader.js +286 -0
- package/dist/loader.js.map +11 -0
- package/dist/plugin.js +334 -0
- package/dist/plugin.js.map +11 -0
- package/dist/{src/remote → remote}/client.js +215 -11
- package/dist/remote/client.js.map +14 -0
- package/dist/{src/remote → remote}/index.js +234 -210
- package/dist/remote/index.js.map +19 -0
- package/dist/remote/server.js +1442 -0
- package/dist/remote/server.js.map +16 -0
- package/dist/renderer.js +264 -0
- package/dist/renderer.js.map +11 -0
- package/dist/{src/router.js → router.js} +209 -8
- package/dist/router.js.map +12 -0
- package/package.json +69 -69
- package/src/components/builtin.ts +9 -6
- package/src/context.ts +10 -7
- package/src/discovery.ts +3 -2
- package/src/disposable.ts +6 -2
- package/src/engine.browser.ts +30 -11
- package/src/engine.ts +6 -3
- package/src/events.ts +5 -1
- package/src/index.browser.ts +20 -0
- package/src/index.ts +2 -0
- package/src/loader.ts +8 -8
- package/src/logger.ts +28 -0
- package/src/plugin.ts +2 -1
- package/src/remote/client.ts +8 -9
- package/src/remote/server.ts +6 -3
- package/src/renderer.ts +4 -5
- package/src/router.ts +10 -7
- package/wasm-browser/hypen_engine_bg.wasm +0 -0
- package/wasm-browser/package.json +1 -1
- package/wasm-node/hypen_engine_bg.wasm +0 -0
- package/wasm-node/package.json +5 -3
- package/dist/src/context.js +0 -182
- package/dist/src/context.js.map +0 -11
- package/dist/src/engine.browser.js +0 -137
- package/dist/src/engine.browser.js.map +0 -10
- package/dist/src/engine.js +0 -119
- package/dist/src/engine.js.map +0 -10
- package/dist/src/events.js +0 -80
- package/dist/src/events.js.map +0 -10
- package/dist/src/index.browser.js.map +0 -22
- package/dist/src/index.js.map +0 -31
- package/dist/src/loader.js +0 -85
- package/dist/src/loader.js.map +0 -10
- package/dist/src/plugin.js +0 -134
- package/dist/src/plugin.js.map +0 -10
- package/dist/src/remote/client.js.map +0 -13
- package/dist/src/remote/index.js.map +0 -19
- package/dist/src/renderer.js +0 -66
- package/dist/src/renderer.js.map +0 -10
- package/dist/src/router.js.map +0 -11
- /package/dist/{src/remote → remote}/types.js +0 -0
- /package/dist/{src/remote → remote}/types.js.map +0 -0
- /package/dist/{src/resolver.js → resolver.js} +0 -0
- /package/dist/{src/resolver.js.map → resolver.js.map} +0 -0
- /package/dist/{src/state.js → state.js} +0 -0
- /package/dist/{src/state.js.map → state.js.map} +0 -0
|
@@ -10,6 +10,205 @@ var __export = (target, all) => {
|
|
|
10
10
|
};
|
|
11
11
|
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
12
12
|
|
|
13
|
+
// src/logger.ts
|
|
14
|
+
function isProduction() {
|
|
15
|
+
if (typeof process !== "undefined" && process.env) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
function setLogLevel(level) {
|
|
21
|
+
config.level = level;
|
|
22
|
+
}
|
|
23
|
+
function getLogLevel() {
|
|
24
|
+
return config.level;
|
|
25
|
+
}
|
|
26
|
+
function configureLogger(options) {
|
|
27
|
+
config = { ...config, ...options };
|
|
28
|
+
}
|
|
29
|
+
function enableLogging() {
|
|
30
|
+
config.level = "debug";
|
|
31
|
+
}
|
|
32
|
+
function disableLogging() {
|
|
33
|
+
config.level = "none";
|
|
34
|
+
}
|
|
35
|
+
function setDebugMode(enabled) {
|
|
36
|
+
config.level = enabled ? "debug" : "error";
|
|
37
|
+
}
|
|
38
|
+
function isDebugMode() {
|
|
39
|
+
return config.level === "debug";
|
|
40
|
+
}
|
|
41
|
+
function shouldLog(level) {
|
|
42
|
+
return LOG_LEVEL_ORDER[level] >= LOG_LEVEL_ORDER[config.level];
|
|
43
|
+
}
|
|
44
|
+
function formatTag(tag, level) {
|
|
45
|
+
const timestamp = config.timestamps ? `${new Date().toISOString()} ` : "";
|
|
46
|
+
if (config.colors && level !== "none") {
|
|
47
|
+
const color = LOG_LEVEL_COLORS[level];
|
|
48
|
+
return `${timestamp}${color}[${tag}]${RESET_COLOR}`;
|
|
49
|
+
}
|
|
50
|
+
return `${timestamp}[${tag}]`;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
class Logger {
|
|
54
|
+
tag;
|
|
55
|
+
constructor(tag) {
|
|
56
|
+
this.tag = tag;
|
|
57
|
+
}
|
|
58
|
+
debug(...args) {
|
|
59
|
+
if (!shouldLog("debug"))
|
|
60
|
+
return;
|
|
61
|
+
if (config.handler) {
|
|
62
|
+
config.handler.debug(this.tag, ...args);
|
|
63
|
+
} else {
|
|
64
|
+
console.log(formatTag(this.tag, "debug"), ...args);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
info(...args) {
|
|
68
|
+
if (!shouldLog("info"))
|
|
69
|
+
return;
|
|
70
|
+
if (config.handler) {
|
|
71
|
+
config.handler.info(this.tag, ...args);
|
|
72
|
+
} else {
|
|
73
|
+
console.info(formatTag(this.tag, "info"), ...args);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
warn(...args) {
|
|
77
|
+
if (!shouldLog("warn"))
|
|
78
|
+
return;
|
|
79
|
+
if (config.handler) {
|
|
80
|
+
config.handler.warn(this.tag, ...args);
|
|
81
|
+
} else {
|
|
82
|
+
console.warn(formatTag(this.tag, "warn"), ...args);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
error(...args) {
|
|
86
|
+
if (!shouldLog("error"))
|
|
87
|
+
return;
|
|
88
|
+
if (config.handler) {
|
|
89
|
+
config.handler.error(this.tag, ...args);
|
|
90
|
+
} else {
|
|
91
|
+
console.error(formatTag(this.tag, "error"), ...args);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
time(label, fn) {
|
|
95
|
+
if (!shouldLog("debug")) {
|
|
96
|
+
return fn();
|
|
97
|
+
}
|
|
98
|
+
const start = performance.now();
|
|
99
|
+
try {
|
|
100
|
+
return fn();
|
|
101
|
+
} finally {
|
|
102
|
+
const duration = performance.now() - start;
|
|
103
|
+
this.debug(`${label}: ${duration.toFixed(2)}ms`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
async timeAsync(label, fn) {
|
|
107
|
+
if (!shouldLog("debug")) {
|
|
108
|
+
return fn();
|
|
109
|
+
}
|
|
110
|
+
const start = performance.now();
|
|
111
|
+
try {
|
|
112
|
+
return await fn();
|
|
113
|
+
} finally {
|
|
114
|
+
const duration = performance.now() - start;
|
|
115
|
+
this.debug(`${label}: ${duration.toFixed(2)}ms`);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
child(subTag) {
|
|
119
|
+
return new Logger(`${this.tag}:${subTag}`);
|
|
120
|
+
}
|
|
121
|
+
debugIf(condition, ...args) {
|
|
122
|
+
if (condition)
|
|
123
|
+
this.debug(...args);
|
|
124
|
+
}
|
|
125
|
+
warnIf(condition, ...args) {
|
|
126
|
+
if (condition)
|
|
127
|
+
this.warn(...args);
|
|
128
|
+
}
|
|
129
|
+
errorIf(condition, ...args) {
|
|
130
|
+
if (condition)
|
|
131
|
+
this.error(...args);
|
|
132
|
+
}
|
|
133
|
+
loggedOnce = new Set;
|
|
134
|
+
warnOnce(key, ...args) {
|
|
135
|
+
if (this.loggedOnce.has(key))
|
|
136
|
+
return;
|
|
137
|
+
this.loggedOnce.add(key);
|
|
138
|
+
this.warn(...args);
|
|
139
|
+
}
|
|
140
|
+
debugOnce(key, ...args) {
|
|
141
|
+
if (this.loggedOnce.has(key))
|
|
142
|
+
return;
|
|
143
|
+
this.loggedOnce.add(key);
|
|
144
|
+
this.debug(...args);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
function createLogger(tag) {
|
|
148
|
+
return new Logger(tag);
|
|
149
|
+
}
|
|
150
|
+
var LOG_LEVEL_ORDER, LOG_LEVEL_COLORS, RESET_COLOR = "\x1B[0m", config, logger, log, frameworkLoggers;
|
|
151
|
+
var init_logger = __esm(() => {
|
|
152
|
+
LOG_LEVEL_ORDER = {
|
|
153
|
+
debug: 0,
|
|
154
|
+
info: 1,
|
|
155
|
+
warn: 2,
|
|
156
|
+
error: 3,
|
|
157
|
+
none: 4
|
|
158
|
+
};
|
|
159
|
+
LOG_LEVEL_COLORS = {
|
|
160
|
+
debug: "\x1B[36m",
|
|
161
|
+
info: "\x1B[32m",
|
|
162
|
+
warn: "\x1B[33m",
|
|
163
|
+
error: "\x1B[31m"
|
|
164
|
+
};
|
|
165
|
+
config = {
|
|
166
|
+
level: isProduction() ? "error" : "debug",
|
|
167
|
+
colors: true,
|
|
168
|
+
timestamps: false
|
|
169
|
+
};
|
|
170
|
+
logger = createLogger("Hypen");
|
|
171
|
+
log = {
|
|
172
|
+
debug: (tag, ...args) => {
|
|
173
|
+
if (!shouldLog("debug"))
|
|
174
|
+
return;
|
|
175
|
+
console.log(formatTag(tag, "debug"), ...args);
|
|
176
|
+
},
|
|
177
|
+
info: (tag, ...args) => {
|
|
178
|
+
if (!shouldLog("info"))
|
|
179
|
+
return;
|
|
180
|
+
console.info(formatTag(tag, "info"), ...args);
|
|
181
|
+
},
|
|
182
|
+
warn: (tag, ...args) => {
|
|
183
|
+
if (!shouldLog("warn"))
|
|
184
|
+
return;
|
|
185
|
+
console.warn(formatTag(tag, "warn"), ...args);
|
|
186
|
+
},
|
|
187
|
+
error: (tag, ...args) => {
|
|
188
|
+
if (!shouldLog("error"))
|
|
189
|
+
return;
|
|
190
|
+
console.error(formatTag(tag, "error"), ...args);
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
frameworkLoggers = {
|
|
194
|
+
hypen: createLogger("Hypen"),
|
|
195
|
+
engine: createLogger("Engine"),
|
|
196
|
+
router: createLogger("Router"),
|
|
197
|
+
state: createLogger("State"),
|
|
198
|
+
events: createLogger("Events"),
|
|
199
|
+
remote: createLogger("Remote"),
|
|
200
|
+
renderer: createLogger("Renderer"),
|
|
201
|
+
module: createLogger("Module"),
|
|
202
|
+
lifecycle: createLogger("Lifecycle"),
|
|
203
|
+
loader: createLogger("Loader"),
|
|
204
|
+
context: createLogger("Context"),
|
|
205
|
+
discovery: createLogger("Discovery"),
|
|
206
|
+
plugin: createLogger("Plugin"),
|
|
207
|
+
canvas: createLogger("Canvas"),
|
|
208
|
+
debug: createLogger("Debug")
|
|
209
|
+
};
|
|
210
|
+
});
|
|
211
|
+
|
|
13
212
|
// src/state.ts
|
|
14
213
|
function deepClone(obj) {
|
|
15
214
|
if (obj === null || typeof obj !== "object") {
|
|
@@ -396,192 +595,6 @@ var init_result = __esm(() => {
|
|
|
396
595
|
};
|
|
397
596
|
});
|
|
398
597
|
|
|
399
|
-
// src/logger.ts
|
|
400
|
-
function isProduction() {
|
|
401
|
-
if (typeof process !== "undefined" && process.env) {
|
|
402
|
-
return false;
|
|
403
|
-
}
|
|
404
|
-
return false;
|
|
405
|
-
}
|
|
406
|
-
function setLogLevel(level) {
|
|
407
|
-
config.level = level;
|
|
408
|
-
}
|
|
409
|
-
function getLogLevel() {
|
|
410
|
-
return config.level;
|
|
411
|
-
}
|
|
412
|
-
function configureLogger(options) {
|
|
413
|
-
config = { ...config, ...options };
|
|
414
|
-
}
|
|
415
|
-
function enableLogging() {
|
|
416
|
-
config.level = "debug";
|
|
417
|
-
}
|
|
418
|
-
function disableLogging() {
|
|
419
|
-
config.level = "none";
|
|
420
|
-
}
|
|
421
|
-
function shouldLog(level) {
|
|
422
|
-
return LOG_LEVEL_ORDER[level] >= LOG_LEVEL_ORDER[config.level];
|
|
423
|
-
}
|
|
424
|
-
function formatTag(tag, level) {
|
|
425
|
-
const timestamp = config.timestamps ? `${new Date().toISOString()} ` : "";
|
|
426
|
-
if (config.colors && level !== "none") {
|
|
427
|
-
const color = LOG_LEVEL_COLORS[level];
|
|
428
|
-
return `${timestamp}${color}[${tag}]${RESET_COLOR}`;
|
|
429
|
-
}
|
|
430
|
-
return `${timestamp}[${tag}]`;
|
|
431
|
-
}
|
|
432
|
-
|
|
433
|
-
class Logger {
|
|
434
|
-
tag;
|
|
435
|
-
constructor(tag) {
|
|
436
|
-
this.tag = tag;
|
|
437
|
-
}
|
|
438
|
-
debug(...args) {
|
|
439
|
-
if (!shouldLog("debug"))
|
|
440
|
-
return;
|
|
441
|
-
if (config.handler) {
|
|
442
|
-
config.handler.debug(this.tag, ...args);
|
|
443
|
-
} else {
|
|
444
|
-
console.log(formatTag(this.tag, "debug"), ...args);
|
|
445
|
-
}
|
|
446
|
-
}
|
|
447
|
-
info(...args) {
|
|
448
|
-
if (!shouldLog("info"))
|
|
449
|
-
return;
|
|
450
|
-
if (config.handler) {
|
|
451
|
-
config.handler.info(this.tag, ...args);
|
|
452
|
-
} else {
|
|
453
|
-
console.info(formatTag(this.tag, "info"), ...args);
|
|
454
|
-
}
|
|
455
|
-
}
|
|
456
|
-
warn(...args) {
|
|
457
|
-
if (!shouldLog("warn"))
|
|
458
|
-
return;
|
|
459
|
-
if (config.handler) {
|
|
460
|
-
config.handler.warn(this.tag, ...args);
|
|
461
|
-
} else {
|
|
462
|
-
console.warn(formatTag(this.tag, "warn"), ...args);
|
|
463
|
-
}
|
|
464
|
-
}
|
|
465
|
-
error(...args) {
|
|
466
|
-
if (!shouldLog("error"))
|
|
467
|
-
return;
|
|
468
|
-
if (config.handler) {
|
|
469
|
-
config.handler.error(this.tag, ...args);
|
|
470
|
-
} else {
|
|
471
|
-
console.error(formatTag(this.tag, "error"), ...args);
|
|
472
|
-
}
|
|
473
|
-
}
|
|
474
|
-
time(label, fn) {
|
|
475
|
-
if (!shouldLog("debug")) {
|
|
476
|
-
return fn();
|
|
477
|
-
}
|
|
478
|
-
const start = performance.now();
|
|
479
|
-
try {
|
|
480
|
-
return fn();
|
|
481
|
-
} finally {
|
|
482
|
-
const duration = performance.now() - start;
|
|
483
|
-
this.debug(`${label}: ${duration.toFixed(2)}ms`);
|
|
484
|
-
}
|
|
485
|
-
}
|
|
486
|
-
async timeAsync(label, fn) {
|
|
487
|
-
if (!shouldLog("debug")) {
|
|
488
|
-
return fn();
|
|
489
|
-
}
|
|
490
|
-
const start = performance.now();
|
|
491
|
-
try {
|
|
492
|
-
return await fn();
|
|
493
|
-
} finally {
|
|
494
|
-
const duration = performance.now() - start;
|
|
495
|
-
this.debug(`${label}: ${duration.toFixed(2)}ms`);
|
|
496
|
-
}
|
|
497
|
-
}
|
|
498
|
-
child(subTag) {
|
|
499
|
-
return new Logger(`${this.tag}:${subTag}`);
|
|
500
|
-
}
|
|
501
|
-
debugIf(condition, ...args) {
|
|
502
|
-
if (condition)
|
|
503
|
-
this.debug(...args);
|
|
504
|
-
}
|
|
505
|
-
warnIf(condition, ...args) {
|
|
506
|
-
if (condition)
|
|
507
|
-
this.warn(...args);
|
|
508
|
-
}
|
|
509
|
-
errorIf(condition, ...args) {
|
|
510
|
-
if (condition)
|
|
511
|
-
this.error(...args);
|
|
512
|
-
}
|
|
513
|
-
loggedOnce = new Set;
|
|
514
|
-
warnOnce(key, ...args) {
|
|
515
|
-
if (this.loggedOnce.has(key))
|
|
516
|
-
return;
|
|
517
|
-
this.loggedOnce.add(key);
|
|
518
|
-
this.warn(...args);
|
|
519
|
-
}
|
|
520
|
-
debugOnce(key, ...args) {
|
|
521
|
-
if (this.loggedOnce.has(key))
|
|
522
|
-
return;
|
|
523
|
-
this.loggedOnce.add(key);
|
|
524
|
-
this.debug(...args);
|
|
525
|
-
}
|
|
526
|
-
}
|
|
527
|
-
function createLogger(tag) {
|
|
528
|
-
return new Logger(tag);
|
|
529
|
-
}
|
|
530
|
-
var LOG_LEVEL_ORDER, LOG_LEVEL_COLORS, RESET_COLOR = "\x1B[0m", config, logger, log, frameworkLoggers;
|
|
531
|
-
var init_logger = __esm(() => {
|
|
532
|
-
LOG_LEVEL_ORDER = {
|
|
533
|
-
debug: 0,
|
|
534
|
-
info: 1,
|
|
535
|
-
warn: 2,
|
|
536
|
-
error: 3,
|
|
537
|
-
none: 4
|
|
538
|
-
};
|
|
539
|
-
LOG_LEVEL_COLORS = {
|
|
540
|
-
debug: "\x1B[36m",
|
|
541
|
-
info: "\x1B[32m",
|
|
542
|
-
warn: "\x1B[33m",
|
|
543
|
-
error: "\x1B[31m"
|
|
544
|
-
};
|
|
545
|
-
config = {
|
|
546
|
-
level: isProduction() ? "error" : "debug",
|
|
547
|
-
colors: true,
|
|
548
|
-
timestamps: false
|
|
549
|
-
};
|
|
550
|
-
logger = createLogger("Hypen");
|
|
551
|
-
log = {
|
|
552
|
-
debug: (tag, ...args) => {
|
|
553
|
-
if (!shouldLog("debug"))
|
|
554
|
-
return;
|
|
555
|
-
console.log(formatTag(tag, "debug"), ...args);
|
|
556
|
-
},
|
|
557
|
-
info: (tag, ...args) => {
|
|
558
|
-
if (!shouldLog("info"))
|
|
559
|
-
return;
|
|
560
|
-
console.info(formatTag(tag, "info"), ...args);
|
|
561
|
-
},
|
|
562
|
-
warn: (tag, ...args) => {
|
|
563
|
-
if (!shouldLog("warn"))
|
|
564
|
-
return;
|
|
565
|
-
console.warn(formatTag(tag, "warn"), ...args);
|
|
566
|
-
},
|
|
567
|
-
error: (tag, ...args) => {
|
|
568
|
-
if (!shouldLog("error"))
|
|
569
|
-
return;
|
|
570
|
-
console.error(formatTag(tag, "error"), ...args);
|
|
571
|
-
}
|
|
572
|
-
};
|
|
573
|
-
frameworkLoggers = {
|
|
574
|
-
engine: createLogger("Engine"),
|
|
575
|
-
router: createLogger("Router"),
|
|
576
|
-
state: createLogger("State"),
|
|
577
|
-
events: createLogger("Events"),
|
|
578
|
-
remote: createLogger("Remote"),
|
|
579
|
-
renderer: createLogger("Renderer"),
|
|
580
|
-
module: createLogger("Module"),
|
|
581
|
-
lifecycle: createLogger("Lifecycle")
|
|
582
|
-
};
|
|
583
|
-
});
|
|
584
|
-
|
|
585
598
|
// src/app.ts
|
|
586
599
|
var exports_app = {};
|
|
587
600
|
__export(exports_app, {
|
|
@@ -688,9 +701,9 @@ class HypenModuleInstance {
|
|
|
688
701
|
});
|
|
689
702
|
this.engine.setModule(definition.name || "AnonymousModule", definition.actions, definition.stateKeys, getStateSnapshot(this.state));
|
|
690
703
|
for (const [actionName, handler] of definition.handlers.onAction) {
|
|
691
|
-
|
|
704
|
+
log3.debug(`Registering action handler: ${actionName} for module ${definition.name}`);
|
|
692
705
|
this.engine.onAction(actionName, async (action) => {
|
|
693
|
-
|
|
706
|
+
log3.debug(`Action handler fired: ${actionName}`, action);
|
|
694
707
|
const actionCtx = {
|
|
695
708
|
name: action.name,
|
|
696
709
|
payload: action.payload,
|
|
@@ -712,7 +725,7 @@ class HypenModuleInstance {
|
|
|
712
725
|
throw result.error;
|
|
713
726
|
}
|
|
714
727
|
} else {
|
|
715
|
-
|
|
728
|
+
log3.debug(`Action handler completed: ${actionName}`);
|
|
716
729
|
}
|
|
717
730
|
});
|
|
718
731
|
}
|
|
@@ -767,7 +780,7 @@ class HypenModuleInstance {
|
|
|
767
780
|
}
|
|
768
781
|
}
|
|
769
782
|
} catch (handlerError) {
|
|
770
|
-
|
|
783
|
+
log3.error("Error in onError handler:", handlerError);
|
|
771
784
|
}
|
|
772
785
|
}
|
|
773
786
|
if (this.globalContext) {
|
|
@@ -778,7 +791,7 @@ class HypenModuleInstance {
|
|
|
778
791
|
context: eventContext
|
|
779
792
|
});
|
|
780
793
|
}
|
|
781
|
-
|
|
794
|
+
log3.error(`${context.actionName ? `Action "${context.actionName}"` : `Lifecycle "${context.lifecycle}"`} error:`, error);
|
|
782
795
|
return false;
|
|
783
796
|
}
|
|
784
797
|
async callCreatedHandler() {
|
|
@@ -808,16 +821,18 @@ class HypenModuleInstance {
|
|
|
808
821
|
Object.assign(this.state, patch);
|
|
809
822
|
}
|
|
810
823
|
}
|
|
811
|
-
var
|
|
824
|
+
var log3, app;
|
|
812
825
|
var init_app = __esm(() => {
|
|
813
826
|
init_result();
|
|
814
827
|
init_state();
|
|
815
828
|
init_logger();
|
|
816
|
-
|
|
829
|
+
log3 = createLogger("ModuleInstance");
|
|
817
830
|
app = new HypenApp;
|
|
818
831
|
});
|
|
819
832
|
|
|
820
833
|
// src/engine.browser.ts
|
|
834
|
+
init_logger();
|
|
835
|
+
var log2 = frameworkLoggers.engine;
|
|
821
836
|
var wasmInit = null;
|
|
822
837
|
var WasmEngineClass = null;
|
|
823
838
|
function mapToObject(value) {
|
|
@@ -856,7 +871,7 @@ class Engine {
|
|
|
856
871
|
this.wasmEngine = new WasmEngineClass;
|
|
857
872
|
this.initialized = true;
|
|
858
873
|
} catch (error) {
|
|
859
|
-
|
|
874
|
+
log2.error("Failed to initialize WASM engine:", error);
|
|
860
875
|
throw error;
|
|
861
876
|
}
|
|
862
877
|
}
|
|
@@ -892,12 +907,21 @@ class Engine {
|
|
|
892
907
|
const safeState = JSON.parse(JSON.stringify(state));
|
|
893
908
|
engine.renderInto(source, parentNodeId, safeState);
|
|
894
909
|
}
|
|
895
|
-
notifyStateChange(paths,
|
|
910
|
+
notifyStateChange(paths, values) {
|
|
911
|
+
const engine = this.ensureInitialized();
|
|
912
|
+
if (paths.length === 0) {
|
|
913
|
+
return;
|
|
914
|
+
}
|
|
915
|
+
const plainValues = JSON.parse(JSON.stringify(values));
|
|
916
|
+
engine.updateStateSparse(paths, plainValues);
|
|
917
|
+
log2.debug("State changed (sparse):", paths);
|
|
918
|
+
}
|
|
919
|
+
notifyStateChangeFull(paths, currentState) {
|
|
896
920
|
const engine = this.ensureInitialized();
|
|
897
921
|
const plainObject = JSON.parse(JSON.stringify(currentState));
|
|
898
922
|
engine.updateState(plainObject);
|
|
899
923
|
if (paths.length > 0) {
|
|
900
|
-
|
|
924
|
+
log2.debug("State changed (full):", paths);
|
|
901
925
|
}
|
|
902
926
|
}
|
|
903
927
|
updateState(statePatch) {
|
|
@@ -907,7 +931,7 @@ class Engine {
|
|
|
907
931
|
}
|
|
908
932
|
dispatchAction(name, payload) {
|
|
909
933
|
const engine = this.ensureInitialized();
|
|
910
|
-
|
|
934
|
+
log2.debug(`Action dispatched: ${name}`);
|
|
911
935
|
engine.dispatchAction(name, payload ?? null);
|
|
912
936
|
}
|
|
913
937
|
onAction(actionName, handler) {
|
|
@@ -917,7 +941,7 @@ class Engine {
|
|
|
917
941
|
...action,
|
|
918
942
|
payload: action.payload ? mapToObject(action.payload) : action.payload
|
|
919
943
|
};
|
|
920
|
-
Promise.resolve(handler(normalizedAction)).catch(
|
|
944
|
+
Promise.resolve(handler(normalizedAction)).catch((err) => log2.error("Action handler error:", err));
|
|
921
945
|
});
|
|
922
946
|
}
|
|
923
947
|
setModule(name, actions, stateKeys, initialState) {
|
|
@@ -939,6 +963,9 @@ class Engine {
|
|
|
939
963
|
}
|
|
940
964
|
|
|
941
965
|
// src/renderer.ts
|
|
966
|
+
init_logger();
|
|
967
|
+
var log4 = frameworkLoggers.renderer;
|
|
968
|
+
|
|
942
969
|
class BaseRenderer {
|
|
943
970
|
nodes = new Map;
|
|
944
971
|
getNode(id) {
|
|
@@ -979,16 +1006,14 @@ class BaseRenderer {
|
|
|
979
1006
|
|
|
980
1007
|
class ConsoleRenderer {
|
|
981
1008
|
applyPatches(patches) {
|
|
982
|
-
|
|
983
|
-
for (const patch of patches) {
|
|
984
|
-
console.log(patch);
|
|
985
|
-
}
|
|
986
|
-
console.groupEnd();
|
|
1009
|
+
log4.debug("Patches:", patches);
|
|
987
1010
|
}
|
|
988
1011
|
}
|
|
989
1012
|
|
|
990
1013
|
// src/router.ts
|
|
991
1014
|
init_state();
|
|
1015
|
+
init_logger();
|
|
1016
|
+
var log5 = frameworkLoggers.router;
|
|
992
1017
|
|
|
993
1018
|
class HypenRouter {
|
|
994
1019
|
state;
|
|
@@ -1026,7 +1051,7 @@ class HypenRouter {
|
|
|
1026
1051
|
this.updatePath(newPath, false);
|
|
1027
1052
|
});
|
|
1028
1053
|
this.isInitialized = true;
|
|
1029
|
-
|
|
1054
|
+
log5.debug("Router initialized at:", initialPath);
|
|
1030
1055
|
}
|
|
1031
1056
|
getPathFromBrowser() {
|
|
1032
1057
|
if (typeof window === "undefined")
|
|
@@ -1047,21 +1072,21 @@ class HypenRouter {
|
|
|
1047
1072
|
return query;
|
|
1048
1073
|
}
|
|
1049
1074
|
push(path) {
|
|
1050
|
-
|
|
1075
|
+
log5.debug("push:", path);
|
|
1051
1076
|
this.updatePath(path, true);
|
|
1052
1077
|
}
|
|
1053
1078
|
replace(path) {
|
|
1054
|
-
|
|
1079
|
+
log5.debug("replace:", path);
|
|
1055
1080
|
this.updatePath(path, true, true);
|
|
1056
1081
|
}
|
|
1057
1082
|
back() {
|
|
1058
|
-
|
|
1083
|
+
log5.debug("back");
|
|
1059
1084
|
if (typeof window !== "undefined") {
|
|
1060
1085
|
window.history.back();
|
|
1061
1086
|
}
|
|
1062
1087
|
}
|
|
1063
1088
|
forward() {
|
|
1064
|
-
|
|
1089
|
+
log5.debug("forward");
|
|
1065
1090
|
if (typeof window !== "undefined") {
|
|
1066
1091
|
window.history.forward();
|
|
1067
1092
|
}
|
|
@@ -1157,7 +1182,7 @@ class HypenRouter {
|
|
|
1157
1182
|
try {
|
|
1158
1183
|
callback(this.getState());
|
|
1159
1184
|
} catch (error) {
|
|
1160
|
-
|
|
1185
|
+
log5.error("Error in route subscriber:", error);
|
|
1161
1186
|
}
|
|
1162
1187
|
return () => {
|
|
1163
1188
|
this.subscribers.delete(callback);
|
|
@@ -1169,7 +1194,7 @@ class HypenRouter {
|
|
|
1169
1194
|
try {
|
|
1170
1195
|
callback(routeState);
|
|
1171
1196
|
} catch (error) {
|
|
1172
|
-
|
|
1197
|
+
log5.error("Error in route subscriber:", error);
|
|
1173
1198
|
}
|
|
1174
1199
|
});
|
|
1175
1200
|
}
|
|
@@ -1186,6 +1211,9 @@ class HypenRouter {
|
|
|
1186
1211
|
}
|
|
1187
1212
|
|
|
1188
1213
|
// src/events.ts
|
|
1214
|
+
init_logger();
|
|
1215
|
+
var log6 = frameworkLoggers.events;
|
|
1216
|
+
|
|
1189
1217
|
class TypedEventEmitter {
|
|
1190
1218
|
eventBus = new Map;
|
|
1191
1219
|
emit(event, payload) {
|
|
@@ -1197,7 +1225,7 @@ class TypedEventEmitter {
|
|
|
1197
1225
|
try {
|
|
1198
1226
|
handler(payload);
|
|
1199
1227
|
} catch (error) {
|
|
1200
|
-
|
|
1228
|
+
log6.error(`Error in event handler for "${String(event)}":`, error);
|
|
1201
1229
|
}
|
|
1202
1230
|
});
|
|
1203
1231
|
}
|
|
@@ -1249,6 +1277,9 @@ function createEventEmitter() {
|
|
|
1249
1277
|
}
|
|
1250
1278
|
|
|
1251
1279
|
// src/context.ts
|
|
1280
|
+
init_logger();
|
|
1281
|
+
var log7 = frameworkLoggers.context;
|
|
1282
|
+
|
|
1252
1283
|
class HypenGlobalContext {
|
|
1253
1284
|
modules = new Map;
|
|
1254
1285
|
typedEvents;
|
|
@@ -1261,14 +1292,14 @@ class HypenGlobalContext {
|
|
|
1261
1292
|
}
|
|
1262
1293
|
registerModule(id, instance) {
|
|
1263
1294
|
if (this.modules.has(id)) {
|
|
1264
|
-
|
|
1295
|
+
log7.warn(`Module "${id}" is already registered. Overwriting.`);
|
|
1265
1296
|
}
|
|
1266
1297
|
this.modules.set(id, instance);
|
|
1267
|
-
|
|
1298
|
+
log7.debug(`Registered module: ${id}`);
|
|
1268
1299
|
}
|
|
1269
1300
|
unregisterModule(id) {
|
|
1270
1301
|
this.modules.delete(id);
|
|
1271
|
-
|
|
1302
|
+
log7.debug(`Unregistered module: ${id}`);
|
|
1272
1303
|
}
|
|
1273
1304
|
getModule(id) {
|
|
1274
1305
|
const module = this.modules.get(id);
|
|
@@ -1297,14 +1328,14 @@ class HypenGlobalContext {
|
|
|
1297
1328
|
emit(event, payload) {
|
|
1298
1329
|
const handlers = this.legacyEventBus.get(event);
|
|
1299
1330
|
if (!handlers || handlers.size === 0) {
|
|
1300
|
-
|
|
1331
|
+
log7.debug(`Event "${event}" emitted but no listeners`);
|
|
1301
1332
|
} else {
|
|
1302
|
-
|
|
1333
|
+
log7.debug(`Emitting event: ${event}`, payload);
|
|
1303
1334
|
handlers.forEach((handler) => {
|
|
1304
1335
|
try {
|
|
1305
1336
|
handler(payload);
|
|
1306
1337
|
} catch (error) {
|
|
1307
|
-
|
|
1338
|
+
log7.error(`Error in event handler for "${event}":`, error);
|
|
1308
1339
|
}
|
|
1309
1340
|
});
|
|
1310
1341
|
}
|
|
@@ -1318,7 +1349,7 @@ class HypenGlobalContext {
|
|
|
1318
1349
|
}
|
|
1319
1350
|
const handlers = this.legacyEventBus.get(event);
|
|
1320
1351
|
handlers.add(handler);
|
|
1321
|
-
|
|
1352
|
+
log7.debug(`Listening to event: ${event}`);
|
|
1322
1353
|
return () => {
|
|
1323
1354
|
handlers.delete(handler);
|
|
1324
1355
|
if (handlers.size === 0) {
|
|
@@ -1351,10 +1382,9 @@ class HypenGlobalContext {
|
|
|
1351
1382
|
}
|
|
1352
1383
|
}
|
|
1353
1384
|
|
|
1354
|
-
// src/remote/client.ts
|
|
1355
|
-
init_result();
|
|
1356
|
-
|
|
1357
1385
|
// src/disposable.ts
|
|
1386
|
+
init_logger();
|
|
1387
|
+
var log8 = frameworkLoggers.lifecycle;
|
|
1358
1388
|
function isDisposable(obj) {
|
|
1359
1389
|
return obj !== null && typeof obj === "object" && "dispose" in obj && typeof obj.dispose === "function";
|
|
1360
1390
|
}
|
|
@@ -1386,7 +1416,7 @@ class DisposableStack {
|
|
|
1386
1416
|
try {
|
|
1387
1417
|
item.dispose();
|
|
1388
1418
|
} catch (error) {
|
|
1389
|
-
|
|
1419
|
+
log8.error("Error during dispose:", error);
|
|
1390
1420
|
}
|
|
1391
1421
|
}
|
|
1392
1422
|
}
|
|
@@ -1477,7 +1507,7 @@ function compositeDisposable(...disposables) {
|
|
|
1477
1507
|
try {
|
|
1478
1508
|
d.dispose();
|
|
1479
1509
|
} catch (error) {
|
|
1480
|
-
|
|
1510
|
+
log8.error("Error during dispose:", error);
|
|
1481
1511
|
}
|
|
1482
1512
|
}
|
|
1483
1513
|
}
|
|
@@ -1500,6 +1530,9 @@ function usingSync(resource, fn) {
|
|
|
1500
1530
|
}
|
|
1501
1531
|
}
|
|
1502
1532
|
|
|
1533
|
+
// src/remote/client.ts
|
|
1534
|
+
init_result();
|
|
1535
|
+
|
|
1503
1536
|
// src/retry.ts
|
|
1504
1537
|
init_result();
|
|
1505
1538
|
var DEFAULT_OPTIONS = {
|
|
@@ -1627,6 +1660,9 @@ var RetryPresets = {
|
|
|
1627
1660
|
};
|
|
1628
1661
|
|
|
1629
1662
|
// src/remote/client.ts
|
|
1663
|
+
init_logger();
|
|
1664
|
+
var log9 = frameworkLoggers.remote;
|
|
1665
|
+
|
|
1630
1666
|
class RemoteEngine {
|
|
1631
1667
|
ws = null;
|
|
1632
1668
|
url;
|
|
@@ -1733,7 +1769,7 @@ class RemoteEngine {
|
|
|
1733
1769
|
}
|
|
1734
1770
|
dispatchAction(action, payload) {
|
|
1735
1771
|
if (this.state !== "connected" || !this.ws) {
|
|
1736
|
-
|
|
1772
|
+
log9.warn("Cannot dispatch action: not connected");
|
|
1737
1773
|
return;
|
|
1738
1774
|
}
|
|
1739
1775
|
const message = {
|
|
@@ -1806,7 +1842,7 @@ class RemoteEngine {
|
|
|
1806
1842
|
break;
|
|
1807
1843
|
}
|
|
1808
1844
|
} catch (e) {
|
|
1809
|
-
|
|
1845
|
+
log9.error("Error handling remote message:", e);
|
|
1810
1846
|
const error = e instanceof Error ? e : new Error(String(e));
|
|
1811
1847
|
this.errorCallbacks.forEach((cb) => cb(error));
|
|
1812
1848
|
}
|
|
@@ -1835,7 +1871,7 @@ class RemoteEngine {
|
|
|
1835
1871
|
}
|
|
1836
1872
|
handlePatch(message) {
|
|
1837
1873
|
if (message.revision <= this.currentRevision) {
|
|
1838
|
-
|
|
1874
|
+
log9.warn(`Out of order patch: expected > ${this.currentRevision}, got ${message.revision}`);
|
|
1839
1875
|
return;
|
|
1840
1876
|
}
|
|
1841
1877
|
this.currentRevision = message.revision;
|
|
@@ -1861,10 +1897,10 @@ class RemoteEngine {
|
|
|
1861
1897
|
maxDelayMs: 30000,
|
|
1862
1898
|
jitter: 0.1,
|
|
1863
1899
|
onRetry: (attempt, error) => {
|
|
1864
|
-
|
|
1900
|
+
log9.debug(`Reconnection attempt ${attempt}/${this.options.maxReconnectAttempts} failed: ${error.message}`);
|
|
1865
1901
|
}
|
|
1866
1902
|
}).catch((error) => {
|
|
1867
|
-
|
|
1903
|
+
log9.error("Max reconnection attempts reached:", error.message);
|
|
1868
1904
|
this.errorCallbacks.forEach((cb) => cb(new ConnectionError(this.url, error, this.options.maxReconnectAttempts)));
|
|
1869
1905
|
});
|
|
1870
1906
|
}, this.options.reconnectInterval);
|
|
@@ -1874,21 +1910,34 @@ class RemoteEngine {
|
|
|
1874
1910
|
// src/index.browser.ts
|
|
1875
1911
|
init_app();
|
|
1876
1912
|
init_state();
|
|
1913
|
+
init_logger();
|
|
1877
1914
|
export {
|
|
1915
|
+
setLogLevel,
|
|
1916
|
+
setDebugMode,
|
|
1917
|
+
logger,
|
|
1918
|
+
log,
|
|
1919
|
+
isDebugMode,
|
|
1878
1920
|
getStateSnapshot,
|
|
1921
|
+
getLogLevel,
|
|
1879
1922
|
getElementDisposables,
|
|
1923
|
+
frameworkLoggers,
|
|
1924
|
+
enableLogging,
|
|
1880
1925
|
disposableWebSocket,
|
|
1881
1926
|
disposableTimeout,
|
|
1882
1927
|
disposableSubscription,
|
|
1883
1928
|
disposableListener,
|
|
1884
1929
|
disposableInterval,
|
|
1885
1930
|
disposableAbortController,
|
|
1931
|
+
disableLogging,
|
|
1886
1932
|
createObservableState,
|
|
1933
|
+
createLogger,
|
|
1887
1934
|
createEventEmitter,
|
|
1935
|
+
configureLogger,
|
|
1888
1936
|
batchStateUpdates,
|
|
1889
1937
|
app,
|
|
1890
1938
|
TypedEventEmitter,
|
|
1891
1939
|
RemoteEngine,
|
|
1940
|
+
Logger,
|
|
1892
1941
|
HypenRouter,
|
|
1893
1942
|
HypenModuleInstance,
|
|
1894
1943
|
HypenGlobalContext,
|
|
@@ -1900,4 +1949,4 @@ export {
|
|
|
1900
1949
|
BaseRenderer
|
|
1901
1950
|
};
|
|
1902
1951
|
|
|
1903
|
-
//# debugId=
|
|
1952
|
+
//# debugId=9618BA73380775CC64756E2164756E21
|