@kosdev-code/kos-ui-sdk 2.0.44 → 2.0.45

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 (449) hide show
  1. package/common/events/eventBus.d.ts +30 -0
  2. package/common/events/eventBus.d.ts.map +1 -1
  3. package/common/events/eventBus.functional.d.ts +48 -0
  4. package/common/events/eventBus.functional.d.ts.map +1 -1
  5. package/common/events/eventBus.state.d.ts +33 -0
  6. package/common/events/eventBus.state.d.ts.map +1 -1
  7. package/core/constants/model-constants.d.ts +9 -0
  8. package/core/constants/model-constants.d.ts.map +1 -0
  9. package/core/core/companion-instantiator.d.ts +71 -0
  10. package/core/core/companion-instantiator.d.ts.map +1 -0
  11. package/core/core/decorators/fsm-injection-utils.d.ts +16 -0
  12. package/core/core/decorators/fsm-injection-utils.d.ts.map +1 -0
  13. package/core/core/decorators/index.d.ts +11 -0
  14. package/core/core/decorators/index.d.ts.map +1 -1
  15. package/core/core/decorators/kos-child.d.ts +2 -0
  16. package/core/core/decorators/kos-child.d.ts.map +1 -1
  17. package/core/core/decorators/kos-companion.d.ts +158 -8
  18. package/core/core/decorators/kos-companion.d.ts.map +1 -1
  19. package/core/core/decorators/kos-container-aware.d.ts +619 -0
  20. package/core/core/decorators/kos-container-aware.d.ts.map +1 -0
  21. package/core/core/decorators/kos-context.d.ts +6 -0
  22. package/core/core/decorators/kos-context.d.ts.map +1 -1
  23. package/core/core/decorators/kos-execution-context.d.ts +63 -0
  24. package/core/core/decorators/kos-execution-context.d.ts.map +1 -0
  25. package/core/core/decorators/kos-future-aware.d.ts +162 -0
  26. package/core/core/decorators/kos-future-aware.d.ts.map +1 -0
  27. package/core/core/decorators/kos-http-decorators.d.ts +15 -0
  28. package/core/core/decorators/kos-http-decorators.d.ts.map +1 -1
  29. package/core/core/decorators/kos-log.d.ts +4 -0
  30. package/core/core/decorators/kos-log.d.ts.map +1 -1
  31. package/core/core/decorators/kos-logger-aware.d.ts +105 -0
  32. package/core/core/decorators/kos-logger-aware.d.ts.map +1 -0
  33. package/core/core/decorators/kos-model-effect.d.ts +9 -0
  34. package/core/core/decorators/kos-model-effect.d.ts.map +1 -1
  35. package/core/core/decorators/kos-multiple-future-aware.d.ts +217 -0
  36. package/core/core/decorators/kos-multiple-future-aware.d.ts.map +1 -0
  37. package/core/core/decorators/kos-parent.d.ts +4 -0
  38. package/core/core/decorators/kos-parent.d.ts.map +1 -1
  39. package/core/core/decorators/kos-reference.d.ts +9 -0
  40. package/core/core/decorators/kos-reference.d.ts.map +1 -1
  41. package/core/core/decorators/kos-service-request-helpers.d.ts +60 -0
  42. package/core/core/decorators/kos-service-request-helpers.d.ts.map +1 -0
  43. package/core/core/decorators/kos-service-request.d.ts +498 -0
  44. package/core/core/decorators/kos-service-request.d.ts.map +1 -0
  45. package/core/core/decorators/kos-state-machine.d.ts +534 -0
  46. package/core/core/decorators/kos-state-machine.d.ts.map +1 -0
  47. package/core/core/decorators/kos-topic-handler-flow-control.d.ts +17 -1
  48. package/core/core/decorators/kos-topic-handler-flow-control.d.ts.map +1 -1
  49. package/core/core/decorators/kos-trouble-aware.d.ts +77 -0
  50. package/core/core/decorators/kos-trouble-aware.d.ts.map +1 -0
  51. package/core/core/decorators/kos-view-model.d.ts +176 -0
  52. package/core/core/decorators/kos-view-model.d.ts.map +1 -0
  53. package/core/core/decorators/kosDependency.d.ts +4 -1
  54. package/core/core/decorators/kosDependency.d.ts.map +1 -1
  55. package/core/core/decorators/kosModel.d.ts +17 -2
  56. package/core/core/decorators/kosModel.d.ts.map +1 -1
  57. package/core/core/decorators/kosSubscribe.d.ts +9 -0
  58. package/core/core/decorators/kosSubscribe.d.ts.map +1 -1
  59. package/core/core/decorators/kosTopicHandler.d.ts +87 -5
  60. package/core/core/decorators/kosTopicHandler.d.ts.map +1 -1
  61. package/core/core/decorators/propKeys.d.ts +14 -0
  62. package/core/core/decorators/propKeys.d.ts.map +1 -1
  63. package/core/core/decorators/resolve-parameters.d.ts.map +1 -1
  64. package/core/core/extension/extension-manager.d.ts +64 -4
  65. package/core/core/extension/extension-manager.d.ts.map +1 -1
  66. package/core/core/extension/initialize-extension.d.ts +24 -0
  67. package/core/core/extension/initialize-extension.d.ts.map +1 -1
  68. package/core/core/extension/plugin-extension-manager.d.ts +11 -0
  69. package/core/core/extension/plugin-extension-manager.d.ts.map +1 -1
  70. package/core/core/kos-container-model.d.ts +188 -0
  71. package/core/core/kos-container-model.d.ts.map +1 -1
  72. package/core/core/kos-data-container.d.ts +93 -1
  73. package/core/core/kos-data-container.d.ts.map +1 -1
  74. package/core/core/kos-registration.d.ts.map +1 -1
  75. package/core/core/kos-singleton-registration.d.ts.map +1 -1
  76. package/core/core/kosCore.d.ts.map +1 -1
  77. package/core/core/kosModel.d.ts +55 -2
  78. package/core/core/kosModel.d.ts.map +1 -1
  79. package/core/core/kosModelManager.d.ts +11 -1
  80. package/core/core/kosModelManager.d.ts.map +1 -1
  81. package/core/core/log/log.d.ts.map +1 -1
  82. package/core/core/model/apply-kos-dev-tool-support.d.ts.map +1 -1
  83. package/core/core/model/kos-fsm-manager.d.ts +1 -4
  84. package/core/core/model/kos-fsm-manager.d.ts.map +1 -1
  85. package/core/core/model/kos-model-component-factory.d.ts +4 -0
  86. package/core/core/model/kos-model-component-factory.d.ts.map +1 -1
  87. package/core/core/model/kos-offline-queue.d.ts +78 -1
  88. package/core/core/model/kos-offline-queue.d.ts.map +1 -1
  89. package/core/core/model/kos-online-lifecycle-manager.d.ts.map +1 -1
  90. package/core/core/model/kos-service-request-manager.d.ts +102 -0
  91. package/core/core/model/kos-service-request-manager.d.ts.map +1 -0
  92. package/core/core/model/kos-subscription-manager.d.ts +20 -0
  93. package/core/core/model/kos-subscription-manager.d.ts.map +1 -1
  94. package/core/core/model/model-introspection-utils.d.ts +1 -0
  95. package/core/core/model/model-introspection-utils.d.ts.map +1 -1
  96. package/core/core/model/service-response-store.d.ts +164 -0
  97. package/core/core/model/service-response-store.d.ts.map +1 -0
  98. package/core/core/model-instantiator.d.ts +19 -0
  99. package/core/core/model-instantiator.d.ts.map +1 -1
  100. package/core/core/registration/index.d.ts +1 -0
  101. package/core/core/registration/index.d.ts.map +1 -1
  102. package/core/core/services/browser-router.d.ts.map +1 -1
  103. package/core/core/transport/webSocketTransport.d.ts +2 -1
  104. package/core/core/transport/webSocketTransport.d.ts.map +1 -1
  105. package/core/core/types/registration.d.ts +7 -0
  106. package/core/core/types/registration.d.ts.map +1 -1
  107. package/core/index.d.ts +2 -1
  108. package/core/index.d.ts.map +1 -1
  109. package/core/types/index.d.ts +1 -0
  110. package/core/types/index.d.ts.map +1 -1
  111. package/core/types/kos-dependency.d.ts +48 -1
  112. package/core/types/kos-dependency.d.ts.map +1 -1
  113. package/core/types/service-response-store.d.ts +162 -0
  114. package/core/types/service-response-store.d.ts.map +1 -0
  115. package/core/types/utils/kos-fetch.d.ts +121 -0
  116. package/core/types/utils/kos-fetch.d.ts.map +1 -1
  117. package/core/util/ancestor-path-visitor.d.ts +60 -0
  118. package/core/util/ancestor-path-visitor.d.ts.map +1 -0
  119. package/core/util/api-request-id.d.ts +4 -0
  120. package/core/util/api-request-id.d.ts.map +1 -1
  121. package/core/util/apply-mixins.d.ts +4 -0
  122. package/core/util/apply-mixins.d.ts.map +1 -1
  123. package/core/util/array-utils.d.ts +4 -0
  124. package/core/util/array-utils.d.ts.map +1 -1
  125. package/core/util/container-utils.d.ts +264 -11
  126. package/core/util/container-utils.d.ts.map +1 -1
  127. package/core/util/date-utils.d.ts +29 -0
  128. package/core/util/date-utils.d.ts.map +1 -1
  129. package/core/util/debounce.d.ts +3 -0
  130. package/core/util/debounce.d.ts.map +1 -1
  131. package/core/util/error-logger.d.ts +16 -0
  132. package/core/util/error-logger.d.ts.map +1 -0
  133. package/core/util/feature-flags.d.ts +19 -0
  134. package/core/util/feature-flags.d.ts.map +1 -1
  135. package/core/util/get-query-params.d.ts +4 -0
  136. package/core/util/get-query-params.d.ts.map +1 -1
  137. package/core/util/hsl-to-hex.d.ts +16 -0
  138. package/core/util/hsl-to-hex.d.ts.map +1 -1
  139. package/core/util/index.d.ts +3 -0
  140. package/core/util/index.d.ts.map +1 -1
  141. package/core/util/kos-config-init.d.ts +37 -0
  142. package/core/util/kos-config-init.d.ts.map +1 -1
  143. package/core/util/kos-data-mapper-utils.d.ts +9 -0
  144. package/core/util/kos-data-mapper-utils.d.ts.map +1 -1
  145. package/core/util/kos-fetch.d.ts +12 -0
  146. package/core/util/kos-fetch.d.ts.map +1 -1
  147. package/core/util/kos-message-utils.d.ts +88 -0
  148. package/core/util/kos-message-utils.d.ts.map +1 -1
  149. package/core/util/kos-model-utils.d.ts +46 -0
  150. package/core/util/kos-model-utils.d.ts.map +1 -1
  151. package/core/util/kos-model-visitor.d.ts +2 -0
  152. package/core/util/kos-model-visitor.d.ts.map +1 -1
  153. package/core/util/kos-service-request.d.ts +43 -3
  154. package/core/util/kos-service-request.d.ts.map +1 -1
  155. package/core/util/log-utils.d.ts +12 -0
  156. package/core/util/log-utils.d.ts.map +1 -1
  157. package/core/util/middleware.d.ts +15 -0
  158. package/core/util/middleware.d.ts.map +1 -1
  159. package/core/util/model-attribute-utils.d.ts +7 -0
  160. package/core/util/model-attribute-utils.d.ts.map +1 -1
  161. package/core/util/model-error-utils.d.ts +61 -0
  162. package/core/util/model-error-utils.d.ts.map +1 -0
  163. package/core/util/model-factory.d.ts +4 -0
  164. package/core/util/model-factory.d.ts.map +1 -1
  165. package/core/util/model-registration-utils.d.ts +8 -0
  166. package/core/util/model-registration-utils.d.ts.map +1 -1
  167. package/core/util/model-transition-utils.d.ts +41 -0
  168. package/core/util/model-transition-utils.d.ts.map +1 -0
  169. package/core/util/model-type-guards.d.ts +26 -0
  170. package/core/util/model-type-guards.d.ts.map +1 -0
  171. package/core/util/model-utils.d.ts +40 -29
  172. package/core/util/model-utils.d.ts.map +1 -1
  173. package/core/util/observable-proxy-map.d.ts +11 -0
  174. package/core/util/observable-proxy-map.d.ts.map +1 -1
  175. package/core/util/paired-client-heartbeat.d.ts +2 -0
  176. package/core/util/paired-client-heartbeat.d.ts.map +1 -1
  177. package/core/util/pipe.d.ts +4 -0
  178. package/core/util/pipe.d.ts.map +1 -1
  179. package/core/util/promise-utils.d.ts +58 -0
  180. package/core/util/promise-utils.d.ts.map +1 -0
  181. package/core/util/retry-with-exponential-backoff.d.ts +3 -0
  182. package/core/util/retry-with-exponential-backoff.d.ts.map +1 -1
  183. package/core/util/service-factory.d.ts +10 -0
  184. package/core/util/service-factory.d.ts.map +1 -1
  185. package/core/util/service-request-error.d.ts +60 -0
  186. package/core/util/service-request-error.d.ts.map +1 -0
  187. package/core/util/service-response.d.ts +125 -0
  188. package/core/util/service-response.d.ts.map +1 -0
  189. package/core/util/session-utils.d.ts +8 -0
  190. package/core/util/session-utils.d.ts.map +1 -1
  191. package/core/util/wait-for-request.d.ts +16 -0
  192. package/core/util/wait-for-request.d.ts.map +1 -1
  193. package/core/util/when-ready.d.ts +3 -0
  194. package/core/util/when-ready.d.ts.map +1 -1
  195. package/index.cjs +26904 -118
  196. package/index.cjs.map +1 -1
  197. package/index.d.cts +6 -3
  198. package/index.d.ts +6 -3
  199. package/index.d.ts.map +1 -1
  200. package/index.js +25305 -13476
  201. package/index.js.map +1 -1
  202. package/kos-models.json +426 -0
  203. package/models/constants/index.d.ts +3 -1
  204. package/models/constants/index.d.ts.map +1 -1
  205. package/models/decorators/future-service.d.ts +27 -2
  206. package/models/decorators/future-service.d.ts.map +1 -1
  207. package/models/models/browser-router/browser-router-model.d.ts +80 -1
  208. package/models/models/browser-router/browser-router-model.d.ts.map +1 -1
  209. package/models/models/browser-router/types/index.d.ts +26 -1
  210. package/models/models/canvas-dispatcher/types/index.d.ts +5 -0
  211. package/models/models/canvas-renderer/types/index.d.ts +5 -0
  212. package/models/models/config-bean/config-bean-model-builder.d.ts +4 -2
  213. package/models/models/config-bean/config-bean-model-builder.d.ts.map +1 -1
  214. package/models/models/config-bean/config-bean-model.d.ts +117 -13
  215. package/models/models/config-bean/config-bean-model.d.ts.map +1 -1
  216. package/models/models/config-bean/config-bean-types.d.ts +6 -3
  217. package/models/models/config-bean/config-bean-types.d.ts.map +1 -1
  218. package/models/models/config-bean/types/index.d.ts +34 -0
  219. package/models/models/config-bean-prop/config-bean-prop-model.d.ts +112 -1
  220. package/models/models/config-bean-prop/config-bean-prop-model.d.ts.map +1 -1
  221. package/models/models/config-bean-prop/types/index.d.ts +301 -19
  222. package/models/models/device/device-model.d.ts +219 -9
  223. package/models/models/device/device-model.d.ts.map +1 -1
  224. package/models/models/device/device-registration.d.ts +61 -48
  225. package/models/models/device/device-registration.d.ts.map +1 -1
  226. package/models/models/device/types/index.d.ts +42 -0
  227. package/models/models/future/future-aware.d.ts +82 -0
  228. package/models/models/future/future-aware.d.ts.map +1 -1
  229. package/models/models/future/future-model.d.ts +34 -5
  230. package/models/models/future/future-model.d.ts.map +1 -1
  231. package/models/models/future/future-types.d.ts +202 -9
  232. package/models/models/future/future-types.d.ts.map +1 -1
  233. package/models/models/future-container/future-container-model.d.ts +2 -2
  234. package/models/models/gpio-chip/gpio-chip-container-model.d.ts +25 -0
  235. package/models/models/gpio-chip/gpio-chip-container-model.d.ts.map +1 -0
  236. package/models/models/gpio-chip/gpio-chip-model.d.ts +30 -0
  237. package/models/models/gpio-chip/gpio-chip-model.d.ts.map +1 -0
  238. package/models/models/gpio-chip/index.d.ts +7 -0
  239. package/models/models/gpio-chip/index.d.ts.map +1 -0
  240. package/models/models/gpio-chip/services/gpio-chip-services.d.ts +86 -0
  241. package/models/models/gpio-chip/services/gpio-chip-services.d.ts.map +1 -0
  242. package/models/models/gpio-chip/services/index.d.ts +2 -0
  243. package/models/models/gpio-chip/services/index.d.ts.map +1 -0
  244. package/models/models/gpio-chip/types/index.d.ts +24 -0
  245. package/models/models/gpio-pin/gpio-pin-container-model.d.ts +23 -0
  246. package/models/models/gpio-pin/gpio-pin-container-model.d.ts.map +1 -0
  247. package/models/models/gpio-pin/gpio-pin-model.d.ts +26 -0
  248. package/models/models/gpio-pin/gpio-pin-model.d.ts.map +1 -0
  249. package/models/models/gpio-pin/index.d.ts +6 -0
  250. package/models/models/gpio-pin/index.d.ts.map +1 -0
  251. package/models/models/gpio-pin/types/index.d.ts +23 -0
  252. package/models/models/index.d.ts +1 -0
  253. package/models/models/index.d.ts.map +1 -1
  254. package/models/models/key-value/index.d.ts +4 -0
  255. package/models/models/key-value/index.d.ts.map +1 -1
  256. package/models/models/key-value/key-value-model.d.ts +111 -0
  257. package/models/models/key-value/key-value-model.d.ts.map +1 -1
  258. package/models/models/key-value/services/key-value-services.d.ts +124 -2
  259. package/models/models/key-value/services/key-value-services.d.ts.map +1 -1
  260. package/models/models/key-value/types/index.d.ts +57 -0
  261. package/models/models/kos-expression-evaluator/index.d.ts +4 -0
  262. package/models/models/kos-expression-evaluator/index.d.ts.map +1 -0
  263. package/models/models/kos-expression-evaluator/kos-expression-evaluator-model.d.ts +209 -0
  264. package/models/models/kos-expression-evaluator/kos-expression-evaluator-model.d.ts.map +1 -0
  265. package/models/models/kos-expression-evaluator/services/index.d.ts +6 -0
  266. package/models/models/kos-expression-evaluator/services/index.d.ts.map +1 -0
  267. package/models/models/kos-expression-evaluator/services/kos-expression-evaluator-services.d.ts +15 -0
  268. package/models/models/kos-expression-evaluator/services/kos-expression-evaluator-services.d.ts.map +1 -0
  269. package/models/models/kos-expression-evaluator/types/index.d.ts +6 -0
  270. package/models/models/kos-log-manager/kos-log-manager-model.d.ts +61 -14
  271. package/models/models/kos-log-manager/kos-log-manager-model.d.ts.map +1 -1
  272. package/models/models/kos-log-manager/types/index.d.ts +191 -0
  273. package/models/models/kos-time/kos-time-model.d.ts +64 -0
  274. package/models/models/kos-time/kos-time-model.d.ts.map +1 -1
  275. package/models/models/kos-time/types/index.d.ts +83 -0
  276. package/models/models/log-block/log-block-container-model.d.ts +132 -0
  277. package/models/models/log-block/log-block-container-model.d.ts.map +1 -1
  278. package/models/models/log-block/log-block-model.d.ts +185 -0
  279. package/models/models/log-block/log-block-model.d.ts.map +1 -1
  280. package/models/models/log-block/types/index.d.ts +133 -0
  281. package/models/models/log-stream/index.d.ts +6 -2
  282. package/models/models/log-stream/index.d.ts.map +1 -1
  283. package/models/models/log-stream/log-stream-container-model.d.ts +62 -0
  284. package/models/models/log-stream/log-stream-container-model.d.ts.map +1 -1
  285. package/models/models/log-stream/log-stream-model.d.ts +55 -0
  286. package/models/models/log-stream/log-stream-model.d.ts.map +1 -1
  287. package/models/models/log-stream/services/log-stream-services.d.ts +2 -1
  288. package/models/models/log-stream/services/log-stream-services.d.ts.map +1 -1
  289. package/models/models/log-stream/types/index.d.ts +79 -0
  290. package/models/models/network-interface/index.d.ts +6 -2
  291. package/models/models/network-interface/index.d.ts.map +1 -1
  292. package/models/models/network-interface/network-interface-container-model.d.ts +62 -0
  293. package/models/models/network-interface/network-interface-container-model.d.ts.map +1 -1
  294. package/models/models/network-interface/network-interface-container-registration.d.ts +2 -1
  295. package/models/models/network-interface/network-interface-container-registration.d.ts.map +1 -1
  296. package/models/models/network-interface/network-interface-model.d.ts +77 -0
  297. package/models/models/network-interface/network-interface-model.d.ts.map +1 -1
  298. package/models/models/network-interface/network-interface-registration.d.ts +2 -1
  299. package/models/models/network-interface/network-interface-registration.d.ts.map +1 -1
  300. package/models/models/network-interface/services/network-interface-services.d.ts +54 -0
  301. package/models/models/network-interface/services/network-interface-services.d.ts.map +1 -1
  302. package/models/models/network-interface/types/index.d.ts +22 -0
  303. package/models/models/ota/ota-model.d.ts +82 -3
  304. package/models/models/ota/ota-model.d.ts.map +1 -1
  305. package/models/models/ota/types/index.d.ts +177 -0
  306. package/models/models/region-info/region-info-model.d.ts +8 -3
  307. package/models/models/region-info/region-info-model.d.ts.map +1 -1
  308. package/models/models/region-info/services/region-info-services.d.ts +2 -2
  309. package/models/models/region-info/services/region-info-services.d.ts.map +1 -1
  310. package/models/models/region-info/types/index.d.ts +191 -13
  311. package/models/models/region-info/types/index.d.ts.map +1 -1
  312. package/models/models/region-info/utils/unit-system-utils.d.ts.map +1 -1
  313. package/models/models/software-info/services/software-info-services.d.ts.map +1 -1
  314. package/models/models/software-info/software-info-model.d.ts +74 -2
  315. package/models/models/software-info/software-info-model.d.ts.map +1 -1
  316. package/models/models/software-info/types/index.d.ts +52 -17
  317. package/models/models/state-bean/state-bean-model.d.ts +86 -9
  318. package/models/models/state-bean/state-bean-model.d.ts.map +1 -1
  319. package/models/models/state-bean/types/index.d.ts +117 -6
  320. package/models/models/state-prop/state-prop-model.d.ts +78 -1
  321. package/models/models/state-prop/state-prop-model.d.ts.map +1 -1
  322. package/models/models/state-prop/types/index.d.ts +57 -7
  323. package/models/models/storage-device/services/storage-device-services.d.ts +1 -0
  324. package/models/models/storage-device/services/storage-device-services.d.ts.map +1 -1
  325. package/models/models/storage-device/storage-device-container-model.d.ts +289 -2
  326. package/models/models/storage-device/storage-device-container-model.d.ts.map +1 -1
  327. package/models/models/storage-device/storage-device-model.d.ts +84 -2
  328. package/models/models/storage-device/storage-device-model.d.ts.map +1 -1
  329. package/models/models/storage-device/types/index.d.ts +114 -0
  330. package/models/models/studio-properties/studio-properties-model.d.ts +75 -0
  331. package/models/models/studio-properties/studio-properties-model.d.ts.map +1 -1
  332. package/models/models/studio-properties/types/index.d.ts +29 -0
  333. package/models/models/translation/services/translation-services.d.ts +128 -2
  334. package/models/models/translation/services/translation-services.d.ts.map +1 -1
  335. package/models/models/translation/translation-container-model.d.ts +100 -10
  336. package/models/models/translation/translation-container-model.d.ts.map +1 -1
  337. package/models/models/translation/translation-container-registration.d.ts +2 -1
  338. package/models/models/translation/translation-container-registration.d.ts.map +1 -1
  339. package/models/models/translation/translation-context.d.ts +1 -16
  340. package/models/models/translation/translation-context.d.ts.map +1 -1
  341. package/models/models/translation/translation-model.d.ts +113 -1
  342. package/models/models/translation/translation-model.d.ts.map +1 -1
  343. package/models/models/translation/types/index.d.ts +343 -0
  344. package/models/models/trouble/index.d.ts +2 -1
  345. package/models/models/trouble/index.d.ts.map +1 -1
  346. package/models/models/trouble/services/trouble-services.d.ts +6 -4
  347. package/models/models/trouble/services/trouble-services.d.ts.map +1 -1
  348. package/models/models/trouble/trouble-model.d.ts +4 -1
  349. package/models/models/trouble/trouble-model.d.ts.map +1 -1
  350. package/models/models/trouble/types/index.d.ts +34 -93
  351. package/models/models/trouble/utils/is-trouble-aware.d.ts +2 -2
  352. package/models/models/trouble/utils/is-trouble-aware.d.ts.map +1 -1
  353. package/models/models/trouble-container/index.d.ts +4 -3
  354. package/models/models/trouble-container/index.d.ts.map +1 -1
  355. package/models/models/trouble-container/trouble-container-model.d.ts +10 -5
  356. package/models/models/trouble-container/trouble-container-model.d.ts.map +1 -1
  357. package/models/models/trouble-container/types/index.d.ts +6 -14
  358. package/models/models/usb-update/types/index.d.ts +10 -0
  359. package/models/services/config-bean/index.d.ts +2 -2
  360. package/models/services/config-bean/index.d.ts.map +1 -1
  361. package/models/utils/client.d.ts +16 -12
  362. package/models/utils/client.d.ts.map +1 -1
  363. package/models/utils/core-registration-manager.d.ts +1 -1
  364. package/models/utils/core-registration-manager.d.ts.map +1 -1
  365. package/models/utils/extension-manager.d.ts +54 -13
  366. package/models/utils/extension-manager.d.ts.map +1 -1
  367. package/models/utils/get-kos-connection-id.d.ts +2 -0
  368. package/models/utils/get-kos-connection-id.d.ts.map +1 -0
  369. package/models/utils/index.d.ts +3 -2
  370. package/models/utils/index.d.ts.map +1 -1
  371. package/models/utils/openapi-index.d.ts +3 -0
  372. package/models/utils/openapi-index.d.ts.map +1 -0
  373. package/models/utils/service-accessor.d.ts +86 -0
  374. package/models/utils/service-accessor.d.ts.map +1 -0
  375. package/models/utils/service.d.ts +91 -13
  376. package/models/utils/service.d.ts.map +1 -1
  377. package/models/utils/services/kos/1.6.5/openapi.d.ts +3809 -0
  378. package/models/utils/services/kos/1.6.5/service.d.ts +124 -0
  379. package/models/utils/services/kos/1.6.5/service.d.ts.map +1 -0
  380. package/models/utils/services/kos/1.8.1/openapi.d.ts +4344 -0
  381. package/models/utils/services/kos/1.8.1/service.d.ts +124 -0
  382. package/models/utils/services/kos/1.8.1/service.d.ts.map +1 -0
  383. package/models/utils/services/kos/1.9.x/openapi.d.ts +4597 -0
  384. package/models/utils/services/kos/1.9.x/service.d.ts +124 -0
  385. package/models/utils/services/kos/1.9.x/service.d.ts.map +1 -0
  386. package/models/utils/services/kos/daily/openapi.d.ts +4349 -0
  387. package/models/utils/services/kos/daily/service.d.ts +124 -0
  388. package/models/utils/services/kos/daily/service.d.ts.map +1 -0
  389. package/models/utils/services/vfs/1.6.5/openapi.d.ts +51 -0
  390. package/models/utils/services/vfs/1.6.5/service.d.ts +124 -0
  391. package/models/utils/services/vfs/1.6.5/service.d.ts.map +1 -0
  392. package/models/utils/services/vfs/1.8.1/openapi.d.ts +51 -0
  393. package/models/utils/services/vfs/1.8.1/service.d.ts +124 -0
  394. package/models/utils/services/vfs/1.8.1/service.d.ts.map +1 -0
  395. package/models/utils/services/vfs/1.9.x/openapi.d.ts +51 -0
  396. package/models/utils/services/vfs/1.9.x/service.d.ts +124 -0
  397. package/models/utils/services/vfs/1.9.x/service.d.ts.map +1 -0
  398. package/models/utils/services/vfs/daily/openapi.d.ts +51 -0
  399. package/models/utils/services/vfs/daily/service.d.ts +124 -0
  400. package/models/utils/services/vfs/daily/service.d.ts.map +1 -0
  401. package/models/utils/services-index.d.ts +9 -0
  402. package/models/utils/services-index.d.ts.map +1 -0
  403. package/package.json +16 -2
  404. package/ui/contexts/kos-core-context.d.ts.map +1 -1
  405. package/ui/contexts/state-bean/state-bean-provider.d.ts.map +1 -1
  406. package/ui/hooks/device/use-device.d.ts +6 -0
  407. package/ui/hooks/device/use-device.d.ts.map +1 -1
  408. package/ui/hooks/index.d.ts +1 -0
  409. package/ui/hooks/index.d.ts.map +1 -1
  410. package/ui/hooks/kos-time/use-kos-time.d.ts +6 -0
  411. package/ui/hooks/kos-time/use-kos-time.d.ts.map +1 -1
  412. package/ui/hooks/network-interface-container/use-network-interface-container.d.ts +6 -0
  413. package/ui/hooks/network-interface-container/use-network-interface-container.d.ts.map +1 -1
  414. package/ui/hooks/ota/use-ota.d.ts +6 -0
  415. package/ui/hooks/ota/use-ota.d.ts.map +1 -1
  416. package/ui/hooks/software-info/use-software-info.d.ts +6 -0
  417. package/ui/hooks/software-info/use-software-info.d.ts.map +1 -1
  418. package/ui/hooks/state-bean/use-state-bean.d.ts +2 -2
  419. package/ui/hooks/state-bean/use-state-bean.d.ts.map +1 -1
  420. package/ui/hooks/state-bean/with-state-bean.d.ts.map +1 -1
  421. package/ui/hooks/storage-device-container/use-storage-device-container.d.ts +6 -0
  422. package/ui/hooks/storage-device-container/use-storage-device-container.d.ts.map +1 -1
  423. package/ui/hooks/translation-container/trans.d.ts +6 -0
  424. package/ui/hooks/translation-container/trans.d.ts.map +1 -1
  425. package/ui/hooks/translation-container/use-translation-container.d.ts +10 -33
  426. package/ui/hooks/translation-container/use-translation-container.d.ts.map +1 -1
  427. package/ui/hooks/translation-container/use-translation.d.ts +7 -0
  428. package/ui/hooks/translation-container/use-translation.d.ts.map +1 -1
  429. package/ui/hooks/translation-container/with-translation-container.d.ts +6 -0
  430. package/ui/hooks/translation-container/with-translation-container.d.ts.map +1 -1
  431. package/ui/hooks/usb-update-container/use-usb-update-container.d.ts +6 -0
  432. package/ui/hooks/usb-update-container/use-usb-update-container.d.ts.map +1 -1
  433. package/ui/hooks/use-config-bean.d.ts +6 -0
  434. package/ui/hooks/use-config-bean.d.ts.map +1 -1
  435. package/ui/hooks/use-config-property.d.ts +6 -0
  436. package/ui/hooks/use-config-property.d.ts.map +1 -1
  437. package/ui/hooks/use-kos-model.d.ts +7 -0
  438. package/ui/hooks/use-kos-model.d.ts.map +1 -1
  439. package/ui/hooks/use-kos-regions.d.ts.map +1 -1
  440. package/ui/hooks/view-model/index.d.ts +2 -0
  441. package/ui/hooks/view-model/index.d.ts.map +1 -0
  442. package/ui/hooks/view-model/use-view-model.d.ts +80 -0
  443. package/ui/hooks/view-model/use-view-model.d.ts.map +1 -0
  444. package/models/models/trouble-container/trouble-container-registration.d.ts +0 -5
  445. package/models/models/trouble-container/trouble-container-registration.d.ts.map +0 -1
  446. package/models/utils/kosmodel-compatible-future-mixin.d.ts +0 -142
  447. package/models/utils/kosmodel-compatible-future-mixin.d.ts.map +0 -1
  448. package/models/utils/kosmodel-interface-companion-mixin.d.ts +0 -83
  449. package/models/utils/kosmodel-interface-companion-mixin.d.ts.map +0 -1
@@ -0,0 +1,534 @@
1
+ import { DependencyLifecycle } from '../../types';
2
+
3
+ /**
4
+ * Configuration for a KOS state machine.
5
+ *
6
+ * @template TState Union type of valid state strings
7
+ * @template TEvent Union type of valid event strings
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * const config: KosStateMachineConfig<'idle' | 'active', 'START' | 'STOP'> = {
12
+ * initial: 'idle',
13
+ * initializeAt: DependencyLifecycle.READY,
14
+ * states: {
15
+ * idle: { on: { START: 'active' } },
16
+ * active: { on: { STOP: 'idle' } }
17
+ * }
18
+ * };
19
+ * ```
20
+ *
21
+ * @kosService core.state-machine
22
+ * @kosApiLevel 15
23
+ */
24
+ export interface KosStateMachineConfig<TState extends string, TEvent extends string> {
25
+ /**
26
+ * The initial state when the state machine is initialized.
27
+ * This state will be set when the FSM reaches its configured lifecycle phase.
28
+ */
29
+ initial: TState;
30
+ /**
31
+ * The lifecycle phase at which the state machine should be initialized.
32
+ * Before this phase, currentState will be undefined and isFsmInitialized will be false.
33
+ *
34
+ * @default DependencyLifecycle.READY
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * // FSM initializes when model is ready (most common)
39
+ * initializeAt: DependencyLifecycle.READY
40
+ *
41
+ * // FSM initializes only when UI activates the model
42
+ * initializeAt: DependencyLifecycle.ACTIVATE
43
+ *
44
+ * // FSM initializes during model initialization (rare)
45
+ * initializeAt: DependencyLifecycle.INIT
46
+ * ```
47
+ */
48
+ initializeAt?: DependencyLifecycle;
49
+ /**
50
+ * State machine definition mapping states to their allowed transitions.
51
+ *
52
+ * @example
53
+ * ```typescript
54
+ * states: {
55
+ * idle: { on: { PREPARE: 'preparing' } },
56
+ * preparing: { on: { READY: 'ready', ERROR: 'error' } },
57
+ * ready: { on: { POUR: 'pouring' } },
58
+ * pouring: { on: { COMPLETE: 'idle', ERROR: 'error' } },
59
+ * error: { on: { RESET: 'idle' } }
60
+ * }
61
+ * ```
62
+ */
63
+ states: Record<TState, {
64
+ /**
65
+ * Mapping of events to target states.
66
+ * When an event occurs in this state, transition to the target state.
67
+ */
68
+ on?: Partial<Record<TEvent, TState>>;
69
+ /**
70
+ * Event to auto-send when an async @kosStateEntry handler resolves.
71
+ * Only triggers if the FSM is still in this state when the handler completes.
72
+ *
73
+ * @example
74
+ * ```typescript
75
+ * cancelling: {
76
+ * on: { CANCELLED: 'cancelled', FAIL: 'error' },
77
+ * onDone: 'CANCELLED', // auto-transition on success
78
+ * onError: 'FAIL', // auto-transition on failure
79
+ * }
80
+ * ```
81
+ */
82
+ onDone?: TEvent;
83
+ /**
84
+ * Event to auto-send when an async @kosStateEntry handler rejects.
85
+ * Only triggers if the FSM is still in this state when the handler fails.
86
+ */
87
+ onError?: TEvent;
88
+ }>;
89
+ }
90
+ /**
91
+ * Options for configuring state machine behavior.
92
+ *
93
+ * @kosService core.state-machine
94
+ * @kosApiLevel 15
95
+ */
96
+ export interface KosStateMachineOptions {
97
+ /**
98
+ * Property name for storing the current state.
99
+ *
100
+ * @default "currentState"
101
+ */
102
+ stateProperty?: string;
103
+ /**
104
+ * Whether to track state history.
105
+ * When enabled, a stateHistory array is maintained with timestamps and events.
106
+ *
107
+ * @default false
108
+ */
109
+ trackHistory?: boolean;
110
+ /**
111
+ * Whether to throw errors on invalid transitions.
112
+ * When false, invalid transitions are logged as warnings instead.
113
+ *
114
+ * @default true
115
+ */
116
+ throwOnInvalid?: boolean;
117
+ /**
118
+ * Optional function to compute the initial FSM state dynamically at instance creation time.
119
+ * When provided, this function is called with the model instance and its return value
120
+ * is used as the initial state instead of the static `initial` from the config.
121
+ *
122
+ * This is useful for ViewModels that wrap an existing model which may already be in
123
+ * a non-default state (e.g., a connection that is already CONNECTED on app load).
124
+ *
125
+ * Note: Entry handlers are NOT called for the computed initial state since it
126
+ * represents current state, not a transition.
127
+ *
128
+ * @param instance The model/ViewModel instance (after constructor, before makeAutoObservable)
129
+ * @returns The initial FSM state to use
130
+ *
131
+ * @example
132
+ * ```typescript
133
+ * @kosStateMachine(fsmConfig, {
134
+ * computeInitialState: (instance) => {
135
+ * const state = instance.connection?.state;
136
+ * return state === 'CONNECTED' ? 'connected' : 'inactive';
137
+ * }
138
+ * })
139
+ * ```
140
+ * @kosApiLevel 21
141
+ */
142
+ computeInitialState?: (instance: any) => string;
143
+ }
144
+ /**
145
+ * Interface for models using the @kosStateMachine decorator.
146
+ *
147
+ * **IMPORTANT**: Use TypeScript interface merging to add FSM properties to your model class.
148
+ * This provides full type safety and IntelliSense support for all injected FSM functionality.
149
+ *
150
+ * ## Interface Merging Pattern
151
+ *
152
+ * ```typescript
153
+ * // 1. Define state and event types
154
+ * type PourState = 'idle' | 'preparing' | 'ready' | 'pouring' | 'error';
155
+ * type PourEvent = 'PREPARE' | 'READY' | 'POUR' | 'COMPLETE' | 'ERROR';
156
+ *
157
+ * // 2. Declare interface merging BEFORE the class
158
+ * interface DispenserModelImpl extends KosStateMachineAware<PourState, PourEvent> {}
159
+ *
160
+ * // 3. Apply decorators and implement the class
161
+ * @kosModel({ modelTypeId: "dispenser-model" })
162
+ * @kosStateMachine<PourState, PourEvent>({
163
+ * initial: 'idle',
164
+ * initializeAt: DependencyLifecycle.READY,
165
+ * states: {
166
+ * idle: { on: { PREPARE: 'preparing' } },
167
+ * preparing: { on: { READY: 'ready', ERROR: 'error' } },
168
+ * ready: { on: { POUR: 'pouring' } },
169
+ * pouring: { on: { COMPLETE: 'idle', ERROR: 'error' } },
170
+ * error: {}
171
+ * }
172
+ * })
173
+ * export class DispenserModelImpl implements IKosDataModel {
174
+ * // All FSM properties are now available with full type safety
175
+ * }
176
+ * ```
177
+ *
178
+ * ## Lifecycle-Aware Initialization
179
+ *
180
+ * The FSM is uninitialized until the configured lifecycle phase:
181
+ * - Before initialization: `currentState === undefined`, `isFsmInitialized === false`
182
+ * - After initialization: `currentState === initial`, `isFsmInitialized === true`
183
+ *
184
+ * ```typescript
185
+ * @kosStateMachine({
186
+ * initial: 'idle',
187
+ * initializeAt: DependencyLifecycle.READY, // FSM starts when model is ready
188
+ * states: { ... }
189
+ * })
190
+ * class MyModel {
191
+ * async ready(): Promise<void> {
192
+ * // Before this completes: this.currentState === undefined
193
+ * // After this completes: this.currentState === 'idle'
194
+ * }
195
+ * }
196
+ * ```
197
+ *
198
+ * ## Injected Properties and Methods
199
+ *
200
+ * The decorator automatically injects the following members:
201
+ *
202
+ * - **`currentState`**: Current state (undefined until FSM initialized, observable)
203
+ * - **`isFsmInitialized`**: Boolean indicating if FSM has been initialized
204
+ * - **`isTransitioning`**: Boolean indicating if a transition is in progress
205
+ * - **`allowedTransitions`**: Computed array of valid events for current state
206
+ * - **`transition(event)`**: Method to trigger state transitions
207
+ * - **`canTransition(event)`**: Check if a transition is valid from current state
208
+ * - **`isInState(state)`**: Check if currently in a specific state
209
+ * - **`stateHistory`**: Array of historical states (if trackHistory enabled)
210
+ *
211
+ * All properties are reactive and will automatically update UI components when state changes.
212
+ *
213
+ * @template TState Union type of valid state strings
214
+ * @template TEvent Union type of valid event strings
215
+ *
216
+ * @see {@link kosStateMachine} - The decorator function
217
+ * @see {@link KosStateMachineConfig} - Configuration interface
218
+ * @see {@link KosStateMachineOptions} - Options interface
219
+ *
220
+ * @kosService core.state-machine
221
+ * @kosApiLevel 15
222
+ */
223
+ export interface KosStateMachineAware<TState extends string, TEvent extends string> {
224
+ /**
225
+ * Current state of the state machine.
226
+ * Observable property that updates automatically via @kosModel.
227
+ * Always initialized to the initial state immediately.
228
+ */
229
+ currentState: TState;
230
+ /**
231
+ * Indicates whether the state machine has been initialized.
232
+ * FSM initializes at the configured lifecycle phase (READY, ACTIVATE, etc.).
233
+ *
234
+ * - Before initialization: `false`, `currentState === undefined`
235
+ * - After initialization: `true`, `currentState === initial`
236
+ */
237
+ readonly isFsmInitialized: boolean;
238
+ /**
239
+ * Indicates whether a state transition is currently in progress.
240
+ * Observable property that updates during transitions.
241
+ */
242
+ isTransitioning: boolean;
243
+ /**
244
+ * Computed array of valid events that can be triggered from the current state.
245
+ * Updates automatically when state changes.
246
+ * Returns empty array if FSM is not initialized.
247
+ */
248
+ readonly allowedTransitions: TEvent[];
249
+ /**
250
+ * Trigger a state transition by event.
251
+ *
252
+ * @param event The event to trigger
253
+ * @throws Error if FSM not initialized (unless `throwOnInvalid` is false)
254
+ * @throws Error if transition is invalid (unless `throwOnInvalid` is false)
255
+ *
256
+ * @example
257
+ * ```typescript
258
+ * this.transition('START'); // idle -> active
259
+ * this.transition('STOP'); // active -> idle
260
+ * ```
261
+ */
262
+ transition(event: TEvent): void;
263
+ /**
264
+ * Check if a transition is valid from the current state.
265
+ * Returns false if FSM is not initialized.
266
+ *
267
+ * @param event The event to check
268
+ * @returns true if the transition is valid, false otherwise
269
+ *
270
+ * @example
271
+ * ```typescript
272
+ * if (this.canTransition('START')) {
273
+ * this.transition('START');
274
+ * }
275
+ * ```
276
+ */
277
+ canTransition(event: TEvent): boolean;
278
+ /**
279
+ * Check if the state machine is currently in a specific state.
280
+ * Returns false if FSM is not initialized.
281
+ *
282
+ * @param state The state to check
283
+ * @returns true if currently in the specified state, false otherwise
284
+ *
285
+ * @example
286
+ * ```typescript
287
+ * if (this.isInState('idle')) {
288
+ * console.log('System is idle');
289
+ * }
290
+ * ```
291
+ */
292
+ isInState(state: TState): boolean;
293
+ /**
294
+ * History of state transitions (if trackHistory is enabled).
295
+ * Each entry contains the state, timestamp, and optional event that caused the transition.
296
+ *
297
+ * Only available when `trackHistory: true` is set in options.
298
+ */
299
+ stateHistory?: Array<{
300
+ state: TState;
301
+ timestamp: Date;
302
+ event?: TEvent;
303
+ }>;
304
+ }
305
+ /**
306
+ * Class decorator that adds finite state machine capabilities to a KOS model.
307
+ *
308
+ * This decorator eliminates manual state management boilerplate by:
309
+ * - **Adding lifecycle-aware FSM initialization** at configured phase (READY, ACTIVATE, etc.)
310
+ * - **Managing state transitions** automatically with validation
311
+ * - **Providing observable state** that integrates with @kosModel reactive system
312
+ * - **Supporting entry/exit handlers** via @kosStateEntry and @kosStateExit decorators
313
+ * - **Enabling state guards** via @kosStateGuard decorator
314
+ *
315
+ * ## Two-Level State System
316
+ *
317
+ * **Framework Lifecycle (Universal, Not Customizable):**
318
+ * - CREATED → INIT → LOAD → READY → ACTIVATE → UNLOAD → DESTROY
319
+ * - Managed by KOS framework
320
+ * - Same for all models
321
+ *
322
+ * **Application FSM (This Decorator):**
323
+ * - Runs WITHIN an active model
324
+ * - Application-specific business logic
325
+ * - Different for each model type
326
+ * - Examples: Pour states, connection states, workflow states
327
+ *
328
+ * ## Lifecycle Integration
329
+ *
330
+ * The FSM initializes at the configured lifecycle phase:
331
+ *
332
+ * ```typescript
333
+ * @kosStateMachine({
334
+ * initial: 'idle',
335
+ * initializeAt: DependencyLifecycle.READY, // Default
336
+ * states: { ... }
337
+ * })
338
+ * ```
339
+ *
340
+ * - **INIT**: FSM needs to be active during model initialization (rare)
341
+ * - **READY**: FSM operational as soon as data loaded (most common)
342
+ * - **ACTIVATE**: FSM only relevant when UI is active (UI-bound models)
343
+ *
344
+ * ## TypeScript Usage
345
+ *
346
+ * **IMPORTANT**: Use TypeScript interface merging to get proper type information:
347
+ *
348
+ * ```typescript
349
+ * type MyState = 'idle' | 'active';
350
+ * type MyEvent = 'START' | 'STOP';
351
+ *
352
+ * interface MyModelImpl extends KosStateMachineAware<MyState, MyEvent> {}
353
+ *
354
+ * @kosStateMachine<MyState, MyEvent>({ ... })
355
+ * class MyModelImpl implements IKosDataModel {
356
+ * // All FSM properties are now available with full type safety
357
+ * }
358
+ * ```
359
+ *
360
+ * @param config State machine configuration
361
+ * @param options Optional configuration for FSM behavior
362
+ * @returns A class decorator that modifies the target class prototype
363
+ *
364
+ * @see {@link KosStateMachineAware} - Interface for TypeScript merging
365
+ * @see {@link KosStateMachineConfig} - Configuration interface
366
+ * @see {@link KosStateMachineOptions} - Options interface
367
+ *
368
+ * @example
369
+ * ```typescript
370
+ * // Basic FSM with default READY initialization
371
+ * type PourState = 'idle' | 'pouring' | 'complete';
372
+ * type PourEvent = 'START' | 'FINISH';
373
+ *
374
+ * interface PourModelImpl extends KosStateMachineAware<PourState, PourEvent> {}
375
+ *
376
+ * @kosModel({ modelTypeId: "pour-model" })
377
+ * @kosStateMachine<PourState, PourEvent>({
378
+ * initial: 'idle',
379
+ * states: {
380
+ * idle: { on: { START: 'pouring' } },
381
+ * pouring: { on: { FINISH: 'complete' } },
382
+ * complete: {}
383
+ * }
384
+ * })
385
+ * class PourModelImpl implements IKosDataModel {
386
+ * async ready(): Promise<void> {
387
+ * // After this completes, FSM is initialized to 'idle'
388
+ * }
389
+ *
390
+ * startPour(): void {
391
+ * this.transition('START'); // idle -> pouring
392
+ * }
393
+ * }
394
+ * ```
395
+ *
396
+ * @example
397
+ * ```typescript
398
+ * // UI-bound FSM with ACTIVATE initialization
399
+ * type WorkflowState = 'draft' | 'review' | 'approved';
400
+ * type WorkflowEvent = 'SUBMIT' | 'APPROVE' | 'REJECT';
401
+ *
402
+ * interface DocumentModelImpl extends KosStateMachineAware<WorkflowState, WorkflowEvent> {}
403
+ *
404
+ * @kosModel({ modelTypeId: "document-model" })
405
+ * @kosStateMachine<WorkflowState, WorkflowEvent>({
406
+ * initial: 'draft',
407
+ * initializeAt: DependencyLifecycle.ACTIVATE, // UI-bound
408
+ * states: {
409
+ * draft: { on: { SUBMIT: 'review' } },
410
+ * review: { on: { APPROVE: 'approved', REJECT: 'draft' } },
411
+ * approved: {}
412
+ * }
413
+ * })
414
+ * class DocumentModelImpl implements IKosDataModel {
415
+ * // FSM only initializes when UI activates this model
416
+ * }
417
+ * ```
418
+ *
419
+ * @example
420
+ * ```typescript
421
+ * // FSM with history tracking
422
+ * interface HistoryModelImpl extends KosStateMachineAware<'idle' | 'active', 'TOGGLE'> {}
423
+ *
424
+ * @kosStateMachine<'idle' | 'active', 'TOGGLE'>(
425
+ * {
426
+ * initial: 'idle',
427
+ * states: {
428
+ * idle: { on: { TOGGLE: 'active' } },
429
+ * active: { on: { TOGGLE: 'idle' } }
430
+ * }
431
+ * },
432
+ * {
433
+ * trackHistory: true,
434
+ * stateProperty: 'status'
435
+ * }
436
+ * )
437
+ * class HistoryModelImpl implements IKosDataModel {
438
+ * // Access via this.stateHistory
439
+ * }
440
+ * ```
441
+ *
442
+ * @category KOS Model Decorator
443
+ * @since 2.1.0
444
+ * @kosService core.state-machine
445
+ * @kosApiLevel 15
446
+ */
447
+ export declare function kosStateMachine<TState extends string, TEvent extends string>(config: KosStateMachineConfig<TState, TEvent>, options?: KosStateMachineOptions): ClassDecorator;
448
+ /**
449
+ * Method decorator that marks a method as a state entry handler.
450
+ * The decorated method will be called when the state machine enters the specified state.
451
+ *
452
+ * @param state The state to handle entry for
453
+ * @returns A method decorator
454
+ *
455
+ * @example
456
+ * ```typescript
457
+ * @kosStateEntry('pouring')
458
+ * handlePouringStart(): void {
459
+ * this.logger.info('Pour started');
460
+ * EventBus.publish(TOPIC_POUR_STARTED, { id: this.id });
461
+ * }
462
+ * ```
463
+ *
464
+ * @kosService core.state-machine
465
+ * @kosApiLevel 15
466
+ */
467
+ export declare function kosStateEntry<TState extends string>(state: TState): MethodDecorator;
468
+ /**
469
+ * Method decorator that marks a method as a state exit handler.
470
+ * The decorated method will be called when the state machine exits the specified state.
471
+ *
472
+ * @param state The state to handle exit for
473
+ * @returns A method decorator
474
+ *
475
+ * @example
476
+ * ```typescript
477
+ * @kosStateExit('pouring')
478
+ * handlePouringEnd(): void {
479
+ * this.logger.info('Pour ended');
480
+ * EventBus.publish(TOPIC_POUR_ENDED, { id: this.id });
481
+ * }
482
+ * ```
483
+ *
484
+ * @kosService core.state-machine
485
+ * @kosApiLevel 15
486
+ */
487
+ export declare function kosStateExit<TState extends string>(state: TState): MethodDecorator;
488
+ /**
489
+ * Options for @kosStateGuard decorator.
490
+ *
491
+ * @kosService core.state-machine
492
+ * @kosApiLevel 15
493
+ */
494
+ export interface KosStateGuardOptions<TState extends string> {
495
+ /**
496
+ * Array of states in which the decorated method can be called.
497
+ * The method will throw an error (or log a warning) if called from any other state.
498
+ */
499
+ allowedStates: TState[];
500
+ /**
501
+ * Whether to throw an error on invalid state.
502
+ * When false, logs a warning instead.
503
+ *
504
+ * @default true (uses the FSM's throwOnInvalid setting)
505
+ */
506
+ throwOnInvalid?: boolean;
507
+ }
508
+ /**
509
+ * Method decorator that guards a method with state validation.
510
+ * The decorated method can only be called when the state machine is in one of the allowed states.
511
+ *
512
+ * **IMPORTANT**: This decorator gracefully handles uninitialized FSM:
513
+ * - If FSM is not yet initialized, the guard allows the method to proceed
514
+ * - Once FSM is initialized, the guard enforces state validation
515
+ *
516
+ * @param options Guard configuration
517
+ * @returns A method decorator
518
+ *
519
+ * @example
520
+ * ```typescript
521
+ * @kosStateGuard({ allowedStates: ['ready'] })
522
+ * async pourBeverage(bevId: string): Promise<void> {
523
+ * // This method can only be called when currentState === 'ready'
524
+ * this.transition('POUR');
525
+ * await this.deviceService.dispense(bevId);
526
+ * this.transition('COMPLETE');
527
+ * }
528
+ * ```
529
+ *
530
+ * @kosService core.state-machine
531
+ * @kosApiLevel 15
532
+ */
533
+ export declare function kosStateGuard<TState extends string>(options: KosStateGuardOptions<TState>): MethodDecorator;
534
+ //# sourceMappingURL=kos-state-machine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kos-state-machine.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-ui-sdk/src/core/core/decorators/kos-state-machine.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,11 @@
1
- import { IKosDataModel } from '../kosModel';
2
1
  import { IKosTopicHandlerParams } from './kosTopicHandler';
2
+ import { IKosDataModel } from '../kosModel';
3
3
 
4
4
  /**
5
5
  * Advanced flow control options for kosTopicHandler
6
+ *
7
+ * @kosService core.topic-handler
8
+ * @kosApiLevel 12
6
9
  */
7
10
  export interface FlowControlOptions<T = any, R = T> {
8
11
  /**
@@ -66,6 +69,10 @@ export interface FlowControlOptions<T = any, R = T> {
66
69
  continueOnError?: boolean;
67
70
  };
68
71
  }
72
+ /**
73
+ * @kosService core.topic-handler
74
+ * @kosApiLevel 12
75
+ */
69
76
  export interface FilterContext {
70
77
  /** Previous events in the filter history */
71
78
  history: any[];
@@ -76,6 +83,9 @@ export interface FilterContext {
76
83
  }
77
84
  /**
78
85
  * Enhanced kosTopicHandler params with flow control
86
+ *
87
+ * @kosService core.topic-handler
88
+ * @kosApiLevel 12
79
89
  */
80
90
  export interface IKosTopicHandlerFlowParams<T = any, Model extends IKosDataModel = any, R = T> extends IKosTopicHandlerParams<T, Model, R> {
81
91
  /**
@@ -85,6 +95,9 @@ export interface IKosTopicHandlerFlowParams<T = any, Model extends IKosDataModel
85
95
  }
86
96
  /**
87
97
  * Statistics for monitoring flow control performance
98
+ *
99
+ * @kosService core.topic-handler
100
+ * @kosApiLevel 12
88
101
  */
89
102
  export interface FlowControlStats {
90
103
  /** Total events received */
@@ -104,6 +117,9 @@ export interface FlowControlStats {
104
117
  }
105
118
  /**
106
119
  * Internal flow control manager
120
+ *
121
+ * @kosService core.topic-handler
122
+ * @kosApiLevel 12
107
123
  */
108
124
  export declare class FlowControlManager<T = any, R = T> {
109
125
  private config;
@@ -1 +1 @@
1
- {"version":3,"file":"kos-topic-handler-flow-control.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-ui-sdk/src/core/core/decorators/kos-topic-handler-flow-control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kos-topic-handler-flow-control.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-ui-sdk/src/core/core/decorators/kos-topic-handler-flow-control.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * @kosService core.trouble-aware
3
+ * @kosApiLevel 13
4
+ */
5
+ export interface KosTroubleAwareOptions {
6
+ /** Path property name to use for trouble resolution. Default: 'path' */
7
+ pathProperty?: string;
8
+ }
9
+ /**
10
+ * Class decorator that automatically adds TroubleAware capabilities to a KOS model.
11
+ *
12
+ * This decorator eliminates the need for manual TroubleAware interface implementation by:
13
+ * - Adding troubleContainer dependency injection (internal, not exposed)
14
+ * - Adding troubles getter that filters by model path
15
+ * - Adding troubleStatus getter (returns empty string by default)
16
+ * - Adding troublesByType getter that groups troubles by type
17
+ *
18
+ * **Important**: Use TypeScript interface merging to get proper type information:
19
+ *
20
+ * ```typescript
21
+ * // Add ESLint disable comment at top of file, then:
22
+ * interface MyModelImpl extends TroubleAware {}
23
+ *
24
+ * @kosTroubleAware()
25
+ * class MyModelImpl implements IKosDataModel {
26
+ * path: string; // Required for trouble resolution
27
+ *
28
+ * constructor(modelId: string, options: MyOptions) {
29
+ * this.path = options.path;
30
+ * // All TroubleAware properties are now available with full type safety
31
+ * }
32
+ * }
33
+ * ```
34
+ *
35
+ * The decorator requires the model to have a path property (default) or specify
36
+ * a custom path property via options.
37
+ *
38
+ * @param options Configuration options for the decorator
39
+ * @returns A class decorator
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * // Default usage - uses this.path
44
+ * interface HolderModelImpl extends TroubleAware {}
45
+ *
46
+ * @kosTroubleAware()
47
+ * class HolderModelImpl implements IKosDataModel {
48
+ * path: string; // Required for trouble path resolution
49
+ *
50
+ * constructor(modelId: string, options: HolderOptions) {
51
+ * this.path = options.path;
52
+ * }
53
+ * }
54
+ *
55
+ * // Custom path property
56
+ * interface CustomModelImpl extends TroubleAware {}
57
+ *
58
+ * @kosTroubleAware({ pathProperty: 'devicePath' })
59
+ * class CustomModelImpl implements IKosDataModel {
60
+ * devicePath: string; // Custom path property
61
+ *
62
+ * constructor(modelId: string, options: CustomOptions) {
63
+ * this.devicePath = options.devicePath;
64
+ * }
65
+ * }
66
+ *
67
+ * // Type-safe external interface
68
+ * export type HolderModel = PublicModelInterface<HolderModelImpl> & TroubleAware;
69
+ * ```
70
+ *
71
+ * @category KOS Model Decorator
72
+ * @since 2.0.0
73
+ * @kosService core.trouble-aware
74
+ * @kosApiLevel 13
75
+ */
76
+ export declare function kosTroubleAware(options?: KosTroubleAwareOptions): ClassDecorator;
77
+ //# sourceMappingURL=kos-trouble-aware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kos-trouble-aware.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-ui-sdk/src/core/core/decorators/kos-trouble-aware.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,CAAC,EAAE,sBAAsB,GAC/B,cAAc,CAsBhB"}