@almadar/ui 2.46.1 → 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 +101 -7
- package/dist/avl/index.js +100 -7
- package/dist/components/index.cjs +83 -11
- package/dist/components/index.js +82 -11
- package/dist/components/organisms/game/three/index.cjs +65 -0
- package/dist/components/organisms/game/three/index.js +64 -0
- package/dist/docs/index.cjs +65 -0
- package/dist/docs/index.js +64 -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 +65 -0
- package/dist/marketing/index.js +64 -0
- package/dist/providers/index.cjs +84 -2
- package/dist/providers/index.js +83 -2
- package/dist/runtime/index.cjs +89 -5
- package/dist/runtime/index.js +88 -5
- package/package.json +1 -1
package/dist/lib/index.js
CHANGED
|
@@ -425,7 +425,69 @@ function clearTraits() {
|
|
|
425
425
|
notifyListeners4();
|
|
426
426
|
}
|
|
427
427
|
|
|
428
|
+
// lib/logger.ts
|
|
429
|
+
var LEVEL_PRIORITY = { DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3 };
|
|
430
|
+
var ENV = typeof process !== "undefined" && process.env ? process.env : {};
|
|
431
|
+
var VITE_ENV = typeof globalThis !== "undefined" && globalThis.__vite_env__ ? globalThis.__vite_env__ : {};
|
|
432
|
+
function getViteEnv(key) {
|
|
433
|
+
try {
|
|
434
|
+
const meta = import.meta;
|
|
435
|
+
return meta?.env?.[key];
|
|
436
|
+
} catch {
|
|
437
|
+
return void 0;
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
function envGet(key, viteKey) {
|
|
441
|
+
return ENV[key] ?? (viteKey ? getViteEnv(viteKey) : void 0) ?? VITE_ENV[viteKey ?? key];
|
|
442
|
+
}
|
|
443
|
+
var NODE_ENV = envGet("NODE_ENV", "VITE_NODE_ENV") ?? "development";
|
|
444
|
+
var CONFIGURED_LEVEL = (envGet("LOG_LEVEL", "VITE_LOG_LEVEL") ?? (NODE_ENV === "production" ? "info" : "debug")).toUpperCase();
|
|
445
|
+
var MIN_PRIORITY = LEVEL_PRIORITY[CONFIGURED_LEVEL] ?? 0;
|
|
446
|
+
var DEBUG_FILTER = (envGet("ALMADAR_DEBUG", "VITE_ALMADAR_DEBUG") ?? "").split(",").map((s) => s.trim()).filter(Boolean);
|
|
447
|
+
function matchesNamespace(namespace) {
|
|
448
|
+
if (DEBUG_FILTER.length === 0) return true;
|
|
449
|
+
return DEBUG_FILTER.some((pattern) => {
|
|
450
|
+
if (pattern === "*" || pattern === "almadar:*") return true;
|
|
451
|
+
if (pattern.endsWith(":*")) return namespace.startsWith(pattern.slice(0, -1));
|
|
452
|
+
return namespace === pattern;
|
|
453
|
+
});
|
|
454
|
+
}
|
|
455
|
+
function createLogger(namespace) {
|
|
456
|
+
const nsAllowed = matchesNamespace(namespace);
|
|
457
|
+
const log2 = (level, message, data, correlationId) => {
|
|
458
|
+
if (LEVEL_PRIORITY[level] < MIN_PRIORITY) return;
|
|
459
|
+
if (level === "DEBUG" && !nsAllowed) return;
|
|
460
|
+
const prefix = `[${namespace}]`;
|
|
461
|
+
const logData = correlationId ? { ...data, cid: correlationId } : data;
|
|
462
|
+
switch (level) {
|
|
463
|
+
case "DEBUG":
|
|
464
|
+
console.debug(prefix, message, logData ?? "");
|
|
465
|
+
break;
|
|
466
|
+
case "INFO":
|
|
467
|
+
console.info(prefix, message, logData ?? "");
|
|
468
|
+
break;
|
|
469
|
+
case "WARN":
|
|
470
|
+
console.warn(prefix, message, logData ?? "");
|
|
471
|
+
break;
|
|
472
|
+
case "ERROR":
|
|
473
|
+
console.error(prefix, message, logData ?? "");
|
|
474
|
+
break;
|
|
475
|
+
}
|
|
476
|
+
};
|
|
477
|
+
return {
|
|
478
|
+
debug: (msg, data, cid) => log2("DEBUG", msg, data, cid),
|
|
479
|
+
info: (msg, data, cid) => log2("INFO", msg, data, cid),
|
|
480
|
+
warn: (msg, data, cid) => log2("WARN", msg, data, cid),
|
|
481
|
+
error: (msg, data, cid) => log2("ERROR", msg, data, cid)
|
|
482
|
+
};
|
|
483
|
+
}
|
|
484
|
+
var _cidCounter = 0;
|
|
485
|
+
function generateCorrelationId() {
|
|
486
|
+
return `evt-${Date.now()}-${++_cidCounter}`;
|
|
487
|
+
}
|
|
488
|
+
|
|
428
489
|
// lib/verificationRegistry.ts
|
|
490
|
+
var log = createLogger("almadar:bridge");
|
|
429
491
|
var MAX_TRANSITIONS = 500;
|
|
430
492
|
function getState() {
|
|
431
493
|
if (typeof window !== "undefined") {
|
|
@@ -469,6 +531,7 @@ function recordTransition(trace) {
|
|
|
469
531
|
...trace,
|
|
470
532
|
id: `t-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`
|
|
471
533
|
};
|
|
534
|
+
log.info("transition:recorded", { trait: trace.traitName, from: trace.from, to: trace.to, event: trace.event, effectCount: trace.effects.length });
|
|
472
535
|
getState().transitions.push(entry);
|
|
473
536
|
if (getState().transitions.length > MAX_TRANSITIONS) {
|
|
474
537
|
getState().transitions.shift();
|
|
@@ -618,10 +681,12 @@ function waitForTransition(event, timeoutMs = 1e4) {
|
|
|
618
681
|
}
|
|
619
682
|
function bindEventBus(eventBus) {
|
|
620
683
|
if (typeof window === "undefined") return;
|
|
684
|
+
log.info("bindEventBus", { hasOnAny: !!eventBus.onAny });
|
|
621
685
|
exposeOnWindow();
|
|
622
686
|
if (window.__orbitalVerification) {
|
|
623
687
|
window.__orbitalVerification.sendEvent = (event, payload) => {
|
|
624
688
|
const prefixed = event.startsWith("UI:") ? event : `UI:${event}`;
|
|
689
|
+
log.debug("sendEvent", { event: prefixed, payloadKeys: payload ? Object.keys(payload) : [] });
|
|
625
690
|
eventBus.emit(prefixed, payload);
|
|
626
691
|
};
|
|
627
692
|
const eventLog = [];
|
|
@@ -1446,4 +1511,4 @@ function parseContentSegments(content) {
|
|
|
1446
1511
|
return segments;
|
|
1447
1512
|
}
|
|
1448
1513
|
|
|
1449
|
-
export { ApiError, DEFAULT_CONFIG, apiClient, bindCanvasCapture, bindEventBus, bindTraitStateGetter, clearDebugEvents, clearEntityProvider, clearGuardHistory, clearTicks, clearTraits, clearVerification, cn, debug, debugCollision, debugError, debugGameState, debugGroup, debugGroupEnd, debugInput, debugPhysics, debugTable, debugTime, debugTimeEnd, debugWarn, extractOutputsFromTransitions, extractStateMachine, formatGuard, formatNestedFieldLabel, getAllChecks, getAllTicks, getAllTraits, getBridgeHealth, getDebugEvents, getEffectSummary, getEntitiesByType, getEntityById, getEntitySnapshot, getEventsBySource, getEventsByType, getGuardEvaluationsForTrait, getGuardHistory, getNestedValue, getRecentEvents, getRecentGuardEvaluations, getSnapshot, getSummary, getTick, getTrait, getTransitions, getTransitionsForTrait, initDebugShortcut, isDebugEnabled, logDebugEvent, logEffectExecuted, logError, logEventFired, logInfo, logStateChange, logWarning, onDebugToggle, parseContentSegments, parseMarkdownWithCodeBlocks, recordGuardEvaluation, recordServerResponse, recordTransition, registerCheck, registerTick, registerTrait, renderStateMachineToDomData, renderStateMachineToSvg, setDebugEnabled, setEntityProvider, setTickActive, subscribeToDebugEvents, subscribeToGuardChanges, subscribeToTickChanges, subscribeToTraitChanges, subscribeToVerification, toggleDebug, unregisterTick, unregisterTrait, updateAssetStatus, updateBridgeHealth, updateCheck, updateGuardResult, updateTickExecution, updateTraitState, waitForTransition };
|
|
1514
|
+
export { ApiError, DEFAULT_CONFIG, apiClient, bindCanvasCapture, bindEventBus, bindTraitStateGetter, clearDebugEvents, clearEntityProvider, clearGuardHistory, clearTicks, clearTraits, clearVerification, cn, createLogger, debug, debugCollision, debugError, debugGameState, debugGroup, debugGroupEnd, debugInput, debugPhysics, debugTable, debugTime, debugTimeEnd, debugWarn, extractOutputsFromTransitions, extractStateMachine, formatGuard, formatNestedFieldLabel, generateCorrelationId, getAllChecks, getAllTicks, getAllTraits, getBridgeHealth, getDebugEvents, getEffectSummary, getEntitiesByType, getEntityById, getEntitySnapshot, getEventsBySource, getEventsByType, getGuardEvaluationsForTrait, getGuardHistory, getNestedValue, getRecentEvents, getRecentGuardEvaluations, getSnapshot, getSummary, getTick, getTrait, getTransitions, getTransitionsForTrait, initDebugShortcut, isDebugEnabled, logDebugEvent, logEffectExecuted, logError, logEventFired, logInfo, logStateChange, logWarning, onDebugToggle, parseContentSegments, parseMarkdownWithCodeBlocks, recordGuardEvaluation, recordServerResponse, recordTransition, registerCheck, registerTick, registerTrait, renderStateMachineToDomData, renderStateMachineToSvg, setDebugEnabled, setEntityProvider, setTickActive, subscribeToDebugEvents, subscribeToGuardChanges, subscribeToTickChanges, subscribeToTraitChanges, subscribeToVerification, toggleDebug, unregisterTick, unregisterTrait, updateAssetStatus, updateBridgeHealth, updateCheck, updateGuardResult, updateTickExecution, updateTraitState, waitForTransition };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Almadar Structured Logger
|
|
3
|
+
*
|
|
4
|
+
* Namespace-based logging with level gating and correlation IDs.
|
|
5
|
+
* Pure TypeScript, zero React dependencies. Works in Node.js, Vite, and browser.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
export interface Logger {
|
|
10
|
+
debug: (msg: string, data?: Record<string, unknown>, cid?: string) => void;
|
|
11
|
+
info: (msg: string, data?: Record<string, unknown>, cid?: string) => void;
|
|
12
|
+
warn: (msg: string, data?: Record<string, unknown>, cid?: string) => void;
|
|
13
|
+
error: (msg: string, data?: Record<string, unknown>, cid?: string) => void;
|
|
14
|
+
}
|
|
15
|
+
export declare function createLogger(namespace: string): Logger;
|
|
16
|
+
export declare function generateCorrelationId(): string;
|
package/dist/marketing/index.cjs
CHANGED
|
@@ -4,6 +4,7 @@ var React5 = require('react');
|
|
|
4
4
|
var jsxRuntime = require('react/jsx-runtime');
|
|
5
5
|
var LucideIcons = require('lucide-react');
|
|
6
6
|
|
|
7
|
+
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
7
8
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
8
9
|
|
|
9
10
|
function _interopNamespace(e) {
|
|
@@ -2506,9 +2507,70 @@ var twMerge = /* @__PURE__ */ createTailwindMerge(getDefaultConfig);
|
|
|
2506
2507
|
function cn(...inputs) {
|
|
2507
2508
|
return twMerge(clsx(inputs));
|
|
2508
2509
|
}
|
|
2510
|
+
|
|
2511
|
+
// lib/logger.ts
|
|
2512
|
+
var LEVEL_PRIORITY = { DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3 };
|
|
2513
|
+
var ENV = typeof process !== "undefined" && process.env ? process.env : {};
|
|
2514
|
+
var VITE_ENV = typeof globalThis !== "undefined" && globalThis.__vite_env__ ? globalThis.__vite_env__ : {};
|
|
2515
|
+
function getViteEnv(key) {
|
|
2516
|
+
try {
|
|
2517
|
+
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)) });
|
|
2518
|
+
return meta?.env?.[key];
|
|
2519
|
+
} catch {
|
|
2520
|
+
return void 0;
|
|
2521
|
+
}
|
|
2522
|
+
}
|
|
2523
|
+
function envGet(key, viteKey) {
|
|
2524
|
+
return ENV[key] ?? (viteKey ? getViteEnv(viteKey) : void 0) ?? VITE_ENV[viteKey ?? key];
|
|
2525
|
+
}
|
|
2526
|
+
var NODE_ENV = envGet("NODE_ENV", "VITE_NODE_ENV") ?? "development";
|
|
2527
|
+
var CONFIGURED_LEVEL = (envGet("LOG_LEVEL", "VITE_LOG_LEVEL") ?? (NODE_ENV === "production" ? "info" : "debug")).toUpperCase();
|
|
2528
|
+
var MIN_PRIORITY = LEVEL_PRIORITY[CONFIGURED_LEVEL] ?? 0;
|
|
2529
|
+
var DEBUG_FILTER = (envGet("ALMADAR_DEBUG", "VITE_ALMADAR_DEBUG") ?? "").split(",").map((s) => s.trim()).filter(Boolean);
|
|
2530
|
+
function matchesNamespace(namespace) {
|
|
2531
|
+
if (DEBUG_FILTER.length === 0) return true;
|
|
2532
|
+
return DEBUG_FILTER.some((pattern) => {
|
|
2533
|
+
if (pattern === "*" || pattern === "almadar:*") return true;
|
|
2534
|
+
if (pattern.endsWith(":*")) return namespace.startsWith(pattern.slice(0, -1));
|
|
2535
|
+
return namespace === pattern;
|
|
2536
|
+
});
|
|
2537
|
+
}
|
|
2538
|
+
function createLogger(namespace) {
|
|
2539
|
+
const nsAllowed = matchesNamespace(namespace);
|
|
2540
|
+
const log2 = (level, message, data, correlationId) => {
|
|
2541
|
+
if (LEVEL_PRIORITY[level] < MIN_PRIORITY) return;
|
|
2542
|
+
if (level === "DEBUG" && !nsAllowed) return;
|
|
2543
|
+
const prefix = `[${namespace}]`;
|
|
2544
|
+
const logData = correlationId ? { ...data, cid: correlationId } : data;
|
|
2545
|
+
switch (level) {
|
|
2546
|
+
case "DEBUG":
|
|
2547
|
+
console.debug(prefix, message, logData ?? "");
|
|
2548
|
+
break;
|
|
2549
|
+
case "INFO":
|
|
2550
|
+
console.info(prefix, message, logData ?? "");
|
|
2551
|
+
break;
|
|
2552
|
+
case "WARN":
|
|
2553
|
+
console.warn(prefix, message, logData ?? "");
|
|
2554
|
+
break;
|
|
2555
|
+
case "ERROR":
|
|
2556
|
+
console.error(prefix, message, logData ?? "");
|
|
2557
|
+
break;
|
|
2558
|
+
}
|
|
2559
|
+
};
|
|
2560
|
+
return {
|
|
2561
|
+
debug: (msg, data, cid) => log2("DEBUG", msg, data, cid),
|
|
2562
|
+
info: (msg, data, cid) => log2("INFO", msg, data, cid),
|
|
2563
|
+
warn: (msg, data, cid) => log2("WARN", msg, data, cid),
|
|
2564
|
+
error: (msg, data, cid) => log2("ERROR", msg, data, cid)
|
|
2565
|
+
};
|
|
2566
|
+
}
|
|
2567
|
+
createLogger("almadar:eventbus");
|
|
2568
|
+
createLogger("almadar:eventbus:subscribe");
|
|
2509
2569
|
var EventBusContext = React5.createContext(null);
|
|
2510
2570
|
|
|
2511
2571
|
// hooks/useEventBus.ts
|
|
2572
|
+
var log = createLogger("almadar:eventbus");
|
|
2573
|
+
var subLog2 = createLogger("almadar:eventbus:subscribe");
|
|
2512
2574
|
function getGlobalEventBus() {
|
|
2513
2575
|
if (typeof window !== "undefined") {
|
|
2514
2576
|
return window.__kflowEventBus ?? null;
|
|
@@ -2525,6 +2587,7 @@ var fallbackEventBus = {
|
|
|
2525
2587
|
timestamp: Date.now()
|
|
2526
2588
|
};
|
|
2527
2589
|
const handlers = fallbackListeners.get(type);
|
|
2590
|
+
log.debug("emit", { type, payloadKeys: payload ? Object.keys(payload).length : 0, listenerCount: (handlers?.size ?? 0) + fallbackAnyListeners.size });
|
|
2528
2591
|
if (handlers) {
|
|
2529
2592
|
handlers.forEach((handler) => {
|
|
2530
2593
|
try {
|
|
@@ -2547,6 +2610,7 @@ var fallbackEventBus = {
|
|
|
2547
2610
|
fallbackListeners.set(type, /* @__PURE__ */ new Set());
|
|
2548
2611
|
}
|
|
2549
2612
|
fallbackListeners.get(type).add(listener);
|
|
2613
|
+
subLog2.debug("subscribe", { type, totalListeners: fallbackListeners.get(type).size });
|
|
2550
2614
|
return () => {
|
|
2551
2615
|
const handlers = fallbackListeners.get(type);
|
|
2552
2616
|
if (handlers) {
|
|
@@ -2570,6 +2634,7 @@ var fallbackEventBus = {
|
|
|
2570
2634
|
},
|
|
2571
2635
|
onAny: (listener) => {
|
|
2572
2636
|
fallbackAnyListeners.add(listener);
|
|
2637
|
+
subLog2.debug("subscribe:any", { totalAnyListeners: fallbackAnyListeners.size });
|
|
2573
2638
|
return () => {
|
|
2574
2639
|
fallbackAnyListeners.delete(listener);
|
|
2575
2640
|
};
|
package/dist/marketing/index.js
CHANGED
|
@@ -2482,9 +2482,70 @@ var twMerge = /* @__PURE__ */ createTailwindMerge(getDefaultConfig);
|
|
|
2482
2482
|
function cn(...inputs) {
|
|
2483
2483
|
return twMerge(clsx(inputs));
|
|
2484
2484
|
}
|
|
2485
|
+
|
|
2486
|
+
// lib/logger.ts
|
|
2487
|
+
var LEVEL_PRIORITY = { DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3 };
|
|
2488
|
+
var ENV = typeof process !== "undefined" && process.env ? process.env : {};
|
|
2489
|
+
var VITE_ENV = typeof globalThis !== "undefined" && globalThis.__vite_env__ ? globalThis.__vite_env__ : {};
|
|
2490
|
+
function getViteEnv(key) {
|
|
2491
|
+
try {
|
|
2492
|
+
const meta = import.meta;
|
|
2493
|
+
return meta?.env?.[key];
|
|
2494
|
+
} catch {
|
|
2495
|
+
return void 0;
|
|
2496
|
+
}
|
|
2497
|
+
}
|
|
2498
|
+
function envGet(key, viteKey) {
|
|
2499
|
+
return ENV[key] ?? (viteKey ? getViteEnv(viteKey) : void 0) ?? VITE_ENV[viteKey ?? key];
|
|
2500
|
+
}
|
|
2501
|
+
var NODE_ENV = envGet("NODE_ENV", "VITE_NODE_ENV") ?? "development";
|
|
2502
|
+
var CONFIGURED_LEVEL = (envGet("LOG_LEVEL", "VITE_LOG_LEVEL") ?? (NODE_ENV === "production" ? "info" : "debug")).toUpperCase();
|
|
2503
|
+
var MIN_PRIORITY = LEVEL_PRIORITY[CONFIGURED_LEVEL] ?? 0;
|
|
2504
|
+
var DEBUG_FILTER = (envGet("ALMADAR_DEBUG", "VITE_ALMADAR_DEBUG") ?? "").split(",").map((s) => s.trim()).filter(Boolean);
|
|
2505
|
+
function matchesNamespace(namespace) {
|
|
2506
|
+
if (DEBUG_FILTER.length === 0) return true;
|
|
2507
|
+
return DEBUG_FILTER.some((pattern) => {
|
|
2508
|
+
if (pattern === "*" || pattern === "almadar:*") return true;
|
|
2509
|
+
if (pattern.endsWith(":*")) return namespace.startsWith(pattern.slice(0, -1));
|
|
2510
|
+
return namespace === pattern;
|
|
2511
|
+
});
|
|
2512
|
+
}
|
|
2513
|
+
function createLogger(namespace) {
|
|
2514
|
+
const nsAllowed = matchesNamespace(namespace);
|
|
2515
|
+
const log2 = (level, message, data, correlationId) => {
|
|
2516
|
+
if (LEVEL_PRIORITY[level] < MIN_PRIORITY) return;
|
|
2517
|
+
if (level === "DEBUG" && !nsAllowed) return;
|
|
2518
|
+
const prefix = `[${namespace}]`;
|
|
2519
|
+
const logData = correlationId ? { ...data, cid: correlationId } : data;
|
|
2520
|
+
switch (level) {
|
|
2521
|
+
case "DEBUG":
|
|
2522
|
+
console.debug(prefix, message, logData ?? "");
|
|
2523
|
+
break;
|
|
2524
|
+
case "INFO":
|
|
2525
|
+
console.info(prefix, message, logData ?? "");
|
|
2526
|
+
break;
|
|
2527
|
+
case "WARN":
|
|
2528
|
+
console.warn(prefix, message, logData ?? "");
|
|
2529
|
+
break;
|
|
2530
|
+
case "ERROR":
|
|
2531
|
+
console.error(prefix, message, logData ?? "");
|
|
2532
|
+
break;
|
|
2533
|
+
}
|
|
2534
|
+
};
|
|
2535
|
+
return {
|
|
2536
|
+
debug: (msg, data, cid) => log2("DEBUG", msg, data, cid),
|
|
2537
|
+
info: (msg, data, cid) => log2("INFO", msg, data, cid),
|
|
2538
|
+
warn: (msg, data, cid) => log2("WARN", msg, data, cid),
|
|
2539
|
+
error: (msg, data, cid) => log2("ERROR", msg, data, cid)
|
|
2540
|
+
};
|
|
2541
|
+
}
|
|
2542
|
+
createLogger("almadar:eventbus");
|
|
2543
|
+
createLogger("almadar:eventbus:subscribe");
|
|
2485
2544
|
var EventBusContext = createContext(null);
|
|
2486
2545
|
|
|
2487
2546
|
// hooks/useEventBus.ts
|
|
2547
|
+
var log = createLogger("almadar:eventbus");
|
|
2548
|
+
var subLog2 = createLogger("almadar:eventbus:subscribe");
|
|
2488
2549
|
function getGlobalEventBus() {
|
|
2489
2550
|
if (typeof window !== "undefined") {
|
|
2490
2551
|
return window.__kflowEventBus ?? null;
|
|
@@ -2501,6 +2562,7 @@ var fallbackEventBus = {
|
|
|
2501
2562
|
timestamp: Date.now()
|
|
2502
2563
|
};
|
|
2503
2564
|
const handlers = fallbackListeners.get(type);
|
|
2565
|
+
log.debug("emit", { type, payloadKeys: payload ? Object.keys(payload).length : 0, listenerCount: (handlers?.size ?? 0) + fallbackAnyListeners.size });
|
|
2504
2566
|
if (handlers) {
|
|
2505
2567
|
handlers.forEach((handler) => {
|
|
2506
2568
|
try {
|
|
@@ -2523,6 +2585,7 @@ var fallbackEventBus = {
|
|
|
2523
2585
|
fallbackListeners.set(type, /* @__PURE__ */ new Set());
|
|
2524
2586
|
}
|
|
2525
2587
|
fallbackListeners.get(type).add(listener);
|
|
2588
|
+
subLog2.debug("subscribe", { type, totalListeners: fallbackListeners.get(type).size });
|
|
2526
2589
|
return () => {
|
|
2527
2590
|
const handlers = fallbackListeners.get(type);
|
|
2528
2591
|
if (handlers) {
|
|
@@ -2546,6 +2609,7 @@ var fallbackEventBus = {
|
|
|
2546
2609
|
},
|
|
2547
2610
|
onAny: (listener) => {
|
|
2548
2611
|
fallbackAnyListeners.add(listener);
|
|
2612
|
+
subLog2.debug("subscribe:any", { totalAnyListeners: fallbackAnyListeners.size });
|
|
2549
2613
|
return () => {
|
|
2550
2614
|
fallbackAnyListeners.delete(listener);
|
|
2551
2615
|
};
|
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
|
}
|
|
@@ -3126,6 +3200,7 @@ var defaultIcon = L__default.default.icon({
|
|
|
3126
3200
|
L__default.default.Marker.prototype.options.icon = defaultIcon;
|
|
3127
3201
|
|
|
3128
3202
|
// lib/verificationRegistry.ts
|
|
3203
|
+
var log2 = createLogger("almadar:bridge");
|
|
3129
3204
|
var MAX_TRANSITIONS = 500;
|
|
3130
3205
|
function getState() {
|
|
3131
3206
|
if (typeof window !== "undefined") {
|
|
@@ -3158,6 +3233,7 @@ function recordTransition(trace) {
|
|
|
3158
3233
|
...trace,
|
|
3159
3234
|
id: `t-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`
|
|
3160
3235
|
};
|
|
3236
|
+
log2.info("transition:recorded", { trait: trace.traitName, from: trace.from, to: trace.to, event: trace.event, effectCount: trace.effects.length });
|
|
3161
3237
|
getState().transitions.push(entry);
|
|
3162
3238
|
if (getState().transitions.length > MAX_TRANSITIONS) {
|
|
3163
3239
|
getState().transitions.shift();
|
|
@@ -3259,10 +3335,12 @@ function waitForTransition(event, timeoutMs = 1e4) {
|
|
|
3259
3335
|
}
|
|
3260
3336
|
function bindEventBus(eventBus) {
|
|
3261
3337
|
if (typeof window === "undefined") return;
|
|
3338
|
+
log2.info("bindEventBus", { hasOnAny: !!eventBus.onAny });
|
|
3262
3339
|
exposeOnWindow();
|
|
3263
3340
|
if (window.__orbitalVerification) {
|
|
3264
3341
|
window.__orbitalVerification.sendEvent = (event, payload) => {
|
|
3265
3342
|
const prefixed = event.startsWith("UI:") ? event : `UI:${event}`;
|
|
3343
|
+
log2.debug("sendEvent", { event: prefixed, payloadKeys: payload ? Object.keys(payload) : [] });
|
|
3266
3344
|
eventBus.emit(prefixed, payload);
|
|
3267
3345
|
};
|
|
3268
3346
|
const eventLog = [];
|
|
@@ -3723,6 +3801,7 @@ function SuspenseConfigProvider({
|
|
|
3723
3801
|
);
|
|
3724
3802
|
}
|
|
3725
3803
|
SuspenseConfigProvider.displayName = "SuspenseConfigProvider";
|
|
3804
|
+
var log3 = createLogger("almadar:verify");
|
|
3726
3805
|
var DISPATCH_SUFFIX = ":DISPATCH";
|
|
3727
3806
|
var SUCCESS_SUFFIX = ":SUCCESS";
|
|
3728
3807
|
var ERROR_SUFFIX = ":ERROR";
|
|
@@ -3768,6 +3847,7 @@ function VerificationProvider({
|
|
|
3768
3847
|
const unsub = eventBus.onAny((evt) => {
|
|
3769
3848
|
const parsed = parseLifecycleEvent(evt.type);
|
|
3770
3849
|
if (!parsed) return;
|
|
3850
|
+
log3.debug("lifecycle:event", { kind: parsed.kind, traitName: parsed.traitName, event: parsed.event, type: evt.type });
|
|
3771
3851
|
const payload = evt.payload ?? {};
|
|
3772
3852
|
if (parsed.kind === "dispatch") {
|
|
3773
3853
|
const key = `${parsed.traitName}:${String(payload["event"] ?? "")}`;
|
|
@@ -3820,6 +3900,7 @@ function VerificationProvider({
|
|
|
3820
3900
|
},
|
|
3821
3901
|
timestamp: Date.now()
|
|
3822
3902
|
});
|
|
3903
|
+
log3.info("transition:success", { trait: parsed.traitName, event: parsed.event, from: pending?.from, to: newState, effectCount: effects.length });
|
|
3823
3904
|
} else if (parsed.kind === "error" && parsed.event) {
|
|
3824
3905
|
const key = `${parsed.traitName}:${parsed.event}`;
|
|
3825
3906
|
const pending = pendingRef.current.get(key);
|
|
@@ -3849,6 +3930,7 @@ function VerificationProvider({
|
|
|
3849
3930
|
},
|
|
3850
3931
|
timestamp: Date.now()
|
|
3851
3932
|
});
|
|
3933
|
+
log3.warn("transition:error", { trait: parsed.traitName, event: parsed.event, from: fromState, error: errorMsg });
|
|
3852
3934
|
}
|
|
3853
3935
|
});
|
|
3854
3936
|
registerCheck(
|