@kosdev-code/kos-ui-sdk 2.0.41 → 2.1.1
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/core/core/decorators/index.d.ts +4 -0
- package/core/core/decorators/index.d.ts.map +1 -1
- package/core/core/decorators/kos-companion.d.ts +125 -8
- package/core/core/decorators/kos-companion.d.ts.map +1 -1
- package/core/core/decorators/kos-container-aware.d.ts +465 -0
- package/core/core/decorators/kos-container-aware.d.ts.map +1 -0
- package/core/core/decorators/kos-future-aware.d.ts +150 -0
- package/core/core/decorators/kos-future-aware.d.ts.map +1 -0
- package/core/core/decorators/kos-logger-aware.d.ts +96 -0
- package/core/core/decorators/kos-logger-aware.d.ts.map +1 -0
- package/core/core/decorators/kos-trouble-aware.d.ts +71 -0
- package/core/core/decorators/kos-trouble-aware.d.ts.map +1 -0
- package/core/core/decorators/kosModel.d.ts +8 -2
- package/core/core/decorators/kosModel.d.ts.map +1 -1
- package/core/core/decorators/kosTopicHandler.d.ts.map +1 -1
- package/core/core/decorators/propKeys.d.ts +4 -0
- package/core/core/decorators/propKeys.d.ts.map +1 -1
- package/core/core/extension/extension-manager.d.ts +1 -1
- package/core/core/extension/extension-manager.d.ts.map +1 -1
- package/core/core/kosCore.d.ts.map +1 -1
- package/core/core/registration/index.d.ts +1 -0
- package/core/core/registration/index.d.ts.map +1 -1
- package/core/index.d.ts +1 -1
- package/core/index.d.ts.map +1 -1
- package/core/util/container-utils.d.ts +3 -2
- package/core/util/container-utils.d.ts.map +1 -1
- package/core/util/observable-proxy-map.d.ts.map +1 -1
- package/index.cjs +79 -76
- package/index.cjs.map +1 -1
- package/index.d.cts +1 -0
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.js +9672 -7760
- package/index.js.map +1 -1
- package/models/models/browser-router/browser-router-model.d.ts +80 -1
- package/models/models/browser-router/browser-router-model.d.ts.map +1 -1
- package/models/models/browser-router/types/index.d.ts +25 -1
- package/models/models/config-bean/config-bean-model-builder.d.ts +4 -2
- package/models/models/config-bean/config-bean-model-builder.d.ts.map +1 -1
- package/models/models/config-bean/config-bean-model.d.ts +117 -13
- package/models/models/config-bean/config-bean-model.d.ts.map +1 -1
- package/models/models/config-bean/config-bean-types.d.ts +6 -3
- package/models/models/config-bean/config-bean-types.d.ts.map +1 -1
- package/models/models/config-bean/types/index.d.ts +33 -0
- package/models/models/config-bean-prop/config-bean-prop-model.d.ts +112 -1
- package/models/models/config-bean-prop/config-bean-prop-model.d.ts.map +1 -1
- package/models/models/config-bean-prop/types/index.d.ts +293 -17
- package/models/models/device/device-model.d.ts +219 -9
- package/models/models/device/device-model.d.ts.map +1 -1
- package/models/models/device/device-registration.d.ts +61 -48
- package/models/models/device/device-registration.d.ts.map +1 -1
- package/models/models/device/types/index.d.ts +41 -0
- package/models/models/future/future-aware.d.ts +82 -0
- package/models/models/future/future-aware.d.ts.map +1 -1
- package/models/models/future/future-model.d.ts +34 -5
- package/models/models/future/future-model.d.ts.map +1 -1
- package/models/models/future/future-types.d.ts +186 -7
- package/models/models/future/future-types.d.ts.map +1 -1
- package/models/models/future-container/future-container-model.d.ts +2 -2
- package/models/models/index.d.ts +1 -0
- package/models/models/index.d.ts.map +1 -1
- package/models/models/key-value/index.d.ts +4 -0
- package/models/models/key-value/index.d.ts.map +1 -1
- package/models/models/key-value/key-value-model.d.ts +111 -0
- package/models/models/key-value/key-value-model.d.ts.map +1 -1
- package/models/models/key-value/services/key-value-services.d.ts +124 -2
- package/models/models/key-value/services/key-value-services.d.ts.map +1 -1
- package/models/models/key-value/types/index.d.ts +56 -0
- package/models/models/kos-expression-evaluator/index.d.ts +4 -0
- package/models/models/kos-expression-evaluator/index.d.ts.map +1 -0
- package/models/models/kos-expression-evaluator/kos-expression-evaluator-model.d.ts +209 -0
- package/models/models/kos-expression-evaluator/kos-expression-evaluator-model.d.ts.map +1 -0
- package/models/models/kos-expression-evaluator/services/index.d.ts +6 -0
- package/models/models/kos-expression-evaluator/services/index.d.ts.map +1 -0
- package/models/models/kos-expression-evaluator/services/kos-expression-evaluator-services.d.ts +15 -0
- package/models/models/kos-expression-evaluator/services/kos-expression-evaluator-services.d.ts.map +1 -0
- package/models/models/kos-expression-evaluator/types/index.d.ts +1 -0
- package/models/models/kos-log-manager/kos-log-manager-model.d.ts +61 -14
- package/models/models/kos-log-manager/kos-log-manager-model.d.ts.map +1 -1
- package/models/models/kos-log-manager/types/index.d.ts +187 -0
- package/models/models/kos-time/kos-time-model.d.ts +64 -0
- package/models/models/kos-time/kos-time-model.d.ts.map +1 -1
- package/models/models/kos-time/types/index.d.ts +80 -0
- package/models/models/log-block/log-block-container-model.d.ts +132 -0
- package/models/models/log-block/log-block-container-model.d.ts.map +1 -1
- package/models/models/log-block/log-block-model.d.ts +185 -0
- package/models/models/log-block/log-block-model.d.ts.map +1 -1
- package/models/models/log-block/types/index.d.ts +129 -0
- package/models/models/log-stream/index.d.ts +6 -2
- package/models/models/log-stream/index.d.ts.map +1 -1
- package/models/models/log-stream/log-stream-container-model.d.ts +62 -0
- package/models/models/log-stream/log-stream-container-model.d.ts.map +1 -1
- package/models/models/log-stream/log-stream-model.d.ts +55 -0
- package/models/models/log-stream/log-stream-model.d.ts.map +1 -1
- package/models/models/log-stream/services/log-stream-services.d.ts +2 -1
- package/models/models/log-stream/services/log-stream-services.d.ts.map +1 -1
- package/models/models/log-stream/types/index.d.ts +77 -0
- package/models/models/network-interface/index.d.ts +6 -2
- package/models/models/network-interface/index.d.ts.map +1 -1
- package/models/models/network-interface/network-interface-container-model.d.ts +62 -0
- package/models/models/network-interface/network-interface-container-model.d.ts.map +1 -1
- package/models/models/network-interface/network-interface-container-registration.d.ts +2 -1
- package/models/models/network-interface/network-interface-container-registration.d.ts.map +1 -1
- package/models/models/network-interface/network-interface-model.d.ts +77 -0
- package/models/models/network-interface/network-interface-model.d.ts.map +1 -1
- package/models/models/network-interface/network-interface-registration.d.ts +2 -1
- package/models/models/network-interface/network-interface-registration.d.ts.map +1 -1
- package/models/models/network-interface/services/network-interface-services.d.ts +54 -0
- package/models/models/network-interface/services/network-interface-services.d.ts.map +1 -1
- package/models/models/network-interface/types/index.d.ts +21 -0
- package/models/models/ota/ota-model.d.ts +82 -3
- package/models/models/ota/ota-model.d.ts.map +1 -1
- package/models/models/ota/types/index.d.ts +146 -0
- package/models/models/region-info/region-info-model.d.ts +7 -3
- package/models/models/region-info/region-info-model.d.ts.map +1 -1
- package/models/models/region-info/services/region-info-services.d.ts.map +1 -1
- package/models/models/region-info/types/index.d.ts +141 -13
- package/models/models/region-info/types/index.d.ts.map +1 -1
- package/models/models/software-info/software-info-model.d.ts +74 -2
- package/models/models/software-info/software-info-model.d.ts.map +1 -1
- package/models/models/software-info/types/index.d.ts +48 -16
- package/models/models/state-bean/state-bean-model.d.ts +86 -9
- package/models/models/state-bean/state-bean-model.d.ts.map +1 -1
- package/models/models/state-bean/types/index.d.ts +114 -6
- package/models/models/state-prop/state-prop-model.d.ts +78 -1
- package/models/models/state-prop/state-prop-model.d.ts.map +1 -1
- package/models/models/state-prop/types/index.d.ts +55 -7
- package/models/models/storage-device/storage-device-container-model.d.ts +289 -2
- package/models/models/storage-device/storage-device-container-model.d.ts.map +1 -1
- package/models/models/storage-device/storage-device-model.d.ts +84 -2
- package/models/models/storage-device/storage-device-model.d.ts.map +1 -1
- package/models/models/storage-device/types/index.d.ts +112 -0
- package/models/models/studio-properties/studio-properties-model.d.ts +75 -0
- package/models/models/studio-properties/studio-properties-model.d.ts.map +1 -1
- package/models/models/studio-properties/types/index.d.ts +29 -0
- package/models/models/translation/services/translation-services.d.ts +128 -2
- package/models/models/translation/services/translation-services.d.ts.map +1 -1
- package/models/models/translation/translation-container-model.d.ts +100 -10
- package/models/models/translation/translation-container-model.d.ts.map +1 -1
- package/models/models/translation/translation-container-registration.d.ts +2 -1
- package/models/models/translation/translation-container-registration.d.ts.map +1 -1
- package/models/models/translation/translation-context.d.ts +1 -16
- package/models/models/translation/translation-context.d.ts.map +1 -1
- package/models/models/translation/translation-model.d.ts +113 -1
- package/models/models/translation/translation-model.d.ts.map +1 -1
- package/models/models/translation/types/index.d.ts +340 -0
- package/models/models/trouble/services/trouble-services.d.ts +3 -3
- package/models/models/trouble/services/trouble-services.d.ts.map +1 -1
- package/models/models/trouble/trouble-model.d.ts +2 -1
- package/models/models/trouble/trouble-model.d.ts.map +1 -1
- package/models/models/trouble/types/index.d.ts +22 -93
- package/models/models/trouble/utils/is-trouble-aware.d.ts +2 -2
- package/models/models/trouble/utils/is-trouble-aware.d.ts.map +1 -1
- package/models/models/trouble-container/index.d.ts +4 -3
- package/models/models/trouble-container/index.d.ts.map +1 -1
- package/models/models/trouble-container/trouble-container-model.d.ts +9 -5
- package/models/models/trouble-container/trouble-container-model.d.ts.map +1 -1
- package/models/models/trouble-container/types/index.d.ts +2 -15
- package/models/utils/client.d.ts +8 -8
- package/models/utils/core-registration-manager.d.ts +1 -1
- package/models/utils/core-registration-manager.d.ts.map +1 -1
- package/models/utils/index.d.ts +0 -2
- package/models/utils/index.d.ts.map +1 -1
- package/models/utils/service.d.ts +9 -9
- package/package.json +2 -2
- package/ui/contexts/state-bean/state-bean-provider.d.ts.map +1 -1
- package/ui/hooks/state-bean/use-state-bean.d.ts +2 -2
- package/ui/hooks/state-bean/use-state-bean.d.ts.map +1 -1
- package/ui/hooks/state-bean/with-state-bean.d.ts.map +1 -1
- package/ui/hooks/translation-container/use-translation-container.d.ts +4 -33
- package/ui/hooks/translation-container/use-translation-container.d.ts.map +1 -1
- package/models/models/trouble-container/trouble-container-registration.d.ts +0 -5
- package/models/models/trouble-container/trouble-container-registration.d.ts.map +0 -1
- package/models/utils/kosmodel-compatible-future-mixin.d.ts +0 -142
- package/models/utils/kosmodel-compatible-future-mixin.d.ts.map +0 -1
- package/models/utils/kosmodel-interface-companion-mixin.d.ts +0 -83
- package/models/utils/kosmodel-interface-companion-mixin.d.ts.map +0 -1
|
@@ -10,23 +10,68 @@ import { KosRequest, KosResponse } from '../../../core';
|
|
|
10
10
|
*/
|
|
11
11
|
export declare const MODEL_TYPE = "kos-log-manager-model";
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
*
|
|
13
|
+
* KOS Log Manager Model - Centralized runtime log level management for the entire KOS system.
|
|
14
|
+
*
|
|
15
|
+
* This singleton model provides comprehensive control over logging behavior across the KOS UI SDK
|
|
16
|
+
* and connected applications. It manages dynamic log level overrides, responds to real-time
|
|
17
|
+
* configuration changes, and provides both REST API and WebSocket interfaces for log management.
|
|
18
|
+
* Essential for debugging, performance monitoring, and production troubleshooting.
|
|
19
|
+
*
|
|
20
|
+
* ## Key Features
|
|
21
|
+
* - **Runtime Log Level Control** - Dynamically adjust log levels without application restart
|
|
22
|
+
* - **Hierarchical Logger Management** - Apply overrides to parent loggers and all children
|
|
23
|
+
* - **Real-time Configuration** - WebSocket-based updates propagate instantly across clients
|
|
24
|
+
* - **REST API Integration** - Query and manage logger configurations via HTTP endpoints
|
|
25
|
+
* - **Override Persistence** - Log overrides are maintained across sessions and page refreshes
|
|
26
|
+
* - **Multi-Node Support** - Coordinate logging across different KOS device nodes
|
|
27
|
+
*
|
|
28
|
+
* ## Topic-Based Reactivity
|
|
29
|
+
* The model listens to these KOS topics for real-time log management:
|
|
30
|
+
* - **`/kos/logs/override/add/*`** - Fired when new log level overrides are created
|
|
31
|
+
* - **`/kos/logs/override/remove/*`** - Fired when log level overrides are removed
|
|
32
|
+
*
|
|
33
|
+
* Both topics support wildcard capture for node type targeting, enabling precise
|
|
34
|
+
* control over which device nodes receive logging configuration changes.
|
|
19
35
|
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
36
|
+
* ## Architecture Integration
|
|
37
|
+
* The log manager integrates with the broader KOS logging ecosystem:
|
|
38
|
+
* - **KosLog System** - Manages underlying logger instances and level settings
|
|
39
|
+
* - **LogStreamModel** - Streams managed by this model's log level policies
|
|
40
|
+
* - **LogBlockModel** - Individual log entries governed by level settings
|
|
41
|
+
* - **REST Endpoints** - Provides `/api/kos/ui/loggers` for external access
|
|
22
42
|
*
|
|
23
|
-
*
|
|
24
|
-
* -
|
|
25
|
-
* -
|
|
26
|
-
* -
|
|
27
|
-
* -
|
|
43
|
+
* ## Common Use Cases
|
|
44
|
+
* - **Development Debugging** - Increase log verbosity for specific components during development
|
|
45
|
+
* - **Production Troubleshooting** - Temporarily enable debug logging to diagnose issues
|
|
46
|
+
* - **Performance Monitoring** - Adjust log levels to reduce overhead in production
|
|
47
|
+
* - **System Administration** - Centrally manage logging across distributed KOS deployments
|
|
48
|
+
* - **Dynamic Configuration** - Change logging behavior without service interruption
|
|
49
|
+
* - **Selective Logging** - Enable detailed logging for specific modules while keeping others quiet
|
|
28
50
|
*
|
|
29
|
-
* @
|
|
51
|
+
* @interface
|
|
52
|
+
* @example Basic Usage
|
|
53
|
+
* ```typescript
|
|
54
|
+
* const logManager = KosLogManager.instance('log-control').build();
|
|
55
|
+
*
|
|
56
|
+
* // Get all current logger configurations via REST API
|
|
57
|
+
* const loggers = await logManager.getAllLoggers();
|
|
58
|
+
* console.log(`Managing ${loggers.length} loggers`);
|
|
59
|
+
* ```
|
|
60
|
+
*
|
|
61
|
+
* @group KOS Model
|
|
62
|
+
* @category Device Logging
|
|
63
|
+
* @useDeclaredType
|
|
64
|
+
*
|
|
65
|
+
* @see {@link LogStreamModel} - Streams whose content is governed by log levels managed here
|
|
66
|
+
* @see {@link LogBlockModel} - Individual log entries affected by level settings
|
|
67
|
+
* @see {@link KosLogManagerOptions} - Configuration options for the log manager
|
|
68
|
+
* @see {@link LogOverride} - Log level override structure for runtime control
|
|
69
|
+
* @see {@link LogLevelDescriptor} - Logger information structure returned by REST API
|
|
70
|
+
*/
|
|
71
|
+
export type KosLogManagerModel = PublicModelInterface<KosLogManagerModelImpl>;
|
|
72
|
+
/**
|
|
73
|
+
* @ignore
|
|
74
|
+
* @internal
|
|
30
75
|
*/
|
|
31
76
|
export declare class KosLogManagerModelImpl implements IKosDataModel, IKosIdentifiable {
|
|
32
77
|
id: string;
|
|
@@ -80,12 +125,14 @@ export declare class KosLogManagerModelImpl implements IKosDataModel, IKosIdenti
|
|
|
80
125
|
/**
|
|
81
126
|
* Initializes the log manager model.
|
|
82
127
|
* Called during model creation lifecycle.
|
|
128
|
+
* @internal
|
|
83
129
|
*/
|
|
84
130
|
init(): Promise<void>;
|
|
85
131
|
/**
|
|
86
132
|
* Loads existing log overrides from the server.
|
|
87
133
|
* Fetches UI-specific overrides and applies them to the current loggers.
|
|
88
134
|
* Called after model initialization.
|
|
135
|
+
* @internal
|
|
89
136
|
*/
|
|
90
137
|
load(): Promise<void>;
|
|
91
138
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kos-log-manager-model.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-ui-sdk/src/models/models/kos-log-manager/kos-log-manager-model.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,WAAW,EACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EACV,aAAa,EAEb,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,KAAK,EACV,oBAAoB,EACpB,kBAAkB,EAElB,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,eAAO,MAAM,UAAU,0BAA0B,CAAC;AAElD
|
|
1
|
+
{"version":3,"file":"kos-log-manager-model.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-ui-sdk/src/models/models/kos-log-manager/kos-log-manager-model.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,WAAW,EACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EACV,aAAa,EAEb,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,KAAK,EACV,oBAAoB,EACpB,kBAAkB,EAElB,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,eAAO,MAAM,UAAU,0BAA0B,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,MAAM,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,sBAAsB,CAAC,CAAC;AA2B9E;;;GAGG;AACH,qBACa,sBAAuB,YAAW,aAAa,EAAE,gBAAgB;IAC5E,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,MAAM,CAAmB;IAEjC,OAAO,CAAC,UAAU,CAAiC;gBAEjD,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,kBAAkB;IAU7B,WAAW,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IAMjD;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAqBtB;;;;;;OAMG;IAEG,aAAa,CACjB,IAAI,CAAC,EAAE,UAAU,EACjB,GAAG,CAAC,EAAE,WAAW,GAChB,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAOhC;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAwBpB;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAsBtB;;;;;OAKG;IAMH,mBAAmB,CACjB,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,uBAAuB,CAAC,GAAG,CAAC;IAWvC;;;;OAIG;IAMH,qBAAqB,CAAC,QAAQ,EAAE,WAAW;IAK3C;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B;;;;;OAKG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAwB5B"}
|
|
@@ -1,14 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration options for KosLogManager model instances.
|
|
3
|
+
*
|
|
4
|
+
* Currently an empty interface but reserved for future log management
|
|
5
|
+
* configuration options such as default log levels, override policies,
|
|
6
|
+
* or persistence settings.
|
|
7
|
+
*
|
|
8
|
+
* @example Basic Log Manager Configuration
|
|
9
|
+
* ```typescript
|
|
10
|
+
* const options: KosLogManagerOptions = {
|
|
11
|
+
* // Future options will be added here
|
|
12
|
+
* };
|
|
13
|
+
*
|
|
14
|
+
* const logManager = KosLogManager.instance('log-control')
|
|
15
|
+
* .options(options)
|
|
16
|
+
* .build();
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @group KOS Model
|
|
20
|
+
* @category Device Logging
|
|
21
|
+
*/
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-interface
|
|
1
23
|
export interface KosLogManagerOptions {}
|
|
2
24
|
|
|
25
|
+
/**
|
|
26
|
+
* Standard log level names supported by the KOS logging system.
|
|
27
|
+
*
|
|
28
|
+
* These correspond to common logging levels with increasing severity:
|
|
29
|
+
* - trace: Most verbose, includes all debug information
|
|
30
|
+
* - debug: Detailed information for debugging
|
|
31
|
+
* - info: General information messages (default)
|
|
32
|
+
* - warn: Warning messages about potential issues
|
|
33
|
+
* - error: Error messages for serious problems
|
|
34
|
+
*
|
|
35
|
+
* @example Log Level Usage
|
|
36
|
+
* ```typescript
|
|
37
|
+
* const levels: LogLevelNames[] = ['trace', 'debug', 'info', 'warn', 'error'];
|
|
38
|
+
*
|
|
39
|
+
* // Set different levels for different components
|
|
40
|
+
* const productionLevel: LogLevelNames = 'warn';
|
|
41
|
+
* const developmentLevel: LogLevelNames = 'debug';
|
|
42
|
+
* const troubleshootingLevel: LogLevelNames = 'trace';
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* @group KOS Model
|
|
46
|
+
* @category Device Logging
|
|
47
|
+
*/
|
|
3
48
|
export type LogLevelNames = "trace" | "debug" | "info" | "warn" | "error";
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Log level override configuration for runtime log management.
|
|
52
|
+
*
|
|
53
|
+
* Used to dynamically change log levels for specific loggers or logger hierarchies
|
|
54
|
+
* without requiring application restart. Overrides are applied to the target logger
|
|
55
|
+
* and all child loggers whose names start with the override name.
|
|
56
|
+
*
|
|
57
|
+
* @example Creating Log Overrides
|
|
58
|
+
* ```typescript
|
|
59
|
+
* // Enable debug logging for all models
|
|
60
|
+
* const modelDebugOverride: LogOverride = {
|
|
61
|
+
* name: 'kos-ui-sdk.models',
|
|
62
|
+
* level: 'debug',
|
|
63
|
+
* type: 'UI',
|
|
64
|
+
* id: 'models-debug'
|
|
65
|
+
* };
|
|
66
|
+
*
|
|
67
|
+
* // Enable error-only logging for performance
|
|
68
|
+
* const performanceOverride: LogOverride = {
|
|
69
|
+
* name: 'kos-ui-sdk.services.heavy-computation',
|
|
70
|
+
* level: 'error',
|
|
71
|
+
* type: 'UI',
|
|
72
|
+
* id: 'perf-override'
|
|
73
|
+
* };
|
|
74
|
+
*
|
|
75
|
+
* // Troubleshooting override for specific component
|
|
76
|
+
* const troubleshootOverride: LogOverride = {
|
|
77
|
+
* name: 'kos-ui-sdk.models.log-stream',
|
|
78
|
+
* level: 'trace',
|
|
79
|
+
* type: 'UI',
|
|
80
|
+
* id: 'log-stream-debug'
|
|
81
|
+
* };
|
|
82
|
+
* ```
|
|
83
|
+
*
|
|
84
|
+
* @example Hierarchical Override Effects
|
|
85
|
+
* ```typescript
|
|
86
|
+
* // Setting 'kos-ui-sdk' affects all child loggers:
|
|
87
|
+
* const rootOverride: LogOverride = {
|
|
88
|
+
* name: 'kos-ui-sdk',
|
|
89
|
+
* level: 'debug',
|
|
90
|
+
* type: 'UI',
|
|
91
|
+
* id: 'sdk-debug'
|
|
92
|
+
* };
|
|
93
|
+
*
|
|
94
|
+
* // This affects:
|
|
95
|
+
* // - kos-ui-sdk.models.log-stream
|
|
96
|
+
* // - kos-ui-sdk.models.log-block
|
|
97
|
+
* // - kos-ui-sdk.services.api
|
|
98
|
+
* // - kos-ui-sdk.core.events
|
|
99
|
+
* // ... and all other loggers starting with 'kos-ui-sdk'
|
|
100
|
+
* ```
|
|
101
|
+
*
|
|
102
|
+
* @group KOS Model
|
|
103
|
+
* @category Device Logging
|
|
104
|
+
*/
|
|
4
105
|
export interface LogOverride {
|
|
106
|
+
/**
|
|
107
|
+
* Target log level to apply to the logger and its children.
|
|
108
|
+
*
|
|
109
|
+
* All loggers whose names start with the 'name' property will
|
|
110
|
+
* be set to this level until the override is removed.
|
|
111
|
+
*/
|
|
5
112
|
level: LogLevelNames;
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Logger name or prefix to target for the override.
|
|
116
|
+
*
|
|
117
|
+
* The override applies to this exact logger name and all loggers
|
|
118
|
+
* whose names start with this string. Use hierarchical naming
|
|
119
|
+
* like 'kos-ui-sdk.models' to target groups of related loggers.
|
|
120
|
+
*/
|
|
6
121
|
name: string;
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Type of override, typically 'UI' for KOS UI SDK overrides.
|
|
125
|
+
*
|
|
126
|
+
* Used to categorize and filter overrides by their source or purpose.
|
|
127
|
+
* Different types can be managed separately.
|
|
128
|
+
*/
|
|
7
129
|
type: string;
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Unique identifier for this override.
|
|
133
|
+
*
|
|
134
|
+
* Used to track and remove specific overrides. Should be unique
|
|
135
|
+
* within the system to prevent conflicts.
|
|
136
|
+
*/
|
|
8
137
|
id: string;
|
|
9
138
|
}
|
|
10
139
|
|
|
140
|
+
/**
|
|
141
|
+
* Logger information descriptor returned by the log manager REST API.
|
|
142
|
+
*
|
|
143
|
+
* Provides the current state of a logger including its name and active log level.
|
|
144
|
+
* Used for querying logger configurations and displaying current system state.
|
|
145
|
+
*
|
|
146
|
+
* @example Processing Logger Descriptors
|
|
147
|
+
* ```typescript
|
|
148
|
+
* // Get all loggers from the API
|
|
149
|
+
* const loggers: LogLevelDescriptor[] = await logManager.getAllLoggers();
|
|
150
|
+
*
|
|
151
|
+
* // Analyze logging configuration
|
|
152
|
+
* const debugLoggers = loggers.filter(l => l.level === 'debug');
|
|
153
|
+
* const errorOnlyLoggers = loggers.filter(l => l.level === 'error');
|
|
154
|
+
*
|
|
155
|
+
* console.log(`${debugLoggers.length} loggers in debug mode`);
|
|
156
|
+
* console.log(`${errorOnlyLoggers.length} loggers showing errors only`);
|
|
157
|
+
*
|
|
158
|
+
* // Find specific logger
|
|
159
|
+
* const streamLogger = loggers.find(l => l.name.includes('log-stream'));
|
|
160
|
+
* if (streamLogger) {
|
|
161
|
+
* console.log(`Log stream logger level: ${streamLogger.level}`);
|
|
162
|
+
* }
|
|
163
|
+
* ```
|
|
164
|
+
*
|
|
165
|
+
* @example Building Logger Management UI
|
|
166
|
+
* ```typescript
|
|
167
|
+
* // Use descriptors to build management interfaces
|
|
168
|
+
* const LoggerList: React.FC<{ loggers: LogLevelDescriptor[] }> = ({ loggers }) => (
|
|
169
|
+
* <div className="logger-list">
|
|
170
|
+
* {loggers.map(logger => (
|
|
171
|
+
* <div key={logger.name} className="logger-item">
|
|
172
|
+
* <span className="logger-name">{logger.name}</span>
|
|
173
|
+
* <span className={`logger-level level-${logger.level}`}>
|
|
174
|
+
* {logger.level.toUpperCase()}
|
|
175
|
+
* </span>
|
|
176
|
+
* </div>
|
|
177
|
+
* ))}
|
|
178
|
+
* </div>
|
|
179
|
+
* );
|
|
180
|
+
* ```
|
|
181
|
+
*
|
|
182
|
+
* @group KOS Model
|
|
183
|
+
* @category Device Logging
|
|
184
|
+
*/
|
|
11
185
|
export interface LogLevelDescriptor {
|
|
186
|
+
/**
|
|
187
|
+
* Full name of the logger.
|
|
188
|
+
*
|
|
189
|
+
* Typically follows hierarchical naming conventions like
|
|
190
|
+
* 'kos-ui-sdk.models.log-stream' or 'kos-ui-sdk.services.api'.
|
|
191
|
+
*/
|
|
12
192
|
name: string;
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Current active log level for this logger.
|
|
196
|
+
*
|
|
197
|
+
* Shows the effective level after all overrides have been applied.
|
|
198
|
+
* This is the level that determines which log messages are actually output.
|
|
199
|
+
*/
|
|
13
200
|
level: LogLevelNames;
|
|
14
201
|
}
|
|
@@ -2,7 +2,65 @@ import { DateBean, KosTimeOptions, TimeBean } from './types';
|
|
|
2
2
|
import { IKosDataModel, IKosModelLogger, KosContextLogger, KosCreationContext, PublicModelInterface } from '../../../core';
|
|
3
3
|
|
|
4
4
|
export declare const MODEL_TYPE = "kos-time-model";
|
|
5
|
+
/**
|
|
6
|
+
* KOS Time Model - System time management with real-time synchronization and timezone control.
|
|
7
|
+
*
|
|
8
|
+
* This singleton model provides centralized control over system time, date, and timezone settings
|
|
9
|
+
* with automatic event propagation when changes occur. Essential for applications that need to
|
|
10
|
+
* synchronize time-based operations, schedule events, or maintain consistent timestamps across
|
|
11
|
+
* the system.
|
|
12
|
+
*
|
|
13
|
+
* ## Key Features
|
|
14
|
+
* - **System Time Control** - Update system hours, minutes, and seconds programmatically
|
|
15
|
+
* - **Date Management** - Set system date including month, day, and year
|
|
16
|
+
* - **Timezone Handling** - Change and track timezone with automatic updates
|
|
17
|
+
* - **Real-time Events** - Automatic notifications when time, date, or timezone changes
|
|
18
|
+
* - **EventBus Integration** - Publishes changes to internal EventBus for UI updates
|
|
19
|
+
* - **WebSocket Sync** - Changes propagate across all connected clients
|
|
20
|
+
*
|
|
21
|
+
* ## Topic-Based Reactivity
|
|
22
|
+
* The model listens to three KOS topics for time synchronization:
|
|
23
|
+
* - **`/kos/time/time`** - Fired when system time changes (hour/minute/second)
|
|
24
|
+
* - **`/kos/time/day`** - Fired when the date changes (day rollover or manual change)
|
|
25
|
+
* - **`/kos/time/timezone`** - Fired when timezone is updated
|
|
26
|
+
*
|
|
27
|
+
* Additionally, the model publishes to internal EventBus topics:
|
|
28
|
+
* - `TIME_CHANGE` - For UI components to react to time updates
|
|
29
|
+
* - `DAY_CHANGE` - For date-dependent UI updates
|
|
30
|
+
* - `TIMEZONE_CHANGE` - For timezone-aware components
|
|
31
|
+
*
|
|
32
|
+
* ## Common Use Cases
|
|
33
|
+
* - **System Clock Management** - Synchronize device time with server time
|
|
34
|
+
* - **Scheduled Operations** - Trigger events based on time changes
|
|
35
|
+
* - **Multi-timezone Support** - Handle devices in different time zones
|
|
36
|
+
* - **Time-based UI Updates** - Keep clocks and calendars synchronized
|
|
37
|
+
* - **Audit Logging** - Ensure consistent timestamps across the system
|
|
38
|
+
* - **Day Rollover Handling** - Reset daily counters or refresh data
|
|
39
|
+
*
|
|
40
|
+
* @interface
|
|
41
|
+
* @example Basic Usage
|
|
42
|
+
* ```typescript
|
|
43
|
+
* const timeModel = KosTime.instance().build();
|
|
44
|
+
*
|
|
45
|
+
* // Update system time and date
|
|
46
|
+
* await timeModel.updateSystemTime({ hour: 15, min: 45, sec: 30 });
|
|
47
|
+
* await timeModel.updateSystemDate({ month: 3, day: 15, year: 2024 });
|
|
48
|
+
* await timeModel.updateSystemTimezone('America/New_York');
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* @group KOS Model
|
|
52
|
+
* @category System Integration
|
|
53
|
+
* @useDeclaredType
|
|
54
|
+
*
|
|
55
|
+
* @see {@link TimeBean} - Time value structure (hour, minute, second)
|
|
56
|
+
* @see {@link DateBean} - Date value structure (month, day, year)
|
|
57
|
+
* @see {@link KosTimeOptions} - Configuration options for time model
|
|
58
|
+
*/
|
|
5
59
|
export type KosTimeModel = PublicModelInterface<KosTimeModelImpl>;
|
|
60
|
+
/**
|
|
61
|
+
* @ignore
|
|
62
|
+
* @internal
|
|
63
|
+
*/
|
|
6
64
|
export declare class KosTimeModelImpl implements IKosModelLogger, IKosDataModel {
|
|
7
65
|
id: string;
|
|
8
66
|
logger: KosContextLogger;
|
|
@@ -28,9 +86,15 @@ export declare class KosTimeModelImpl implements IKosModelLogger, IKosDataModel
|
|
|
28
86
|
handleTimeChange(): void;
|
|
29
87
|
handleDayChange(): void;
|
|
30
88
|
handleTimeZoneChange(): Promise<void>;
|
|
89
|
+
/**
|
|
90
|
+
* @internal
|
|
91
|
+
*/
|
|
31
92
|
init(): Promise<void>;
|
|
32
93
|
private retrieveTimezone;
|
|
33
94
|
setTimezone(tz: string): void;
|
|
95
|
+
/**
|
|
96
|
+
* @internal
|
|
97
|
+
*/
|
|
34
98
|
load(): Promise<void>;
|
|
35
99
|
}
|
|
36
100
|
//# sourceMappingURL=kos-time-model.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kos-time-model.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-ui-sdk/src/models/models/kos-time/kos-time-model.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,eAAe,CAAC;AAIvB,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5E,eAAO,MAAM,UAAU,mBAAmB,CAAC;AAM3C,MAAM,MAAM,YAAY,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"kos-time-model.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-ui-sdk/src/models/models/kos-time/kos-time-model.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,eAAe,CAAC;AAIvB,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5E,eAAO,MAAM,UAAU,mBAAmB,CAAC;AAM3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,MAAM,MAAM,YAAY,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;AAElE;;;GAGG;AACH,qBACa,gBAAiB,YAAW,eAAe,EAAE,aAAa;IACrE,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;gBAEf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,kBAAkB;IAO7B;;;;OAIG;IACG,gBAAgB,CAAC,IAAI,EAAE,QAAQ;IAIrC;;;;OAIG;IACG,gBAAgB,CAAC,IAAI,EAAE,QAAQ;IAIrC;;;OAGG;IACG,oBAAoB,CAAC,QAAQ,EAAE,MAAM;IAK3C,gBAAgB,IAAI,IAAI;IAMxB,eAAe,IAAI,IAAI;IAMjB,oBAAoB;IAQ1B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAIb,gBAAgB;IAI9B,WAAW,CAAC,EAAE,EAAE,MAAM;IAItB;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAI5B"}
|
|
@@ -1,13 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Time value structure for system time operations.
|
|
3
|
+
*
|
|
4
|
+
* Represents a specific time of day with hour, minute, and second components.
|
|
5
|
+
* Used when updating system time through the KosTime model.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const morningTime: TimeBean = {
|
|
10
|
+
* hour: 9, // 9 AM (24-hour format)
|
|
11
|
+
* min: 30, // 30 minutes
|
|
12
|
+
* sec: 0 // 0 seconds
|
|
13
|
+
* };
|
|
14
|
+
*
|
|
15
|
+
* const afternoonTime: TimeBean = {
|
|
16
|
+
* hour: 15, // 3 PM (24-hour format)
|
|
17
|
+
* min: 45,
|
|
18
|
+
* sec: 30
|
|
19
|
+
* };
|
|
20
|
+
*
|
|
21
|
+
* await timeModel.updateSystemTime(morningTime);
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @category System Integration
|
|
25
|
+
* @category Time Management
|
|
26
|
+
*/
|
|
1
27
|
export interface TimeBean {
|
|
28
|
+
/** Hour in 24-hour format (0-23) */
|
|
2
29
|
hour: number;
|
|
30
|
+
/** Minutes (0-59) */
|
|
3
31
|
min: number;
|
|
32
|
+
/** Seconds (0-59) */
|
|
4
33
|
sec: number;
|
|
5
34
|
}
|
|
6
35
|
|
|
36
|
+
/**
|
|
37
|
+
* Date value structure for system date operations.
|
|
38
|
+
*
|
|
39
|
+
* Represents a specific calendar date with month, day, and year components.
|
|
40
|
+
* Used when updating system date through the KosTime model.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```typescript
|
|
44
|
+
* const newYear: DateBean = {
|
|
45
|
+
* month: 1, // January
|
|
46
|
+
* day: 1, // 1st
|
|
47
|
+
* year: 2024 // 2024
|
|
48
|
+
* };
|
|
49
|
+
*
|
|
50
|
+
* const independence: DateBean = {
|
|
51
|
+
* month: 7, // July
|
|
52
|
+
* day: 4, // 4th
|
|
53
|
+
* year: 2024
|
|
54
|
+
* };
|
|
55
|
+
*
|
|
56
|
+
* await timeModel.updateSystemDate(newYear);
|
|
57
|
+
* ```
|
|
58
|
+
*
|
|
59
|
+
* @category System Integration
|
|
60
|
+
* @category Time Management
|
|
61
|
+
*/
|
|
7
62
|
export interface DateBean {
|
|
63
|
+
/** Month (1-12, where 1 = January, 12 = December) */
|
|
8
64
|
month: number;
|
|
65
|
+
/** Day of the month (1-31, depending on month) */
|
|
9
66
|
day: number;
|
|
67
|
+
/** Full year (e.g., 2024) */
|
|
10
68
|
year: number;
|
|
11
69
|
}
|
|
12
70
|
|
|
71
|
+
/**
|
|
72
|
+
* Configuration options for KosTime model instances.
|
|
73
|
+
*
|
|
74
|
+
* Currently an empty interface but reserved for future time-related
|
|
75
|
+
* configuration options such as default timezone, time format preferences,
|
|
76
|
+
* or synchronization settings.
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```typescript
|
|
80
|
+
* const options: KosTimeOptions = {
|
|
81
|
+
* // Future options will be added here
|
|
82
|
+
* };
|
|
83
|
+
*
|
|
84
|
+
* const timeModel = KosTime.instance()
|
|
85
|
+
* .options(options)
|
|
86
|
+
* .build();
|
|
87
|
+
* ```
|
|
88
|
+
*
|
|
89
|
+
* @category Model Configuration
|
|
90
|
+
* @category System Integration
|
|
91
|
+
*/
|
|
92
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-interface
|
|
13
93
|
export interface KosTimeOptions {}
|
|
@@ -6,7 +6,139 @@ import { IKosDataModel, KosCreationContext } from '../../../core/core/kosModel';
|
|
|
6
6
|
import { IKosModelContainer } from '../../../core/core/kos-container-model';
|
|
7
7
|
|
|
8
8
|
export declare const MODEL_TYPE = "log-block-container-model";
|
|
9
|
+
/**
|
|
10
|
+
* Log Block Container Model - Manages multiple log blocks with automatic sorting and organization.
|
|
11
|
+
*
|
|
12
|
+
* This container model manages collections of LogBlockModel instances, providing organized access
|
|
13
|
+
* to log blocks with automatic sorting by block number. It serves as the storage layer within
|
|
14
|
+
* LogStreamModel instances, handling the efficient organization and retrieval of log blocks
|
|
15
|
+
* that make up a complete log stream.
|
|
16
|
+
*
|
|
17
|
+
* ## Key Features
|
|
18
|
+
* - **Automatic Sorting** - Maintains blocks sorted by block number for sequential access
|
|
19
|
+
* - **Block Management** - Add, remove, and retrieve log blocks efficiently
|
|
20
|
+
* - **Memory Organization** - Organized storage of log blocks within streams
|
|
21
|
+
* - **Stream Integration** - Essential component of LogStreamModel architecture
|
|
22
|
+
* - **Sequential Access** - Optimized for accessing blocks in chronological order
|
|
23
|
+
*
|
|
24
|
+
* ## Architecture Role
|
|
25
|
+
* The container fits into the log streaming architecture as:
|
|
26
|
+
* - **LogStreamModel** uses LogBlockContainerModel to organize its blocks
|
|
27
|
+
* - **LogBlockContainerModel** manages multiple LogBlockModel instances
|
|
28
|
+
* - **LogBlockModel** contains the actual log lines and metadata
|
|
29
|
+
* - Automatic sorting by blockNum ensures proper sequential log ordering
|
|
30
|
+
*
|
|
31
|
+
* ## Common Use Cases
|
|
32
|
+
* - **Stream Block Storage** - Central storage for all blocks within a log stream
|
|
33
|
+
* - **Sequential Block Access** - Navigate through log blocks in chronological order
|
|
34
|
+
* - **Block Organization** - Maintain sorted collections of log segments
|
|
35
|
+
* - **Memory Management** - Efficiently organize log data for stream processing
|
|
36
|
+
* - **Block Lifecycle** - Handle adding and removing blocks as streams evolve
|
|
37
|
+
*
|
|
38
|
+
* @example Container Usage Within Stream
|
|
39
|
+
* ```typescript
|
|
40
|
+
* // Typically used internally by LogStreamModel
|
|
41
|
+
* const logStream = LogStream.instance('system-logs').build();
|
|
42
|
+
* await logStream.load();
|
|
43
|
+
*
|
|
44
|
+
* // Access the container through the stream
|
|
45
|
+
* const blockContainer = logStream._blocks; // Internal container
|
|
46
|
+
* const blocks = logStream.blocks; // Public access to blocks
|
|
47
|
+
*
|
|
48
|
+
* // Container automatically sorts blocks by blockNum
|
|
49
|
+
* console.log(`Stream has ${blocks.length} blocks`);
|
|
50
|
+
* blocks.forEach(block => {
|
|
51
|
+
* console.log(`Block ${block.blockNum}: ${block.lineCount} lines`);
|
|
52
|
+
* });
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* @example Direct Container Operations
|
|
56
|
+
* ```typescript
|
|
57
|
+
* // Create container (typically done internally)
|
|
58
|
+
* const container = LogBlockContainer.instance('log-blocks')
|
|
59
|
+
* .options({})
|
|
60
|
+
* .build();
|
|
61
|
+
*
|
|
62
|
+
* // Add blocks to container
|
|
63
|
+
* const block1 = LogBlock.instance('block-1')
|
|
64
|
+
* .options({
|
|
65
|
+
* nodeId: 'primary',
|
|
66
|
+
* stream: 'app-logs',
|
|
67
|
+
* blockNum: 1,
|
|
68
|
+
* startLineNum: 1,
|
|
69
|
+
* endLineNum: 100,
|
|
70
|
+
* startTime: new Date('2024-01-01T10:00:00Z'),
|
|
71
|
+
* endTime: new Date('2024-01-01T10:05:00Z'),
|
|
72
|
+
* lineCount: 100
|
|
73
|
+
* })
|
|
74
|
+
* .build();
|
|
75
|
+
*
|
|
76
|
+
* const block2 = LogBlock.instance('block-2')
|
|
77
|
+
* .options({
|
|
78
|
+
* nodeId: 'primary',
|
|
79
|
+
* stream: 'app-logs',
|
|
80
|
+
* blockNum: 2,
|
|
81
|
+
* startLineNum: 101,
|
|
82
|
+
* endLineNum: 200,
|
|
83
|
+
* startTime: new Date('2024-01-01T10:05:00Z'),
|
|
84
|
+
* endTime: new Date('2024-01-01T10:10:00Z'),
|
|
85
|
+
* lineCount: 100
|
|
86
|
+
* })
|
|
87
|
+
* .build();
|
|
88
|
+
*
|
|
89
|
+
* container.addModel(block1);
|
|
90
|
+
* container.addModel(block2);
|
|
91
|
+
*
|
|
92
|
+
* // Blocks are automatically sorted by blockNum
|
|
93
|
+
* const sortedBlocks = container.data;
|
|
94
|
+
* console.log(`First block: ${sortedBlocks[0].blockNum}`); // 1
|
|
95
|
+
* console.log(`Second block: ${sortedBlocks[1].blockNum}`); // 2
|
|
96
|
+
* ```
|
|
97
|
+
*
|
|
98
|
+
* @example React Block List Component
|
|
99
|
+
* ```typescript
|
|
100
|
+
* const BlockList: React.FC<{ container: LogBlockContainerModel }> = kosComponent(({ container }) => {
|
|
101
|
+
* return (
|
|
102
|
+
* <div className="block-list">
|
|
103
|
+
* <h3>Log Blocks ({container.data.length})</h3>
|
|
104
|
+
* <div className="blocks">
|
|
105
|
+
* {container.data.map(block => (
|
|
106
|
+
* <div key={block.id} className="block-item">
|
|
107
|
+
* <div className="block-header">
|
|
108
|
+
* <span className="block-num">Block {block.blockNum}</span>
|
|
109
|
+
* <span className="line-range">
|
|
110
|
+
* Lines {block.startLineNum}-{block.endLineNum}
|
|
111
|
+
* </span>
|
|
112
|
+
* </div>
|
|
113
|
+
* <div className="block-details">
|
|
114
|
+
* <span>Stream: {block.stream}</span>
|
|
115
|
+
* <span>Lines: {block.lineCount}</span>
|
|
116
|
+
* <span>Loaded: {block.lines.length}</span>
|
|
117
|
+
* </div>
|
|
118
|
+
* <div className="block-time">
|
|
119
|
+
* {block.startTime.toLocaleString()} - {block.endTime.toLocaleString()}
|
|
120
|
+
* </div>
|
|
121
|
+
* </div>
|
|
122
|
+
* ))}
|
|
123
|
+
* </div>
|
|
124
|
+
* </div>
|
|
125
|
+
* );
|
|
126
|
+
* });
|
|
127
|
+
* ```
|
|
128
|
+
*
|
|
129
|
+
* @group KOS Model
|
|
130
|
+
* @category Device Logging
|
|
131
|
+
* @interface
|
|
132
|
+
*
|
|
133
|
+
* @see {@link LogStreamModel} - Parent stream model that uses this container
|
|
134
|
+
* @see {@link LogBlockModel} - Individual log blocks managed by this container
|
|
135
|
+
* @see {@link LogBlockContainerOptions} - Configuration options for the container
|
|
136
|
+
*/
|
|
9
137
|
export type LogBlockContainerModel = PublicModelInterface<LogBlockContainerModelImpl>;
|
|
138
|
+
/**
|
|
139
|
+
* @ignore
|
|
140
|
+
* @internal
|
|
141
|
+
*/
|
|
10
142
|
export declare class LogBlockContainerModelImpl implements IKosIdentifiable, IKosModelHolder<LogBlockModel>, IKosDataModel {
|
|
11
143
|
id: string;
|
|
12
144
|
private logger;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-block-container-model.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-ui-sdk/src/models/models/log-block/log-block-container-model.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EACV,aAAa,EAEb,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAExD,eAAO,MAAM,UAAU,8BAA8B,CAAC;AAEtD,MAAM,MAAM,sBAAsB,GAChC,oBAAoB,CAAC,0BAA0B,CAAC,CAAC;AAEnD,qBACa,0BACX,YAAW,gBAAgB,EAAE,eAAe,CAAC,aAAa,CAAC,EAAE,aAAa;IAE1E,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,MAAM,CAAmB;IACvB,OAAO,CAAC,OAAO,CAAoC;gBAE3D,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,wBAAwB,EACjC,OAAO,EAAE,kBAAkB;IAa7B,QAAQ,CAAC,EAAE,EAAE,MAAM;IAGnB,IAAI,MAAM,sCAET;IACD,IAAI,IAAI,oBAEP;IAED,QAAQ,CAAC,KAAK,EAAE,aAAa;IAI7B,WAAW,CAAC,EAAE,EAAE,MAAM;IAKhB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5B"}
|
|
1
|
+
{"version":3,"file":"log-block-container-model.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-ui-sdk/src/models/models/log-block/log-block-container-model.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EACV,aAAa,EAEb,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAExD,eAAO,MAAM,UAAU,8BAA8B,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+HG;AACH,MAAM,MAAM,sBAAsB,GAChC,oBAAoB,CAAC,0BAA0B,CAAC,CAAC;AAEnD;;;GAGG;AACH,qBACa,0BACX,YAAW,gBAAgB,EAAE,eAAe,CAAC,aAAa,CAAC,EAAE,aAAa;IAE1E,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,MAAM,CAAmB;IACvB,OAAO,CAAC,OAAO,CAAoC;gBAE3D,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,wBAAwB,EACjC,OAAO,EAAE,kBAAkB;IAa7B,QAAQ,CAAC,EAAE,EAAE,MAAM;IAGnB,IAAI,MAAM,sCAET;IACD,IAAI,IAAI,oBAEP;IAED,QAAQ,CAAC,KAAK,EAAE,aAAa;IAI7B,WAAW,CAAC,EAAE,EAAE,MAAM;IAKhB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5B"}
|