@almadar/ui 2.46.0 → 2.47.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/dist/avl/index.cjs +103 -7
- package/dist/avl/index.js +102 -7
- package/dist/components/atoms/Box.d.ts +4 -0
- package/dist/components/index.cjs +85 -11
- package/dist/components/index.js +84 -11
- package/dist/components/organisms/game/three/index.cjs +67 -0
- package/dist/components/organisms/game/three/index.js +66 -0
- package/dist/docs/index.cjs +67 -0
- package/dist/docs/index.d.cts +4 -0
- package/dist/docs/index.js +66 -0
- package/dist/hooks/index.cjs +72 -7
- package/dist/hooks/index.js +71 -7
- package/dist/lib/index.cjs +68 -0
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.js +66 -1
- package/dist/lib/logger.d.ts +16 -0
- package/dist/marketing/index.cjs +67 -0
- package/dist/marketing/index.d.cts +4 -0
- package/dist/marketing/index.js +66 -0
- package/dist/providers/index.cjs +86 -2
- package/dist/providers/index.js +85 -2
- package/dist/runtime/index.cjs +91 -5
- package/dist/runtime/index.js +90 -5
- package/package.json +1 -1
package/dist/providers/index.cjs
CHANGED
|
@@ -38,6 +38,7 @@ var langToml = require('react-syntax-highlighter/dist/esm/languages/prism/toml')
|
|
|
38
38
|
var langGo = require('react-syntax-highlighter/dist/esm/languages/prism/go');
|
|
39
39
|
var langGraphql = require('react-syntax-highlighter/dist/esm/languages/prism/graphql');
|
|
40
40
|
|
|
41
|
+
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
41
42
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
42
43
|
|
|
43
44
|
function _interopNamespace(e) {
|
|
@@ -317,6 +318,64 @@ var ThemeProvider = ({
|
|
|
317
318
|
);
|
|
318
319
|
return /* @__PURE__ */ jsxRuntime.jsx(ThemeContext.Provider, { value: contextValue2, children });
|
|
319
320
|
};
|
|
321
|
+
|
|
322
|
+
// lib/logger.ts
|
|
323
|
+
var LEVEL_PRIORITY = { DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3 };
|
|
324
|
+
var ENV = typeof process !== "undefined" && process.env ? process.env : {};
|
|
325
|
+
var VITE_ENV = typeof globalThis !== "undefined" && globalThis.__vite_env__ ? globalThis.__vite_env__ : {};
|
|
326
|
+
function getViteEnv(key) {
|
|
327
|
+
try {
|
|
328
|
+
const meta = ({ url: (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href)) });
|
|
329
|
+
return meta?.env?.[key];
|
|
330
|
+
} catch {
|
|
331
|
+
return void 0;
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
function envGet(key, viteKey) {
|
|
335
|
+
return ENV[key] ?? (viteKey ? getViteEnv(viteKey) : void 0) ?? VITE_ENV[viteKey ?? key];
|
|
336
|
+
}
|
|
337
|
+
var NODE_ENV = envGet("NODE_ENV", "VITE_NODE_ENV") ?? "development";
|
|
338
|
+
var CONFIGURED_LEVEL = (envGet("LOG_LEVEL", "VITE_LOG_LEVEL") ?? (NODE_ENV === "production" ? "info" : "debug")).toUpperCase();
|
|
339
|
+
var MIN_PRIORITY = LEVEL_PRIORITY[CONFIGURED_LEVEL] ?? 0;
|
|
340
|
+
var DEBUG_FILTER = (envGet("ALMADAR_DEBUG", "VITE_ALMADAR_DEBUG") ?? "").split(",").map((s) => s.trim()).filter(Boolean);
|
|
341
|
+
function matchesNamespace(namespace) {
|
|
342
|
+
if (DEBUG_FILTER.length === 0) return true;
|
|
343
|
+
return DEBUG_FILTER.some((pattern) => {
|
|
344
|
+
if (pattern === "*" || pattern === "almadar:*") return true;
|
|
345
|
+
if (pattern.endsWith(":*")) return namespace.startsWith(pattern.slice(0, -1));
|
|
346
|
+
return namespace === pattern;
|
|
347
|
+
});
|
|
348
|
+
}
|
|
349
|
+
function createLogger(namespace) {
|
|
350
|
+
const nsAllowed = matchesNamespace(namespace);
|
|
351
|
+
const log4 = (level, message, data, correlationId) => {
|
|
352
|
+
if (LEVEL_PRIORITY[level] < MIN_PRIORITY) return;
|
|
353
|
+
if (level === "DEBUG" && !nsAllowed) return;
|
|
354
|
+
const prefix = `[${namespace}]`;
|
|
355
|
+
const logData = correlationId ? { ...data, cid: correlationId } : data;
|
|
356
|
+
switch (level) {
|
|
357
|
+
case "DEBUG":
|
|
358
|
+
console.debug(prefix, message, logData ?? "");
|
|
359
|
+
break;
|
|
360
|
+
case "INFO":
|
|
361
|
+
console.info(prefix, message, logData ?? "");
|
|
362
|
+
break;
|
|
363
|
+
case "WARN":
|
|
364
|
+
console.warn(prefix, message, logData ?? "");
|
|
365
|
+
break;
|
|
366
|
+
case "ERROR":
|
|
367
|
+
console.error(prefix, message, logData ?? "");
|
|
368
|
+
break;
|
|
369
|
+
}
|
|
370
|
+
};
|
|
371
|
+
return {
|
|
372
|
+
debug: (msg, data, cid) => log4("DEBUG", msg, data, cid),
|
|
373
|
+
info: (msg, data, cid) => log4("INFO", msg, data, cid),
|
|
374
|
+
warn: (msg, data, cid) => log4("WARN", msg, data, cid),
|
|
375
|
+
error: (msg, data, cid) => log4("ERROR", msg, data, cid)
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
var storeLog = createLogger("almadar:entity:store");
|
|
320
379
|
var store = /* @__PURE__ */ new Map();
|
|
321
380
|
var storeListeners = /* @__PURE__ */ new Set();
|
|
322
381
|
var watchCallbacks = /* @__PURE__ */ new Map();
|
|
@@ -356,7 +415,9 @@ function setAll(entityType, records) {
|
|
|
356
415
|
}
|
|
357
416
|
}
|
|
358
417
|
const prev = store.get(entityType);
|
|
359
|
-
|
|
418
|
+
const newVersion = (prev?.version ?? 0) + 1;
|
|
419
|
+
store.set(entityType, { entities, ids, version: newVersion });
|
|
420
|
+
storeLog.debug("setAll", { entityType, recordCount: records.length, version: newVersion });
|
|
360
421
|
notifyListeners(entityType, prev);
|
|
361
422
|
}
|
|
362
423
|
function upsertOne(entityType, record) {
|
|
@@ -368,6 +429,7 @@ function upsertOne(entityType, record) {
|
|
|
368
429
|
if (!snapshot.ids.includes(id)) snapshot.ids.push(id);
|
|
369
430
|
snapshot.version++;
|
|
370
431
|
store.set(entityType, snapshot);
|
|
432
|
+
storeLog.debug("upsertOne", { entityType, id, version: snapshot.version });
|
|
371
433
|
notifyListeners(entityType, prev);
|
|
372
434
|
}
|
|
373
435
|
function addOne(entityType, record) {
|
|
@@ -384,6 +446,7 @@ function updateOne(entityType, id, changes) {
|
|
|
384
446
|
snapshot.entities.set(id, { ...snapshot.entities.get(id), ...changes });
|
|
385
447
|
snapshot.version++;
|
|
386
448
|
store.set(entityType, snapshot);
|
|
449
|
+
storeLog.debug("updateOne", { entityType, id, changedFields: Object.keys(changes), version: snapshot.version });
|
|
387
450
|
notifyListeners(entityType, prev);
|
|
388
451
|
}
|
|
389
452
|
function removeOne(entityType, id) {
|
|
@@ -397,6 +460,7 @@ function removeOne(entityType, id) {
|
|
|
397
460
|
snapshot.entities.delete(id);
|
|
398
461
|
snapshot.version++;
|
|
399
462
|
store.set(entityType, snapshot);
|
|
463
|
+
storeLog.debug("removeOne", { entityType, id, remainingCount: snapshot.ids.length, version: snapshot.version });
|
|
400
464
|
notifyListeners(entityType, prev);
|
|
401
465
|
}
|
|
402
466
|
function getSnapshot(entityType) {
|
|
@@ -479,6 +543,8 @@ function useEntityStore() {
|
|
|
479
543
|
function EntityStoreProvider({ children }) {
|
|
480
544
|
return /* @__PURE__ */ jsxRuntime.jsx(EntityStoreContext.Provider, { value: contextValue, children });
|
|
481
545
|
}
|
|
546
|
+
var log = createLogger("almadar:eventbus");
|
|
547
|
+
var subLog = createLogger("almadar:eventbus:subscribe");
|
|
482
548
|
function setGlobalEventBus(bus) {
|
|
483
549
|
if (typeof window !== "undefined") {
|
|
484
550
|
window.__kflowEventBus = bus;
|
|
@@ -500,6 +566,7 @@ var fallbackEventBus = {
|
|
|
500
566
|
timestamp: Date.now()
|
|
501
567
|
};
|
|
502
568
|
const handlers = fallbackListeners.get(type);
|
|
569
|
+
log.debug("emit", { type, payloadKeys: payload ? Object.keys(payload).length : 0, listenerCount: (handlers?.size ?? 0) + fallbackAnyListeners.size });
|
|
503
570
|
if (handlers) {
|
|
504
571
|
handlers.forEach((handler) => {
|
|
505
572
|
try {
|
|
@@ -522,6 +589,7 @@ var fallbackEventBus = {
|
|
|
522
589
|
fallbackListeners.set(type, /* @__PURE__ */ new Set());
|
|
523
590
|
}
|
|
524
591
|
fallbackListeners.get(type).add(listener);
|
|
592
|
+
subLog.debug("subscribe", { type, totalListeners: fallbackListeners.get(type).size });
|
|
525
593
|
return () => {
|
|
526
594
|
const handlers = fallbackListeners.get(type);
|
|
527
595
|
if (handlers) {
|
|
@@ -545,6 +613,7 @@ var fallbackEventBus = {
|
|
|
545
613
|
},
|
|
546
614
|
onAny: (listener) => {
|
|
547
615
|
fallbackAnyListeners.add(listener);
|
|
616
|
+
subLog.debug("subscribe:any", { totalAnyListeners: fallbackAnyListeners.size });
|
|
548
617
|
return () => {
|
|
549
618
|
fallbackAnyListeners.delete(listener);
|
|
550
619
|
};
|
|
@@ -554,6 +623,8 @@ function useEventBus() {
|
|
|
554
623
|
const context = React114.useContext(providers.EventBusContext);
|
|
555
624
|
return context ?? getGlobalEventBus() ?? fallbackEventBus;
|
|
556
625
|
}
|
|
626
|
+
var busLog = createLogger("almadar:eventbus");
|
|
627
|
+
var subLog2 = createLogger("almadar:eventbus:subscribe");
|
|
557
628
|
var EventBusContext2 = React114.createContext(null);
|
|
558
629
|
function EventBusProvider({ children, debug: debug2 = false }) {
|
|
559
630
|
const listenersRef = React114.useRef(/* @__PURE__ */ new Map());
|
|
@@ -583,7 +654,8 @@ function EventBusProvider({ children, debug: debug2 = false }) {
|
|
|
583
654
|
timestamp: Date.now()
|
|
584
655
|
};
|
|
585
656
|
const listeners6 = listenersRef.current.get(type);
|
|
586
|
-
const listenerCount = listeners6?.size ?? 0;
|
|
657
|
+
const listenerCount = (listeners6?.size ?? 0) + anyListenersRef.current.size;
|
|
658
|
+
busLog.debug("emit", { type, payloadKeys: payload ? Object.keys(payload).length : 0, listenerCount });
|
|
587
659
|
if (debug2) {
|
|
588
660
|
if (listenerCount > 0) {
|
|
589
661
|
console.log(`[EventBus] Emit: ${type} \u2192 ${listenerCount} listener(s)`, payload);
|
|
@@ -616,6 +688,7 @@ function EventBusProvider({ children, debug: debug2 = false }) {
|
|
|
616
688
|
}
|
|
617
689
|
const listeners6 = listenersRef.current.get(type);
|
|
618
690
|
listeners6.add(listener);
|
|
691
|
+
subLog2.debug("subscribe", { type, totalListeners: listeners6.size });
|
|
619
692
|
if (debug2) {
|
|
620
693
|
console.log(`[EventBus] Subscribed to '${type}', total: ${listeners6.size}`);
|
|
621
694
|
}
|
|
@@ -642,6 +715,7 @@ function EventBusProvider({ children, debug: debug2 = false }) {
|
|
|
642
715
|
}, []);
|
|
643
716
|
const onAny = React114.useCallback((listener) => {
|
|
644
717
|
anyListenersRef.current.add(listener);
|
|
718
|
+
subLog2.debug("subscribe:any", { totalAnyListeners: anyListenersRef.current.size });
|
|
645
719
|
if (debug2) {
|
|
646
720
|
console.log(`[EventBus] onAny subscribed, total: ${anyListenersRef.current.size}`);
|
|
647
721
|
}
|
|
@@ -923,6 +997,7 @@ var Box = React114__namespace.default.forwardRef(
|
|
|
923
997
|
action,
|
|
924
998
|
actionPayload,
|
|
925
999
|
hoverEvent,
|
|
1000
|
+
maxWidth,
|
|
926
1001
|
onClick,
|
|
927
1002
|
onMouseEnter,
|
|
928
1003
|
onMouseLeave,
|
|
@@ -987,6 +1062,7 @@ var Box = React114__namespace.default.forwardRef(
|
|
|
987
1062
|
onClick: isClickable ? handleClick : void 0,
|
|
988
1063
|
onMouseEnter: hoverEvent || onMouseEnter ? handleMouseEnter : void 0,
|
|
989
1064
|
onMouseLeave: hoverEvent || onMouseLeave ? handleMouseLeave : void 0,
|
|
1065
|
+
style: maxWidth ? { maxWidth, ...rest.style } : rest.style,
|
|
990
1066
|
...rest,
|
|
991
1067
|
children
|
|
992
1068
|
}
|
|
@@ -3124,6 +3200,7 @@ var defaultIcon = L__default.default.icon({
|
|
|
3124
3200
|
L__default.default.Marker.prototype.options.icon = defaultIcon;
|
|
3125
3201
|
|
|
3126
3202
|
// lib/verificationRegistry.ts
|
|
3203
|
+
var log2 = createLogger("almadar:bridge");
|
|
3127
3204
|
var MAX_TRANSITIONS = 500;
|
|
3128
3205
|
function getState() {
|
|
3129
3206
|
if (typeof window !== "undefined") {
|
|
@@ -3156,6 +3233,7 @@ function recordTransition(trace) {
|
|
|
3156
3233
|
...trace,
|
|
3157
3234
|
id: `t-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`
|
|
3158
3235
|
};
|
|
3236
|
+
log2.info("transition:recorded", { trait: trace.traitName, from: trace.from, to: trace.to, event: trace.event, effectCount: trace.effects.length });
|
|
3159
3237
|
getState().transitions.push(entry);
|
|
3160
3238
|
if (getState().transitions.length > MAX_TRANSITIONS) {
|
|
3161
3239
|
getState().transitions.shift();
|
|
@@ -3257,10 +3335,12 @@ function waitForTransition(event, timeoutMs = 1e4) {
|
|
|
3257
3335
|
}
|
|
3258
3336
|
function bindEventBus(eventBus) {
|
|
3259
3337
|
if (typeof window === "undefined") return;
|
|
3338
|
+
log2.info("bindEventBus", { hasOnAny: !!eventBus.onAny });
|
|
3260
3339
|
exposeOnWindow();
|
|
3261
3340
|
if (window.__orbitalVerification) {
|
|
3262
3341
|
window.__orbitalVerification.sendEvent = (event, payload) => {
|
|
3263
3342
|
const prefixed = event.startsWith("UI:") ? event : `UI:${event}`;
|
|
3343
|
+
log2.debug("sendEvent", { event: prefixed, payloadKeys: payload ? Object.keys(payload) : [] });
|
|
3264
3344
|
eventBus.emit(prefixed, payload);
|
|
3265
3345
|
};
|
|
3266
3346
|
const eventLog = [];
|
|
@@ -3721,6 +3801,7 @@ function SuspenseConfigProvider({
|
|
|
3721
3801
|
);
|
|
3722
3802
|
}
|
|
3723
3803
|
SuspenseConfigProvider.displayName = "SuspenseConfigProvider";
|
|
3804
|
+
var log3 = createLogger("almadar:verify");
|
|
3724
3805
|
var DISPATCH_SUFFIX = ":DISPATCH";
|
|
3725
3806
|
var SUCCESS_SUFFIX = ":SUCCESS";
|
|
3726
3807
|
var ERROR_SUFFIX = ":ERROR";
|
|
@@ -3766,6 +3847,7 @@ function VerificationProvider({
|
|
|
3766
3847
|
const unsub = eventBus.onAny((evt) => {
|
|
3767
3848
|
const parsed = parseLifecycleEvent(evt.type);
|
|
3768
3849
|
if (!parsed) return;
|
|
3850
|
+
log3.debug("lifecycle:event", { kind: parsed.kind, traitName: parsed.traitName, event: parsed.event, type: evt.type });
|
|
3769
3851
|
const payload = evt.payload ?? {};
|
|
3770
3852
|
if (parsed.kind === "dispatch") {
|
|
3771
3853
|
const key = `${parsed.traitName}:${String(payload["event"] ?? "")}`;
|
|
@@ -3818,6 +3900,7 @@ function VerificationProvider({
|
|
|
3818
3900
|
},
|
|
3819
3901
|
timestamp: Date.now()
|
|
3820
3902
|
});
|
|
3903
|
+
log3.info("transition:success", { trait: parsed.traitName, event: parsed.event, from: pending?.from, to: newState, effectCount: effects.length });
|
|
3821
3904
|
} else if (parsed.kind === "error" && parsed.event) {
|
|
3822
3905
|
const key = `${parsed.traitName}:${parsed.event}`;
|
|
3823
3906
|
const pending = pendingRef.current.get(key);
|
|
@@ -3847,6 +3930,7 @@ function VerificationProvider({
|
|
|
3847
3930
|
},
|
|
3848
3931
|
timestamp: Date.now()
|
|
3849
3932
|
});
|
|
3933
|
+
log3.warn("transition:error", { trait: parsed.traitName, event: parsed.event, from: fromState, error: errorMsg });
|
|
3850
3934
|
}
|
|
3851
3935
|
});
|
|
3852
3936
|
registerCheck(
|
package/dist/providers/index.js
CHANGED
|
@@ -271,6 +271,64 @@ var ThemeProvider = ({
|
|
|
271
271
|
);
|
|
272
272
|
return /* @__PURE__ */ jsx(ThemeContext.Provider, { value: contextValue2, children });
|
|
273
273
|
};
|
|
274
|
+
|
|
275
|
+
// lib/logger.ts
|
|
276
|
+
var LEVEL_PRIORITY = { DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3 };
|
|
277
|
+
var ENV = typeof process !== "undefined" && process.env ? process.env : {};
|
|
278
|
+
var VITE_ENV = typeof globalThis !== "undefined" && globalThis.__vite_env__ ? globalThis.__vite_env__ : {};
|
|
279
|
+
function getViteEnv(key) {
|
|
280
|
+
try {
|
|
281
|
+
const meta = import.meta;
|
|
282
|
+
return meta?.env?.[key];
|
|
283
|
+
} catch {
|
|
284
|
+
return void 0;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
function envGet(key, viteKey) {
|
|
288
|
+
return ENV[key] ?? (viteKey ? getViteEnv(viteKey) : void 0) ?? VITE_ENV[viteKey ?? key];
|
|
289
|
+
}
|
|
290
|
+
var NODE_ENV = envGet("NODE_ENV", "VITE_NODE_ENV") ?? "development";
|
|
291
|
+
var CONFIGURED_LEVEL = (envGet("LOG_LEVEL", "VITE_LOG_LEVEL") ?? (NODE_ENV === "production" ? "info" : "debug")).toUpperCase();
|
|
292
|
+
var MIN_PRIORITY = LEVEL_PRIORITY[CONFIGURED_LEVEL] ?? 0;
|
|
293
|
+
var DEBUG_FILTER = (envGet("ALMADAR_DEBUG", "VITE_ALMADAR_DEBUG") ?? "").split(",").map((s) => s.trim()).filter(Boolean);
|
|
294
|
+
function matchesNamespace(namespace) {
|
|
295
|
+
if (DEBUG_FILTER.length === 0) return true;
|
|
296
|
+
return DEBUG_FILTER.some((pattern) => {
|
|
297
|
+
if (pattern === "*" || pattern === "almadar:*") return true;
|
|
298
|
+
if (pattern.endsWith(":*")) return namespace.startsWith(pattern.slice(0, -1));
|
|
299
|
+
return namespace === pattern;
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
function createLogger(namespace) {
|
|
303
|
+
const nsAllowed = matchesNamespace(namespace);
|
|
304
|
+
const log4 = (level, message, data, correlationId) => {
|
|
305
|
+
if (LEVEL_PRIORITY[level] < MIN_PRIORITY) return;
|
|
306
|
+
if (level === "DEBUG" && !nsAllowed) return;
|
|
307
|
+
const prefix = `[${namespace}]`;
|
|
308
|
+
const logData = correlationId ? { ...data, cid: correlationId } : data;
|
|
309
|
+
switch (level) {
|
|
310
|
+
case "DEBUG":
|
|
311
|
+
console.debug(prefix, message, logData ?? "");
|
|
312
|
+
break;
|
|
313
|
+
case "INFO":
|
|
314
|
+
console.info(prefix, message, logData ?? "");
|
|
315
|
+
break;
|
|
316
|
+
case "WARN":
|
|
317
|
+
console.warn(prefix, message, logData ?? "");
|
|
318
|
+
break;
|
|
319
|
+
case "ERROR":
|
|
320
|
+
console.error(prefix, message, logData ?? "");
|
|
321
|
+
break;
|
|
322
|
+
}
|
|
323
|
+
};
|
|
324
|
+
return {
|
|
325
|
+
debug: (msg, data, cid) => log4("DEBUG", msg, data, cid),
|
|
326
|
+
info: (msg, data, cid) => log4("INFO", msg, data, cid),
|
|
327
|
+
warn: (msg, data, cid) => log4("WARN", msg, data, cid),
|
|
328
|
+
error: (msg, data, cid) => log4("ERROR", msg, data, cid)
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
var storeLog = createLogger("almadar:entity:store");
|
|
274
332
|
var store = /* @__PURE__ */ new Map();
|
|
275
333
|
var storeListeners = /* @__PURE__ */ new Set();
|
|
276
334
|
var watchCallbacks = /* @__PURE__ */ new Map();
|
|
@@ -310,7 +368,9 @@ function setAll(entityType, records) {
|
|
|
310
368
|
}
|
|
311
369
|
}
|
|
312
370
|
const prev = store.get(entityType);
|
|
313
|
-
|
|
371
|
+
const newVersion = (prev?.version ?? 0) + 1;
|
|
372
|
+
store.set(entityType, { entities, ids, version: newVersion });
|
|
373
|
+
storeLog.debug("setAll", { entityType, recordCount: records.length, version: newVersion });
|
|
314
374
|
notifyListeners(entityType, prev);
|
|
315
375
|
}
|
|
316
376
|
function upsertOne(entityType, record) {
|
|
@@ -322,6 +382,7 @@ function upsertOne(entityType, record) {
|
|
|
322
382
|
if (!snapshot.ids.includes(id)) snapshot.ids.push(id);
|
|
323
383
|
snapshot.version++;
|
|
324
384
|
store.set(entityType, snapshot);
|
|
385
|
+
storeLog.debug("upsertOne", { entityType, id, version: snapshot.version });
|
|
325
386
|
notifyListeners(entityType, prev);
|
|
326
387
|
}
|
|
327
388
|
function addOne(entityType, record) {
|
|
@@ -338,6 +399,7 @@ function updateOne(entityType, id, changes) {
|
|
|
338
399
|
snapshot.entities.set(id, { ...snapshot.entities.get(id), ...changes });
|
|
339
400
|
snapshot.version++;
|
|
340
401
|
store.set(entityType, snapshot);
|
|
402
|
+
storeLog.debug("updateOne", { entityType, id, changedFields: Object.keys(changes), version: snapshot.version });
|
|
341
403
|
notifyListeners(entityType, prev);
|
|
342
404
|
}
|
|
343
405
|
function removeOne(entityType, id) {
|
|
@@ -351,6 +413,7 @@ function removeOne(entityType, id) {
|
|
|
351
413
|
snapshot.entities.delete(id);
|
|
352
414
|
snapshot.version++;
|
|
353
415
|
store.set(entityType, snapshot);
|
|
416
|
+
storeLog.debug("removeOne", { entityType, id, remainingCount: snapshot.ids.length, version: snapshot.version });
|
|
354
417
|
notifyListeners(entityType, prev);
|
|
355
418
|
}
|
|
356
419
|
function getSnapshot(entityType) {
|
|
@@ -433,6 +496,8 @@ function useEntityStore() {
|
|
|
433
496
|
function EntityStoreProvider({ children }) {
|
|
434
497
|
return /* @__PURE__ */ jsx(EntityStoreContext.Provider, { value: contextValue, children });
|
|
435
498
|
}
|
|
499
|
+
var log = createLogger("almadar:eventbus");
|
|
500
|
+
var subLog = createLogger("almadar:eventbus:subscribe");
|
|
436
501
|
function setGlobalEventBus(bus) {
|
|
437
502
|
if (typeof window !== "undefined") {
|
|
438
503
|
window.__kflowEventBus = bus;
|
|
@@ -454,6 +519,7 @@ var fallbackEventBus = {
|
|
|
454
519
|
timestamp: Date.now()
|
|
455
520
|
};
|
|
456
521
|
const handlers = fallbackListeners.get(type);
|
|
522
|
+
log.debug("emit", { type, payloadKeys: payload ? Object.keys(payload).length : 0, listenerCount: (handlers?.size ?? 0) + fallbackAnyListeners.size });
|
|
457
523
|
if (handlers) {
|
|
458
524
|
handlers.forEach((handler) => {
|
|
459
525
|
try {
|
|
@@ -476,6 +542,7 @@ var fallbackEventBus = {
|
|
|
476
542
|
fallbackListeners.set(type, /* @__PURE__ */ new Set());
|
|
477
543
|
}
|
|
478
544
|
fallbackListeners.get(type).add(listener);
|
|
545
|
+
subLog.debug("subscribe", { type, totalListeners: fallbackListeners.get(type).size });
|
|
479
546
|
return () => {
|
|
480
547
|
const handlers = fallbackListeners.get(type);
|
|
481
548
|
if (handlers) {
|
|
@@ -499,6 +566,7 @@ var fallbackEventBus = {
|
|
|
499
566
|
},
|
|
500
567
|
onAny: (listener) => {
|
|
501
568
|
fallbackAnyListeners.add(listener);
|
|
569
|
+
subLog.debug("subscribe:any", { totalAnyListeners: fallbackAnyListeners.size });
|
|
502
570
|
return () => {
|
|
503
571
|
fallbackAnyListeners.delete(listener);
|
|
504
572
|
};
|
|
@@ -508,6 +576,8 @@ function useEventBus() {
|
|
|
508
576
|
const context = useContext(EventBusContext);
|
|
509
577
|
return context ?? getGlobalEventBus() ?? fallbackEventBus;
|
|
510
578
|
}
|
|
579
|
+
var busLog = createLogger("almadar:eventbus");
|
|
580
|
+
var subLog2 = createLogger("almadar:eventbus:subscribe");
|
|
511
581
|
var EventBusContext2 = createContext(null);
|
|
512
582
|
function EventBusProvider({ children, debug: debug2 = false }) {
|
|
513
583
|
const listenersRef = useRef(/* @__PURE__ */ new Map());
|
|
@@ -537,7 +607,8 @@ function EventBusProvider({ children, debug: debug2 = false }) {
|
|
|
537
607
|
timestamp: Date.now()
|
|
538
608
|
};
|
|
539
609
|
const listeners6 = listenersRef.current.get(type);
|
|
540
|
-
const listenerCount = listeners6?.size ?? 0;
|
|
610
|
+
const listenerCount = (listeners6?.size ?? 0) + anyListenersRef.current.size;
|
|
611
|
+
busLog.debug("emit", { type, payloadKeys: payload ? Object.keys(payload).length : 0, listenerCount });
|
|
541
612
|
if (debug2) {
|
|
542
613
|
if (listenerCount > 0) {
|
|
543
614
|
console.log(`[EventBus] Emit: ${type} \u2192 ${listenerCount} listener(s)`, payload);
|
|
@@ -570,6 +641,7 @@ function EventBusProvider({ children, debug: debug2 = false }) {
|
|
|
570
641
|
}
|
|
571
642
|
const listeners6 = listenersRef.current.get(type);
|
|
572
643
|
listeners6.add(listener);
|
|
644
|
+
subLog2.debug("subscribe", { type, totalListeners: listeners6.size });
|
|
573
645
|
if (debug2) {
|
|
574
646
|
console.log(`[EventBus] Subscribed to '${type}', total: ${listeners6.size}`);
|
|
575
647
|
}
|
|
@@ -596,6 +668,7 @@ function EventBusProvider({ children, debug: debug2 = false }) {
|
|
|
596
668
|
}, []);
|
|
597
669
|
const onAny = useCallback((listener) => {
|
|
598
670
|
anyListenersRef.current.add(listener);
|
|
671
|
+
subLog2.debug("subscribe:any", { totalAnyListeners: anyListenersRef.current.size });
|
|
599
672
|
if (debug2) {
|
|
600
673
|
console.log(`[EventBus] onAny subscribed, total: ${anyListenersRef.current.size}`);
|
|
601
674
|
}
|
|
@@ -877,6 +950,7 @@ var Box = React114__default.forwardRef(
|
|
|
877
950
|
action,
|
|
878
951
|
actionPayload,
|
|
879
952
|
hoverEvent,
|
|
953
|
+
maxWidth,
|
|
880
954
|
onClick,
|
|
881
955
|
onMouseEnter,
|
|
882
956
|
onMouseLeave,
|
|
@@ -941,6 +1015,7 @@ var Box = React114__default.forwardRef(
|
|
|
941
1015
|
onClick: isClickable ? handleClick : void 0,
|
|
942
1016
|
onMouseEnter: hoverEvent || onMouseEnter ? handleMouseEnter : void 0,
|
|
943
1017
|
onMouseLeave: hoverEvent || onMouseLeave ? handleMouseLeave : void 0,
|
|
1018
|
+
style: maxWidth ? { maxWidth, ...rest.style } : rest.style,
|
|
944
1019
|
...rest,
|
|
945
1020
|
children
|
|
946
1021
|
}
|
|
@@ -3078,6 +3153,7 @@ var defaultIcon = L.icon({
|
|
|
3078
3153
|
L.Marker.prototype.options.icon = defaultIcon;
|
|
3079
3154
|
|
|
3080
3155
|
// lib/verificationRegistry.ts
|
|
3156
|
+
var log2 = createLogger("almadar:bridge");
|
|
3081
3157
|
var MAX_TRANSITIONS = 500;
|
|
3082
3158
|
function getState() {
|
|
3083
3159
|
if (typeof window !== "undefined") {
|
|
@@ -3110,6 +3186,7 @@ function recordTransition(trace) {
|
|
|
3110
3186
|
...trace,
|
|
3111
3187
|
id: `t-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`
|
|
3112
3188
|
};
|
|
3189
|
+
log2.info("transition:recorded", { trait: trace.traitName, from: trace.from, to: trace.to, event: trace.event, effectCount: trace.effects.length });
|
|
3113
3190
|
getState().transitions.push(entry);
|
|
3114
3191
|
if (getState().transitions.length > MAX_TRANSITIONS) {
|
|
3115
3192
|
getState().transitions.shift();
|
|
@@ -3211,10 +3288,12 @@ function waitForTransition(event, timeoutMs = 1e4) {
|
|
|
3211
3288
|
}
|
|
3212
3289
|
function bindEventBus(eventBus) {
|
|
3213
3290
|
if (typeof window === "undefined") return;
|
|
3291
|
+
log2.info("bindEventBus", { hasOnAny: !!eventBus.onAny });
|
|
3214
3292
|
exposeOnWindow();
|
|
3215
3293
|
if (window.__orbitalVerification) {
|
|
3216
3294
|
window.__orbitalVerification.sendEvent = (event, payload) => {
|
|
3217
3295
|
const prefixed = event.startsWith("UI:") ? event : `UI:${event}`;
|
|
3296
|
+
log2.debug("sendEvent", { event: prefixed, payloadKeys: payload ? Object.keys(payload) : [] });
|
|
3218
3297
|
eventBus.emit(prefixed, payload);
|
|
3219
3298
|
};
|
|
3220
3299
|
const eventLog = [];
|
|
@@ -3675,6 +3754,7 @@ function SuspenseConfigProvider({
|
|
|
3675
3754
|
);
|
|
3676
3755
|
}
|
|
3677
3756
|
SuspenseConfigProvider.displayName = "SuspenseConfigProvider";
|
|
3757
|
+
var log3 = createLogger("almadar:verify");
|
|
3678
3758
|
var DISPATCH_SUFFIX = ":DISPATCH";
|
|
3679
3759
|
var SUCCESS_SUFFIX = ":SUCCESS";
|
|
3680
3760
|
var ERROR_SUFFIX = ":ERROR";
|
|
@@ -3720,6 +3800,7 @@ function VerificationProvider({
|
|
|
3720
3800
|
const unsub = eventBus.onAny((evt) => {
|
|
3721
3801
|
const parsed = parseLifecycleEvent(evt.type);
|
|
3722
3802
|
if (!parsed) return;
|
|
3803
|
+
log3.debug("lifecycle:event", { kind: parsed.kind, traitName: parsed.traitName, event: parsed.event, type: evt.type });
|
|
3723
3804
|
const payload = evt.payload ?? {};
|
|
3724
3805
|
if (parsed.kind === "dispatch") {
|
|
3725
3806
|
const key = `${parsed.traitName}:${String(payload["event"] ?? "")}`;
|
|
@@ -3772,6 +3853,7 @@ function VerificationProvider({
|
|
|
3772
3853
|
},
|
|
3773
3854
|
timestamp: Date.now()
|
|
3774
3855
|
});
|
|
3856
|
+
log3.info("transition:success", { trait: parsed.traitName, event: parsed.event, from: pending?.from, to: newState, effectCount: effects.length });
|
|
3775
3857
|
} else if (parsed.kind === "error" && parsed.event) {
|
|
3776
3858
|
const key = `${parsed.traitName}:${parsed.event}`;
|
|
3777
3859
|
const pending = pendingRef.current.get(key);
|
|
@@ -3801,6 +3883,7 @@ function VerificationProvider({
|
|
|
3801
3883
|
},
|
|
3802
3884
|
timestamp: Date.now()
|
|
3803
3885
|
});
|
|
3886
|
+
log3.warn("transition:error", { trait: parsed.traitName, event: parsed.event, from: fromState, error: errorMsg });
|
|
3804
3887
|
}
|
|
3805
3888
|
});
|
|
3806
3889
|
registerCheck(
|