@kosdev-code/kos-ui-sdk 2.0.33 → 2.0.35

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.
Files changed (86) hide show
  1. package/common/events/async-event-bus.d.ts +96 -0
  2. package/common/events/async-event-bus.d.ts.map +1 -0
  3. package/core/core/context/kos-context-manager.d.ts +1 -0
  4. package/core/core/context/kos-context-manager.d.ts.map +1 -1
  5. package/core/core/decorators/index.d.ts +1 -0
  6. package/core/core/decorators/index.d.ts.map +1 -1
  7. package/core/core/decorators/kos-http-decorators.d.ts +110 -0
  8. package/core/core/decorators/kos-http-decorators.d.ts.map +1 -0
  9. package/core/core/decorators/kos-topic-handler-flow-control.d.ts +130 -0
  10. package/core/core/decorators/kos-topic-handler-flow-control.d.ts.map +1 -0
  11. package/core/core/decorators/kosTopicHandler.d.ts +97 -3
  12. package/core/core/decorators/kosTopicHandler.d.ts.map +1 -1
  13. package/core/core/decorators/propKeys.d.ts +1 -0
  14. package/core/core/decorators/propKeys.d.ts.map +1 -1
  15. package/core/core/kosModel.d.ts +4 -0
  16. package/core/core/kosModel.d.ts.map +1 -1
  17. package/core/core/log/log.d.ts +3 -3
  18. package/core/core/log/log.d.ts.map +1 -1
  19. package/core/core/model/kos-http-route-manager.d.ts +85 -0
  20. package/core/core/model/kos-http-route-manager.d.ts.map +1 -0
  21. package/core/core/model/kos-model-component-factory.d.ts +2 -0
  22. package/core/core/model/kos-model-component-factory.d.ts.map +1 -1
  23. package/core/core/model/kos-subscription-manager.d.ts +11 -0
  24. package/core/core/model/kos-subscription-manager.d.ts.map +1 -1
  25. package/core/core/model/model-introspection-utils.d.ts +1 -0
  26. package/core/core/model/model-introspection-utils.d.ts.map +1 -1
  27. package/core/core/model-instantiator.d.ts.map +1 -1
  28. package/core/core/services/browser-router.d.ts +20 -0
  29. package/core/core/services/browser-router.d.ts.map +1 -1
  30. package/core/core/services/index.d.ts +1 -0
  31. package/core/core/services/index.d.ts.map +1 -1
  32. package/core/util/feature-flags.d.ts +3 -0
  33. package/core/util/feature-flags.d.ts.map +1 -1
  34. package/core/util/kos-service-request.d.ts +1 -1
  35. package/core/util/kos-service-request.d.ts.map +1 -1
  36. package/index.cjs +73 -73
  37. package/index.cjs.map +1 -1
  38. package/index.d.cts +1 -0
  39. package/index.d.ts +1 -0
  40. package/index.d.ts.map +1 -1
  41. package/index.js +7716 -6468
  42. package/index.js.map +1 -1
  43. package/models/models/browser-router/browser-router-model.d.ts +20 -0
  44. package/models/models/browser-router/browser-router-model.d.ts.map +1 -1
  45. package/models/models/canvas-dispatcher/canvas-dispatcher-model.d.ts +5 -1
  46. package/models/models/canvas-dispatcher/canvas-dispatcher-model.d.ts.map +1 -1
  47. package/models/models/canvas-dispatcher/types/index.d.ts +48 -3
  48. package/models/models/canvas-dispatcher/utils/renderers/looping-video-renderer.d.ts +30 -0
  49. package/models/models/canvas-dispatcher/utils/renderers/looping-video-renderer.d.ts.map +1 -0
  50. package/models/models/canvas-dispatcher/utils/renderers/matrix-renderer.d.ts +16 -1
  51. package/models/models/canvas-dispatcher/utils/renderers/matrix-renderer.d.ts.map +1 -1
  52. package/models/models/canvas-dispatcher/utils/renderers/renderer-factory.d.ts.map +1 -1
  53. package/models/models/canvas-dispatcher/utils/renderers/scrolling-image-renderer.d.ts +38 -0
  54. package/models/models/canvas-dispatcher/utils/renderers/scrolling-image-renderer.d.ts.map +1 -0
  55. package/models/models/canvas-dispatcher/utils/renderers/sequence-renderer.d.ts +46 -0
  56. package/models/models/canvas-dispatcher/utils/renderers/sequence-renderer.d.ts.map +1 -0
  57. package/models/models/canvas-renderer/canvas-renderer-model.d.ts +4 -1
  58. package/models/models/canvas-renderer/canvas-renderer-model.d.ts.map +1 -1
  59. package/models/models/index.d.ts +1 -0
  60. package/models/models/index.d.ts.map +1 -1
  61. package/models/models/kos-log-manager/index.d.ts +5 -0
  62. package/models/models/kos-log-manager/index.d.ts.map +1 -0
  63. package/models/models/kos-log-manager/kos-log-manager-model.d.ts +92 -0
  64. package/models/models/kos-log-manager/kos-log-manager-model.d.ts.map +1 -0
  65. package/models/models/kos-log-manager/kos-log-manager-registration.d.ts +92 -0
  66. package/models/models/kos-log-manager/kos-log-manager-registration.d.ts.map +1 -0
  67. package/models/models/kos-log-manager/services/index.d.ts +2 -0
  68. package/models/models/kos-log-manager/services/index.d.ts.map +1 -0
  69. package/models/models/kos-log-manager/services/kos-log-manager-services.d.ts +12 -0
  70. package/models/models/kos-log-manager/services/kos-log-manager-services.d.ts.map +1 -0
  71. package/models/models/kos-log-manager/types/index.d.ts +14 -0
  72. package/models/models/studio-properties/services/studio-properties-services.d.ts +3 -3
  73. package/models/models/studio-properties/services/studio-properties-services.d.ts.map +1 -1
  74. package/models/models/studio-properties/studio-properties-model.d.ts.map +1 -1
  75. package/models/models/trouble/index.d.ts +1 -0
  76. package/models/models/trouble/index.d.ts.map +1 -1
  77. package/models/models/trouble/trouble-model.d.ts.map +1 -1
  78. package/models/models/trouble/types/index.d.ts +353 -9
  79. package/models/models/trouble/utils/is-trouble-aware.d.ts +98 -0
  80. package/models/models/trouble/utils/is-trouble-aware.d.ts.map +1 -0
  81. package/models/utils/client.d.ts +5 -1
  82. package/models/utils/client.d.ts.map +1 -1
  83. package/models/utils/core-registration-manager.d.ts.map +1 -1
  84. package/models/utils/service.d.ts +11 -6
  85. package/models/utils/service.d.ts.map +1 -1
  86. package/package.json +2 -2
@@ -11,6 +11,26 @@ export declare class BrowserRouterModelImpl implements IKosDataModel, IKosIdenti
11
11
  get id(): string;
12
12
  private handleRequest;
13
13
  use<TPath extends string = string>(method: KosMethodTypes, path: TPath, ...middlewares: KosMiddleware<TPath>[]): void;
14
+ /**
15
+ * Remove routes matching the given method and path
16
+ * @param method HTTP method (GET, POST, etc.)
17
+ * @param path Route path pattern
18
+ * @returns Number of routes removed
19
+ */
20
+ remove(method: KosMethodTypes, path: string): number;
21
+ /**
22
+ * Remove all routes matching a path pattern (regardless of method)
23
+ * @param path Route path pattern
24
+ * @returns Number of routes removed
25
+ */
26
+ removeAllForPath(path: string): number;
27
+ /**
28
+ * Get all registered routes (for debugging/monitoring)
29
+ */
30
+ getRoutes(): Array<{
31
+ method: string;
32
+ path: string;
33
+ }>;
14
34
  init(): Promise<void>;
15
35
  load(): Promise<void>;
16
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"browser-router-model.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-ui-sdk/src/models/models/browser-router/browser-router-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EAErB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,aAAa,EAKlB,KAAK,oBAAoB,EAE1B,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,eAAO,MAAM,UAAU,yBAAyB,CAAC;AAIjD,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,oBAAoB,CAAC,sBAAsB,CAAC,EAC5C,MAAM,GAAG,MAAM,CAChB,CAAC;AAEF,qBACa,sBAAuB,YAAW,aAAa,EAAE,gBAAgB;IAC5E,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,MAAM,CAAmB;IAEjC,OAAO,CAAC,MAAM,CAAmB;gBAE/B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,kBAAkB;IAO7B,IAAI,EAAE,IAAI,MAAM,CAEf;YAKa,aAAa;IA0C3B,GAAG,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,EAC/B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,KAAK,EACX,GAAG,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,GACrC,IAAI;IAKD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5B"}
1
+ {"version":3,"file":"browser-router-model.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-ui-sdk/src/models/models/browser-router/browser-router-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EAErB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,aAAa,EAKlB,KAAK,oBAAoB,EAE1B,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,eAAO,MAAM,UAAU,yBAAyB,CAAC;AAIjD,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,oBAAoB,CAAC,sBAAsB,CAAC,EAC5C,MAAM,GAAG,MAAM,CAChB,CAAC;AAEF,qBACa,sBAAuB,YAAW,aAAa,EAAE,gBAAgB;IAC5E,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,MAAM,CAAmB;IAEjC,OAAO,CAAC,MAAM,CAAmB;gBAE/B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,kBAAkB;IAO7B,IAAI,EAAE,IAAI,MAAM,CAEf;YAKa,aAAa;IA0C3B,GAAG,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,EAC/B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,KAAK,EACX,GAAG,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,GACrC,IAAI;IAIP;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAIpD;;;;OAIG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAItC;;OAEG;IACH,SAAS,IAAI,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAK9C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5B"}
@@ -2,6 +2,7 @@ import { CanvasDispatcherOptions, EndpointData, RenderDataSpecification, Rendere
2
2
  import { CanvasRendererModel } from '../canvas-renderer';
3
3
  import { PublicModelInterface } from '../../../core/types';
4
4
  import { IKosIdentifiable } from '../../../core/core/types';
5
+ import { KosRequest, KosResponse } from '../../../core/core/services/browser-router';
5
6
  import { IKosDataModel, KosCreationContext } from '../../../core/core/kosModel';
6
7
  import { KosContext } from '../../../core';
7
8
 
@@ -13,13 +14,16 @@ export declare class CanvasDispatcherModelImpl implements IKosDataModel, IKosIde
13
14
  private _content;
14
15
  private _patterns;
15
16
  private _endpointRenderers;
16
- private router;
17
17
  pattern?: RendererMode;
18
18
  data?: RenderDataSpecification<any> | null;
19
19
  constructor(modelId: string, _options: CanvasDispatcherOptions, context: KosCreationContext);
20
20
  addNamedEndpoint(name: string, data: EndpointData): CanvasRendererModel;
21
21
  addContent(name: string, contentUrl: string): void;
22
22
  addPattern(name: string, data: RenderSpecification<any>): void;
23
+ handlePatternsPost(req: KosRequest<"/api/ui/canvas/patterns">, res: KosResponse): Promise<void>;
24
+ handlePatternApplication(req: KosRequest<"/api/ui/canvas/pattern/:endpoint/:pattern">, res: KosResponse): Promise<void>;
25
+ handleColorApplication(req: KosRequest<"/api/ui/canvas/color/:endpoint/:color">, res: KosResponse): Promise<void>;
26
+ handleEndpointCreation(req: KosRequest<"/api/ui/canvas/endpoint">, res: KosResponse): Promise<void>;
23
27
  load(context?: KosContext): Promise<void>;
24
28
  }
25
29
  //# sourceMappingURL=canvas-dispatcher-model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"canvas-dispatcher-model.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-ui-sdk/src/models/models/canvas-dispatcher/canvas-dispatcher-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,eAAe,CAAC;AAMvB,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;AAEhE,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,OAAO,KAAK,EACV,uBAAuB,EACvB,YAAY,EACZ,uBAAuB,EACvB,YAAY,EACZ,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAGjB,eAAO,MAAM,UAAU,4BAA4B,CAAC;AAEpD,MAAM,MAAM,qBAAqB,GAC/B,oBAAoB,CAAC,yBAAyB,CAAC,CAAC;AA0BlD,qBACa,yBACX,YAAW,aAAa,EAAE,gBAAgB;IAE1C,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,MAAM,CAAmB;IAEjC,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,SAAS,CAAoD;IAGrE,OAAO,CAAC,kBAAkB,CAA0C;IAIpE,OAAO,CAAC,MAAM,CAAoB;IAElC,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,IAAI,CAAC,EAAE,uBAAuB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBAGzC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,uBAAuB,EACjC,OAAO,EAAE,kBAAkB;IAO7B,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY;IAoBjD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAO3C,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,CAAC,GAAG,CAAC;IASjD,IAAI,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CA4GhD"}
1
+ {"version":3,"file":"canvas-dispatcher-model.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-ui-sdk/src/models/models/canvas-dispatcher/canvas-dispatcher-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EACV,aAAa,EAEb,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACZ,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,OAAO,KAAK,EACV,uBAAuB,EACvB,YAAY,EACZ,uBAAuB,EACvB,YAAY,EACZ,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAGjB,eAAO,MAAM,UAAU,4BAA4B,CAAC;AAEpD,MAAM,MAAM,qBAAqB,GAC/B,oBAAoB,CAAC,yBAAyB,CAAC,CAAC;AA0BlD,qBACa,yBACX,YAAW,aAAa,EAAE,gBAAgB;IAE1C,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,MAAM,CAAmB;IAEjC,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,SAAS,CAAoD;IAGrE,OAAO,CAAC,kBAAkB,CAA0C;IAIpE,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,IAAI,CAAC,EAAE,uBAAuB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBAGzC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,uBAAuB,EACjC,OAAO,EAAE,kBAAkB;IAO7B,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY;IAoBjD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAO3C,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,CAAC,GAAG,CAAC;IAUjD,kBAAkB,CACtB,GAAG,EAAE,UAAU,CAAC,yBAAyB,CAAC,EAC1C,GAAG,EAAE,WAAW;IAuBZ,wBAAwB,CAC5B,GAAG,EAAE,UAAU,CAAC,2CAA2C,CAAC,EAC5D,GAAG,EAAE,WAAW;IAwCZ,sBAAsB,CAC1B,GAAG,EAAE,UAAU,CAAC,uCAAuC,CAAC,EACxD,GAAG,EAAE,WAAW;IA+BZ,sBAAsB,CAC1B,GAAG,EAAE,UAAU,CAAC,yBAAyB,CAAC,EAC1C,GAAG,EAAE,WAAW;IAgBZ,IAAI,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAYhD"}
@@ -25,29 +25,71 @@ declare interface OneShotCapable extends DoneAware {
25
25
 
26
26
  declare type RendererOptions = "sweep" | "matrix" | "video" | "drop" | "none";
27
27
 
28
- declare type RendererMode = "video" | "image" | "color";
28
+ declare type RendererMode = "video" | "image" | "color" | "sequence" | "matrix";
29
29
  declare interface RenderSpecification<T extends RendererMode> {
30
30
  type: T;
31
31
  id: string;
32
32
  data: RenderDataSpecification<T>;
33
+ clearOnComplete?: boolean; // Optional: clear canvas when renderer completes (default depends on renderer type)
33
34
  }
34
35
 
35
36
  declare interface SourceRenderDataSpecification {
36
37
  src: string;
37
38
  }
38
39
 
40
+ declare interface VideoRenderDataSpecification extends SourceRenderDataSpecification {
41
+ loop?: boolean | number; // true = infinite, number = specific loop count
42
+ startTime?: number; // optional start time in seconds
43
+ endTime?: number; // optional end time in seconds
44
+ }
45
+
46
+ declare interface ImageRenderDataSpecification extends SourceRenderDataSpecification {
47
+ duration?: number; // how long to display in milliseconds
48
+ loop?: boolean | number; // for cycling through multiple images or repeating display
49
+ fadeIn?: number; // optional fade in duration in ms
50
+ fadeOut?: number; // optional fade out duration in ms
51
+ scroll?: {
52
+ enabled: boolean;
53
+ direction?: 'left' | 'right' | 'up' | 'down'; // default: 'left'
54
+ speed?: number; // pixels per second, default: 50
55
+ gap?: number; // gap between image repetitions in pixels, default: 0
56
+ maintainAspectRatio?: boolean; // default: true
57
+ height?: number; // explicit height (width calculated from aspect ratio)
58
+ width?: number; // explicit width (height calculated from aspect ratio)
59
+ offsetX?: number | 'center'; // X position (default: 'center' for vertical scroll, 0 for horizontal)
60
+ offsetY?: number | 'center'; // Y position (default: 'center' for horizontal scroll, 0 for vertical)
61
+ };
62
+ }
63
+
39
64
  declare interface ColorRenderDataSpecification {
40
65
  r: number;
41
66
  g: number;
42
67
  b: number;
43
68
  }
44
69
 
70
+ declare interface SequenceRenderDataSpecification {
71
+ patterns: string[]; // Array of pattern IDs to play in sequence
72
+ loop?: boolean | number; // Loop the entire sequence
73
+ transitionDuration?: number; // Optional transition time between patterns in ms
74
+ patternOverrides?: Record<string, any>; // Optional overrides for specific patterns
75
+ }
76
+
77
+ declare interface MatrixRenderDataSpecification {
78
+ speed?: number; // How many pixels each column advances per update (default: 1)
79
+ fallChance?: number; // Probability (0 to 1) that a column will fall on each frame (default: 0.7)
80
+ baseColor?: { r: number; g: number; b: number }; // Base RGB color for the matrix effect
81
+ }
82
+
45
83
  declare type RenderDataSpecification<T extends RendererMode> = T extends "video"
46
- ? SourceRenderDataSpecification
84
+ ? VideoRenderDataSpecification
47
85
  : T extends "image"
48
- ? SourceRenderDataSpecification
86
+ ? ImageRenderDataSpecification
49
87
  : T extends "color"
50
88
  ? ColorRenderDataSpecification
89
+ : T extends "sequence"
90
+ ? SequenceRenderDataSpecification
91
+ : T extends "matrix"
92
+ ? MatrixRenderDataSpecification
51
93
  : any;
52
94
 
53
95
  declare type VideoRenderData = RenderSpecification<"video">;
@@ -56,10 +98,13 @@ declare type ImageRenderData = RenderSpecification<"image">;
56
98
 
57
99
  declare type ColorRenderData = RenderSpecification<"color">;
58
100
 
101
+ declare type MatrixRenderData = RenderSpecification<"matrix">;
102
+
59
103
  declare type RenderData =
60
104
  | VideoRenderData
61
105
  | ImageRenderData
62
106
  | ColorRenderData
107
+ | MatrixRenderData
63
108
  | any;
64
109
 
65
110
  declare interface EndpointData {
@@ -0,0 +1,30 @@
1
+ import { VideoRendererBase } from './base/video-base-renderer';
2
+ import { VideoRenderDataSpecification } from '../../types';
3
+
4
+ /**
5
+ * Enhanced video renderer with configurable looping support.
6
+ *
7
+ * Supports:
8
+ * - Infinite looping (loop: true)
9
+ * - Fixed number of loops (loop: number)
10
+ * - Single play (loop: false or undefined)
11
+ * - Start/end time trimming
12
+ */
13
+ export declare class LoopingVideoRenderer extends VideoRendererBase {
14
+ private loopConfig;
15
+ private currentLoopCount;
16
+ private startTime;
17
+ private endTime;
18
+ private completionCallback;
19
+ constructor(data: VideoRenderDataSpecification);
20
+ private handleTimeUpdate;
21
+ private handleVideoEnd;
22
+ reset(): void;
23
+ onDone(callback: () => void): void;
24
+ /**
25
+ * Returns true if this renderer should only play once (no looping)
26
+ */
27
+ isOneShot(): boolean;
28
+ dispose(): void;
29
+ }
30
+ //# sourceMappingURL=looping-video-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"looping-video-renderer.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/sdk/kos-ui-sdk/src/models/models/canvas-dispatcher/utils/renderers/looping-video-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D;;;;;;;;GAQG;AACH,qBAAa,oBAAqB,SAAQ,iBAAiB;IACzD,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,kBAAkB,CAA6B;gBAE3C,IAAI,EAAE,4BAA4B;IAsB9C,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,cAAc;IAmBb,KAAK,IAAI,IAAI;IAMb,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAI3C;;OAEG;IACH,SAAS,IAAI,OAAO;IAIX,OAAO,IAAI,IAAI;CAMzB"}
@@ -14,16 +14,31 @@ export declare class MatrixRenderer extends Canvas2DRendererBase implements Rend
14
14
  private fallChance;
15
15
  /** Vertical step size (in pixels) for falling columns */
16
16
  private speed;
17
+ /** Base color for the matrix rain effect */
18
+ private baseColor;
19
+ /** Calculated colors for different trail positions */
20
+ private trailColors;
17
21
  /**
18
22
  * Constructs a Matrix-style renderer.
19
23
  *
20
24
  * @param speed - How many pixels each column advances per update (default: 1)
21
25
  * @param fallChance - Probability (0 to 1) that a column will fall on each frame (default: 0.7)
26
+ * @param baseColor - Base RGB color for the matrix effect (default: cyan { r: 0, g: 255, b: 255 })
22
27
  */
23
- constructor({ speed, fallChance, }?: {
28
+ constructor({ speed, fallChance, baseColor, }?: {
24
29
  speed?: number;
25
30
  fallChance?: number;
31
+ baseColor?: {
32
+ r: number;
33
+ g: number;
34
+ b: number;
35
+ };
26
36
  });
37
+ /**
38
+ * Calculates the trail colors based on the base color.
39
+ * Creates a gradient from bright to dim for the trailing effect.
40
+ */
41
+ private calculateTrailColors;
27
42
  /**
28
43
  * Resets all column positions and timing state.
29
44
  */
@@ -1 +1 @@
1
- {"version":3,"file":"matrix-renderer.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/sdk/kos-ui-sdk/src/models/models/canvas-dispatcher/utils/renderers/matrix-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,oBAAqB,YAAW,QAAQ;IAC1E,oEAAoE;IACpE,OAAO,CAAC,OAAO,CAAgB;IAE/B,8DAA8D;IAC9D,OAAO,CAAC,UAAU,CAAS;IAE3B,yDAAyD;IACzD,OAAO,CAAC,KAAK,CAAS;IAEtB;;;;;OAKG;gBACS,EACV,KAAS,EACT,UAAgB,GACjB,GAAE;QACD,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;KAChB;IAMN;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;;;;OAKG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAkDjD"}
1
+ {"version":3,"file":"matrix-renderer.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/sdk/kos-ui-sdk/src/models/models/canvas-dispatcher/utils/renderers/matrix-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,oBAAqB,YAAW,QAAQ;IAC1E,oEAAoE;IACpE,OAAO,CAAC,OAAO,CAAgB;IAE/B,8DAA8D;IAC9D,OAAO,CAAC,UAAU,CAAS;IAE3B,yDAAyD;IACzD,OAAO,CAAC,KAAK,CAAS;IAEtB,4CAA4C;IAC5C,OAAO,CAAC,SAAS,CAAsC;IAEvD,sDAAsD;IACtD,OAAO,CAAC,WAAW,CAA6C;IAEhE;;;;;;OAMG;gBACS,EACV,KAAS,EACT,UAAgB,EAChB,SAAS,GACV,GAAE;QACD,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC5C;IAYN;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAkB5B;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;;;;OAKG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAuDjD"}
@@ -1 +1 @@
1
- {"version":3,"file":"renderer-factory.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/sdk/kos-ui-sdk/src/models/models/canvas-dispatcher/utils/renderers/renderer-factory.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,uBAAuB,EACvB,QAAQ,EAER,YAAY,EACb,MAAM,aAAa,CAAC;AAuCrB;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,WAAW,4CAGrB;IACD,IAAI,EAAE,CAAC,CAAC;IACR,IAAI,CAAC,EAAE,wBAAwB,CAAC,CAAC,GAAG,IAAI,CAAC;CAC1C,KAAG,QAAQ,GAAG,IAQd,CAAC"}
1
+ {"version":3,"file":"renderer-factory.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/sdk/kos-ui-sdk/src/models/models/canvas-dispatcher/utils/renderers/renderer-factory.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,uBAAuB,EACvB,QAAQ,EAER,YAAY,EACb,MAAM,aAAa,CAAC;AA6DrB;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,WAAW,4CAGrB;IACD,IAAI,EAAE,CAAC,CAAC;IACR,IAAI,CAAC,EAAE,wBAAwB,CAAC,CAAC,GAAG,IAAI,CAAC;CAC1C,KAAG,QAAQ,GAAG,IAQd,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { Canvas2DRendererBase } from './base/canvas-2d-renderer';
2
+ import { DoneAware, ImageRenderDataSpecification, Renderer } from '../../types';
3
+
4
+ /**
5
+ * Enhanced image renderer with scrolling capabilities.
6
+ *
7
+ * Features:
8
+ * - Smooth scrolling in any direction
9
+ * - Configurable speed and gap
10
+ * - Looping support
11
+ * - Completion events when scroll finishes (if not looping)
12
+ */
13
+ export declare class ScrollingImageRenderer extends Canvas2DRendererBase implements Renderer, DoneAware {
14
+ private img;
15
+ private loaded;
16
+ private scrollConfig;
17
+ private loopConfig;
18
+ private duration;
19
+ private position;
20
+ private startTime;
21
+ private lastFrameTime;
22
+ private currentLoopCount;
23
+ private completionCallback;
24
+ private isPlaying;
25
+ private completed;
26
+ constructor(data: ImageRenderDataSpecification);
27
+ reset(): void;
28
+ play(): void;
29
+ pause(): void;
30
+ renderFrame(width: number, height: number): void;
31
+ private drawScrollingImage;
32
+ private checkScrollCompletion;
33
+ private handleCompletion;
34
+ onDone(callback: () => void): void;
35
+ isOneShot(): boolean;
36
+ dispose(): void;
37
+ }
38
+ //# sourceMappingURL=scrolling-image-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scrolling-image-renderer.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/sdk/kos-ui-sdk/src/models/models/canvas-dispatcher/utils/renderers/scrolling-image-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,4BAA4B,EAC5B,QAAQ,EACT,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;;;;;;GAQG;AACH,qBAAa,sBACX,SAAQ,oBACR,YAAW,QAAQ,EAAE,SAAS;IAE9B,OAAO,CAAC,GAAG,CAAmB;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAyC;IAC7D,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;gBAEd,IAAI,EAAE,4BAA4B;IAoBrC,KAAK,IAAI,IAAI;IAStB,IAAI,IAAI,IAAI;IAQZ,KAAK,IAAI,IAAI;IAIJ,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAoEzD,OAAO,CAAC,kBAAkB;IAgL1B,OAAO,CAAC,qBAAqB;IA0G7B,OAAO,CAAC,gBAAgB;IAQxB,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAIlC,SAAS,IAAI,OAAO;IAIX,OAAO,IAAI,IAAI;CAIzB"}
@@ -0,0 +1,46 @@
1
+ import { DoneAware, Renderer, SequenceRenderDataSpecification, RenderSpecification } from '../../types';
2
+
3
+ /**
4
+ * A renderer that plays multiple patterns in sequence.
5
+ *
6
+ * Features:
7
+ * - Plays patterns in order from a list of pattern IDs
8
+ * - Supports looping the entire sequence
9
+ * - Handles transitions between patterns
10
+ * - Emits completion when all patterns have played
11
+ */
12
+ export declare class SequenceRenderer implements Renderer, DoneAware {
13
+ private patterns;
14
+ private currentPatternIndex;
15
+ private currentRenderer;
16
+ private loopConfig;
17
+ private currentLoopCount;
18
+ private transitionDuration;
19
+ private patternOverrides;
20
+ private completionCallback;
21
+ private patternStore;
22
+ private canvas;
23
+ private ctx;
24
+ private width;
25
+ private height;
26
+ constructor(data: SequenceRenderDataSpecification & {
27
+ patternStore?: Map<string, RenderSpecification<any>>;
28
+ });
29
+ private loadCurrentPattern;
30
+ private isDoneAware;
31
+ private handlePatternComplete;
32
+ private moveToNextPattern;
33
+ reset(): void;
34
+ play(): void;
35
+ pause(): void;
36
+ renderFrame(width: number, height: number): void;
37
+ readPixels(width: number, height: number): Uint8ClampedArray;
38
+ onDone(callback: () => void): void;
39
+ isOneShot(): boolean;
40
+ dispose(): void;
41
+ /**
42
+ * Set the pattern store for looking up patterns by ID
43
+ */
44
+ setPatternStore(store: Map<string, RenderSpecification<any>>): void;
45
+ }
46
+ //# sourceMappingURL=sequence-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sequence-renderer.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/sdk/kos-ui-sdk/src/models/models/canvas-dispatcher/utils/renderers/sequence-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,+BAA+B,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAG7G;;;;;;;;GAQG;AACH,qBAAa,gBAAiB,YAAW,QAAQ,EAAE,SAAS;IAC1D,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,gBAAgB,CAAsB;IAC9C,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,GAAG,CAA2B;IACtC,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,MAAM,CAAK;gBAEP,IAAI,EAAE,+BAA+B,GAAG;QAAE,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAA;KAAE;IAmB5G,OAAO,CAAC,kBAAkB;IAiD1B,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,iBAAiB;IA0BzB,KAAK,IAAI,IAAI;IAMb,IAAI,IAAI,IAAI;IAIZ,KAAK,IAAI,IAAI;IAIb,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAWhD,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,iBAAiB;IAQ5D,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAIlC,SAAS,IAAI,OAAO;IAWpB,OAAO,IAAI,IAAI;IAOf;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;CAOpE"}
@@ -11,6 +11,7 @@ export declare class CanvasRendererModelImpl implements IKosDataModel, IKosIdent
11
11
  private router;
12
12
  private logger;
13
13
  private _renderer;
14
+ private _clearOnComplete;
14
15
  private isStreaming;
15
16
  private renderLoopId;
16
17
  private sendIntervalId;
@@ -25,6 +26,7 @@ export declare class CanvasRendererModelImpl implements IKosDataModel, IKosIdent
25
26
  constructor(modelId: string, options: CanvasRendererOptions, context: KosCreationContext);
26
27
  set onFrame(callback: (dataString: string) => void);
27
28
  set renderer(renderer: Renderer | null);
29
+ setClearOnComplete(clear: boolean | undefined): void;
28
30
  /**
29
31
  * Sends a data frame to the canvas dispatcher.
30
32
  *
@@ -37,7 +39,8 @@ export declare class CanvasRendererModelImpl implements IKosDataModel, IKosIdent
37
39
  sendDataFrame(data: string, apiPath?: string): void;
38
40
  checkStreaming(): void;
39
41
  private handleFrame;
40
- stopStreaming(): void;
42
+ stopStreaming(clearCanvas?: boolean): void;
43
+ private clearCanvas;
41
44
  isOneShotDone(): any;
42
45
  startStreaming(): void;
43
46
  init(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"canvas-renderer-model.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-ui-sdk/src/models/models/canvas-renderer/canvas-renderer-model.ts"],"names":[],"mappings":"AACA,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;AAEhE,OAAO,KAAK,EAAa,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIhE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErD,eAAO,MAAM,UAAU,0BAA0B,CAAC;AAElD,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,uBAAuB,CAAC,CAAC;AAKhF,qBACa,uBACX,YAAW,aAAa,EAAE,gBAAgB;IAE1C,EAAE,EAAE,MAAM,CAAC;IAKX,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAS;IAC7B,KAAK,SAAM;IACX,MAAM,SAAM;IACZ,GAAG,SAAM;IACT,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAA+C;gBAG7D,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,qBAAqB,EAC9B,OAAO,EAAE,kBAAkB;IAa7B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,EAEjD;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,EAYrC;IAED;;;;;;;;OAQG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAInD,cAAc;IASd,OAAO,CAAC,WAAW;IAMnB,aAAa;IAQb,aAAa;IAQb,cAAc;IA4DR,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAsB5B"}
1
+ {"version":3,"file":"canvas-renderer-model.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-ui-sdk/src/models/models/canvas-renderer/canvas-renderer-model.ts"],"names":[],"mappings":"AAEA,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;AAEhE,OAAO,KAAK,EAAa,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIhE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErD,eAAO,MAAM,UAAU,0BAA0B,CAAC;AAElD,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,uBAAuB,CAAC,CAAC;AAKhF,qBACa,uBACX,YAAW,aAAa,EAAE,gBAAgB;IAE1C,EAAE,EAAE,MAAM,CAAC;IAKX,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,gBAAgB,CAAkC;IAC1D,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAS;IAC7B,KAAK,SAAM;IACX,MAAM,SAAM;IACZ,GAAG,SAAM;IACT,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAA+C;gBAG7D,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,qBAAqB,EAC9B,OAAO,EAAE,kBAAkB;IAa7B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,EAEjD;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,EAYrC;IAED,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS;IAI7C;;;;;;;;OAQG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAInD,cAAc;IAWd,OAAO,CAAC,WAAW;IAMnB,aAAa,CAAC,WAAW,GAAE,OAAc;IAezC,OAAO,CAAC,WAAW;IAwBnB,aAAa;IAQb,cAAc;IA2FR,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAuB5B"}
@@ -4,6 +4,7 @@ export * from './config-bean-prop';
4
4
  export * from './future';
5
5
  export * from './future-container';
6
6
  export * from './key-value';
7
+ export * from './kos-log-manager';
7
8
  export * from './kos-time';
8
9
  export * from './log-stream';
9
10
  export * from './ota';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/sdk/kos-ui-sdk/src/models/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,OAAO,CAAC;AACtB,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/sdk/kos-ui-sdk/src/models/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,OAAO,CAAC;AACtB,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { KosLogManager } from './kos-log-manager-registration';
2
+ export type * from './types';
3
+ export type { KosLogManagerModel } from './kos-log-manager-model';
4
+ export * as KosLogManagerServices from './services';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-ui-sdk/src/models/models/kos-log-manager/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,mBAAmB,SAAS,CAAC;AAC7B,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,qBAAqB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,92 @@
1
+ import { KosLogManagerOptions, LogLevelDescriptor, LogOverride } from './types';
2
+ import { PublicModelInterface } from '../../../core/types';
3
+ import { IKosIdentifiable } from '../../../core/core/types';
4
+ import { IKosDataModel, KosCreationContext } from '../../../core/core/kosModel';
5
+ import { ApiCallbackWithWildcard } from '../../../core/core/decorators';
6
+ import { KosRequest, KosResponse } from '../../../core';
7
+
8
+ /**
9
+ * Model type identifier for the KOS Log Manager
10
+ */
11
+ export declare const MODEL_TYPE = "kos-log-manager-model";
12
+ /**
13
+ * Public interface for the KOS Log Manager Model.
14
+ * Provides runtime log level management capabilities for the KOS UI SDK.
15
+ */
16
+ export type KosLogManagerModel = PublicModelInterface<KosLogManagerModelImpl>;
17
+ /**
18
+ * Implementation of the KOS Log Manager Model.
19
+ *
20
+ * This model manages log levels for different loggers in the KOS system,
21
+ * allowing dynamic runtime configuration of logging verbosity.
22
+ *
23
+ * Key features:
24
+ * - Maintains a collection of log level overrides
25
+ * - Responds to WebSocket events for adding/removing log overrides
26
+ * - Provides REST API endpoint for retrieving all logger configurations
27
+ * - Automatically applies log level changes to matching loggers
28
+ *
29
+ * @kosModel Decorated as a KOS model with type 'kos-log-manager-model'
30
+ */
31
+ export declare class KosLogManagerModelImpl implements IKosDataModel, IKosIdentifiable {
32
+ id: string;
33
+ private logger;
34
+ private _overrides;
35
+ constructor(modelId: string, options: KosLogManagerOptions, context: KosCreationContext);
36
+ updateModel(_options: KosLogManagerOptions): void;
37
+ /**
38
+ * Resolves all registered loggers and their current log levels.
39
+ * @returns A map of logger names to their log level descriptors
40
+ * @private
41
+ */
42
+ private resolveLoggers;
43
+ /**
44
+ * REST API endpoint to retrieve all logger configurations.
45
+ * @get /api/kos/ui/loggers
46
+ * @param _req - The incoming request (unused)
47
+ * @param res - The response object to send logger data
48
+ * @returns Array of log level descriptors for all loggers
49
+ */
50
+ getAllLoggers(_req?: KosRequest, res?: KosResponse): Promise<LogLevelDescriptor[]>;
51
+ /**
52
+ * Applies a log level override to matching loggers.
53
+ * Sets the specified log level for the logger and all child loggers
54
+ * whose names start with the override name.
55
+ * @param override - The log override configuration to apply
56
+ * @private
57
+ */
58
+ private setLogLevels;
59
+ /**
60
+ * Resets log levels to their defaults for matching loggers.
61
+ * Removes the override for the logger and all child loggers
62
+ * whose names start with the override name.
63
+ * @param override - The log override configuration to reset
64
+ * @private
65
+ */
66
+ private resetLogLevels;
67
+ /**
68
+ * WebSocket handler for log override addition events.
69
+ * Listens to: /kos/logs/override/add/*
70
+ * @param override - The log override to add
71
+ * @param payload - Contains wildcard capture data including nodeType
72
+ */
73
+ handleOverrideAdded(override: LogOverride, payload: ApiCallbackWithWildcard<any>): void;
74
+ /**
75
+ * WebSocket handler for log override removal events.
76
+ * Listens to: /kos/logs/override/remove/*
77
+ * @param override - The log override to remove
78
+ */
79
+ handleOverrideRemoved(override: LogOverride): void;
80
+ /**
81
+ * Initializes the log manager model.
82
+ * Called during model creation lifecycle.
83
+ */
84
+ init(): Promise<void>;
85
+ /**
86
+ * Loads existing log overrides from the server.
87
+ * Fetches UI-specific overrides and applies them to the current loggers.
88
+ * Called after model initialization.
89
+ */
90
+ load(): Promise<void>;
91
+ }
92
+ //# sourceMappingURL=kos-log-manager-model.d.ts.map
@@ -0,0 +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;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,sBAAsB,CAAC,CAAC;AA0B9E;;;;;;;;;;;;;GAaG;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;IAmBtB;;;;;;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;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAsB5B"}
@@ -0,0 +1,92 @@
1
+ import { KosLogManagerModel } from './kos-log-manager-model';
2
+ import { KosLogManagerOptions } from './types';
3
+ import { SingletonKosModelRegistrationFactory } from '../../../core/core/registration';
4
+
5
+ /**
6
+ * # KosLogManager
7
+ *
8
+ * The registration bean includes convenience methods for creating and working with KosLogManagerModel instances.
9
+
10
+ *
11
+ * ## type
12
+ * The type property is a string that identifies the model type.
13
+ * The type is used to identify the model type in the model registry and to narrow down the model type in type predicates. It's most frequently
14
+ * used when declaring dependencies on models.
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ *
19
+ * @kosDependency({modelType: KosLogManager.type, id: "kosLogManagerId"})
20
+ * private kosLogManagerModel: KosLogManagerModel;
21
+ * ```
22
+ *
23
+ *
24
+ * ## factory
25
+ *
26
+ * The factory method creates a factory function that can be used to create new KosLogManagerModel instances.
27
+ *
28
+
29
+ * As this is a singleton model, the factory function accepts the model options as its argument.
30
+ *
31
+ * If a model with the same model type already exists, the factory function will return the existing model. The options will be ignored
32
+ * in this case and the existing model will be returned in its current state.
33
+ *
34
+ * @example
35
+ * ```typescript
36
+ * const model = KosLogManager.factory({
37
+ * // Add option data
38
+ * });
39
+
40
+ * ```
41
+
42
+
43
+ *
44
+ * ## predicate
45
+ *
46
+ * [Typescript type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates) function that will identify and narrow down a model to a KosLogManagerModel.
47
+ *
48
+ * @example
49
+ * ```typescript
50
+ *
51
+ * const model: IKosDataModel = ...; // some model
52
+ *
53
+ * if (KosLogManager.predicate(model)) {
54
+ * // if the function evaluates to true, the model is narrowed down to KosLogManagerModel
55
+ * // and the compiler will know that the model has the KosLogManagerModel interface
56
+ * model.updateAvailability(false);
57
+
58
+ * }
59
+ * ```
60
+ *
61
+ * ## registration
62
+ *
63
+ * The registration property is an object that can be used to simplify registration of the model with the model registry. The registration object
64
+ * can be spread into the model registration and provides all of the required information to register the model implementation class against the model type.
65
+ *
66
+ *
67
+ * @example
68
+ *
69
+ * In an application registration file you can declare the model registration as follows:
70
+ *
71
+ * **registration.ts**
72
+ * ```typescript
73
+ * import { KosLogManager } from "@kos-ui/project-models";
74
+ * import { KosModelRegistry } from "@kosdev-code/kos-dispense-sdk";
75
+ *
76
+ * import { initKosProvider } from "@kosdev-code/kos-ui-sdk";
77
+ *
78
+ * KosModelRegistry.dispense
79
+ * .models()
80
+ * .model(KosLogManager);
81
+ * ```
82
+ *
83
+ * ## registration.singleton
84
+
85
+ * The kosLogManager model is a singleton model. This means that each time the factory function is called , the same instance will be returned.
86
+ * If the model does not yet exist, it will be created passing in the provided options to initialize it.
87
+ *
88
+ * Singleton models don't require an ID as they will use the model type as their ID to guarantee uniqueness throughout the system.
89
+
90
+ * */
91
+ export declare const KosLogManager: SingletonKosModelRegistrationFactory<KosLogManagerModel, KosLogManagerOptions>;
92
+ //# sourceMappingURL=kos-log-manager-registration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kos-log-manager-registration.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-ui-sdk/src/models/models/kos-log-manager/kos-log-manager-registration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oCAAoC,EAAE,MAAM,iCAAiC,CAAC;AACvF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAGL,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAqFK;AACL,eAAO,MAAM,aAAa,gFAMxB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './kos-log-manager-services';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/sdk/kos-ui-sdk/src/models/models/kos-log-manager/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { ApiPath, ApiResponse } from '../../../utils/service';
2
+ import { ServiceResponse } from '../../../../core';
3
+
4
+ declare const SERVICE_PATH: ApiPath;
5
+ export type KosLogManagerResponse = ApiResponse<typeof SERVICE_PATH, "get">;
6
+ /**
7
+ * @category Service
8
+ * Retrieves the initial kos-log-manager data.
9
+ */
10
+ export declare const getLogOverrides: () => Promise<ServiceResponse<KosLogManagerResponse>>;
11
+ export {};
12
+ //# sourceMappingURL=kos-log-manager-services.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kos-log-manager-services.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/sdk/kos-ui-sdk/src/models/models/kos-log-manager/services/kos-log-manager-services.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAY,EAAE,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAO7E,QAAA,MAAM,YAAY,EAAE,OAAmC,CAAC;AAExD,MAAM,MAAM,qBAAqB,GAAG,WAAW,CAAC,OAAO,YAAY,EAAE,KAAK,CAAC,CAAC;AAE5E;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAa,QACvC,gBAAgB,qBAAqB,CAAC,CAIvC,CAAC"}
@@ -0,0 +1,14 @@
1
+ export interface KosLogManagerOptions {}
2
+
3
+ export type LogLevelNames = "trace" | "debug" | "info" | "warn" | "error";
4
+ export interface LogOverride {
5
+ level: LogLevelNames;
6
+ name: string;
7
+ type: string;
8
+ id: string;
9
+ }
10
+
11
+ export interface LogLevelDescriptor {
12
+ name: string;
13
+ level: LogLevelNames;
14
+ }