@kosdev-code/kos-ui-sdk 0.1.0-next.807 → 0.1.0-next.809

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.
@@ -13,6 +13,23 @@ export interface IKosConnectionStatus {
13
13
  status: string;
14
14
  message?: string;
15
15
  }
16
+ /**
17
+ * Options for {@link IKosServiceTransport.whenReady}.
18
+ *
19
+ * @kosService core.transport
20
+ * @kosApiLevel 23
21
+ */
22
+ export interface KosTransportReadyOptions {
23
+ /**
24
+ * Cancels the readiness wait when it aborts. Without one the wait is
25
+ * indefinite, which is correct for startup/lifecycle code but not for a
26
+ * request working against a deadline.
27
+ *
28
+ * When the signal aborts, `whenReady` rejects with the signal's reason and
29
+ * disposes the underlying reactive waiter.
30
+ */
31
+ signal?: AbortSignal;
32
+ }
16
33
  export interface KosSubscriptionParams {
17
34
  topic: string;
18
35
  callback: EventCallback;
@@ -32,7 +49,7 @@ export interface IKosServiceTransport {
32
49
  socket?: MessageTransport;
33
50
  init(): IKosServiceTransport;
34
51
  subscribeTopic(params: KosSubscriptionParams): VoidFunction;
35
- whenReady(): Promise<IKosConnectionStatus>;
52
+ whenReady(options?: KosTransportReadyOptions): Promise<IKosConnectionStatus>;
36
53
  fosSocket?: MessageTransport;
37
54
  }
38
55
  export type KosCallback = (msg: IKosMessage) => void;
@@ -78,7 +95,18 @@ export declare class WebSocketTransport implements IKosServiceTransport {
78
95
  private calculateBackoffDelay;
79
96
  private _sendSubscriptionMessage;
80
97
  subscribeTopic({ topic, callback, fos, bridge, destinationAddress, explicitDestination, }: KosSubscriptionParams): () => void;
81
- whenReady(): Promise<{
98
+ /**
99
+ * Resolves once the transport can carry requests: the socket (and the FOS
100
+ * socket, when used) is connected and the connection is authorized.
101
+ *
102
+ * Pass `options.signal` to bound the wait. `connectionEstablished` flips back
103
+ * to `false` on socket close, so an unbounded wait parks indefinitely while
104
+ * the transport is down — callers with a deadline must supply a signal.
105
+ *
106
+ * @param options - See {@link KosTransportReadyOptions}.
107
+ * @throws The signal's abort reason if it aborts before the transport is ready.
108
+ */
109
+ whenReady(options?: KosTransportReadyOptions): Promise<{
82
110
  status: string;
83
111
  }>;
84
112
  get token(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"webSocketTransport.d.ts","sourceRoot":"","sources":["../../../../../../packages/kos-ui-sdk/src/core/core/transport/webSocketTransport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webSocketTransport.d.ts","sourceRoot":"","sources":["../../../../../../packages/kos-ui-sdk/src/core/core/transport/webSocketTransport.ts"],"names":[],"mappings":"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"}
@@ -141,6 +141,23 @@ export interface KosFetchOptions {
141
141
  * @internal
142
142
  */
143
143
  bridge?: boolean;
144
+ /**
145
+ * Timeout budget for the **entire call**, in milliseconds: waiting for the
146
+ * transport to become ready plus the request itself.
147
+ *
148
+ * A request issued while the socket is down or reconnecting settles within
149
+ * this budget — it rejects with a `TransportNotReadyError` if the transport
150
+ * never becomes ready — rather than queuing indefinitely. If the transport
151
+ * becomes ready with budget remaining, the remainder applies to the request,
152
+ * which then rejects with a `TimeoutError` `DOMException`. The two errors are
153
+ * distinct so callers can tell "service is slow" from "transport is down".
154
+ *
155
+ * Defaults to the `KOS_WS_TIMEOUT` environment value, or 30000.
156
+ *
157
+ * Pass `0` or `Infinity` to opt out of the budget entirely and queue until
158
+ * the transport recovers — a request that does this can never settle while
159
+ * the socket is down.
160
+ */
144
161
  timeout?: number;
145
162
  /**
146
163
  * @kosApiLevel 5
@@ -1 +1 @@
1
- {"version":3,"file":"kos-fetch.d.ts","sourceRoot":"","sources":["../../../../../../packages/kos-ui-sdk/src/core/types/utils/kos-fetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kos-fetch.d.ts","sourceRoot":"","sources":["../../../../../../packages/kos-ui-sdk/src/core/types/utils/kos-fetch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Waits for a MobX predicate to become `true`, but gives up as soon as the
3
+ * supplied signal aborts.
4
+ *
5
+ * MobX's `when()` waits forever by design. That is the right default for
6
+ * lifecycle code, but a caller working against a deadline needs the wait to be
7
+ * cancellable — and, more importantly, needs the underlying reaction disposed
8
+ * when it gives up. Without disposal, every abandoned waiter leaves a live
9
+ * reaction observing the predicate for the lifetime of the process.
10
+ *
11
+ * @param predicate - The reactive condition to wait for.
12
+ * @param signal - Optional signal that cancels the wait. When omitted the wait
13
+ * is indefinite, matching plain `when()`.
14
+ * @returns A promise that resolves once the predicate holds.
15
+ * @throws The signal's abort reason (a `TimeoutError` or `AbortError`
16
+ * `DOMException` for signals created by the SDK) if it aborts first.
17
+ *
18
+ * @internal
19
+ */
20
+ export declare const abortableWhen: (predicate: () => boolean, signal?: AbortSignal) => Promise<void>;
21
+ //# sourceMappingURL=abortable-when.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abortable-when.d.ts","sourceRoot":"","sources":["../../../../../packages/kos-ui-sdk/src/core/util/abortable-when.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,aAAa,GACxB,WAAW,MAAM,OAAO,EACxB,SAAS,WAAW,KACnB,OAAO,CAAC,IAAI,CAqCd,CAAC"}
@@ -30,6 +30,7 @@ export * from './service-factory';
30
30
  export * from './service-request-error';
31
31
  export * from './service-response';
32
32
  export * from './session-utils';
33
+ export * from './transport-not-ready-error';
33
34
  export * from './wait-for-request';
34
35
  export * from './when-ready';
35
36
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/kos-ui-sdk/src/core/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,OAAO,KAAK,WAAW,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,QAAQ,CAAC;AACvB,cAAc,kCAAkC,CAAC;AACjD,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/kos-ui-sdk/src/core/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,OAAO,KAAK,WAAW,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,QAAQ,CAAC;AACvB,cAAc,kCAAkC,CAAC;AACjD,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"kos-fetch.d.ts","sourceRoot":"","sources":["../../../../../packages/kos-ui-sdk/src/core/util/kos-fetch.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAmBrE;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,MAAM,CAAC;CAChB;AAkTD;;;;;GAKG;AACH,QAAA,IAAI,QAAQ,QAAS,CAAC;AACtB;;;;;GAKG;AACH,QAAA,IAAI,QAAQ,QA/NL,MAAM,YACD,eAAe,KACxB,OAAO,CAAC,QAAQ,CA6NM,CAAC;AAS1B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"kos-fetch.d.ts","sourceRoot":"","sources":["../../../../../packages/kos-ui-sdk/src/core/util/kos-fetch.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAoBrE;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,MAAM,CAAC;CAChB;AA4XD;;;;;GAKG;AACH,QAAA,IAAI,QAAQ,QAAS,CAAC;AACtB;;;;;GAKG;AACH,QAAA,IAAI,QAAQ,QA9OL,MAAM,YACD,eAAe,KACxB,OAAO,CAAC,QAAQ,CA4OM,CAAC;AAS1B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { IKosDataModel, IKosModel } from '../core/kosModel';
2
+ import { KosModelState } from '../core/lifecycle';
2
3
  /**
3
4
  * Asynchronously destroys a KOS data model.
4
5
  *
@@ -143,4 +144,46 @@ export declare const isKosModel: <T extends IKosDataModel>(type: string) => (mod
143
144
  * @kosApiLevel 2
144
145
  */
145
146
  export declare const isKosModelReady: (model: IKosDataModel) => boolean;
147
+ /**
148
+ * An observable, read-only view of a model's activation lifecycle.
149
+ *
150
+ * Models that fetch lazily do so in `activate()`, so activation state — not
151
+ * `loaded`, which tracks the `load()` lifecycle — is what tells a consumer
152
+ * whether that fetch has settled and whether it succeeded. Exposing just this
153
+ * lets a view react to activation without taking a dependency on the whole
154
+ * {@link IKosModel}.
155
+ */
156
+ export interface KosModelActivationState {
157
+ /** The model's current activation state. */
158
+ readonly activeStatus: KosModelState;
159
+ /** Activation is in flight — nothing conclusive to render yet. */
160
+ readonly isActivating: boolean;
161
+ /** Activation completed; the model's activate() work is done. */
162
+ readonly isActive: boolean;
163
+ /** Activation threw — the model's data is absent, not empty. */
164
+ readonly isFailed: boolean;
165
+ }
166
+ /**
167
+ * Retrieves an observable view of a model's activation state.
168
+ *
169
+ * Every member is a getter, so reads happen at access time and stay tracked —
170
+ * call this once and read its properties inside a `kosComponent` (or any MobX
171
+ * reaction) to re-render as the model activates, succeeds, or fails.
172
+ *
173
+ * @param model - The KOS data model to observe.
174
+ * @returns The activation view, or `undefined` when the model has no wrapper
175
+ * yet (not created, or already destroyed).
176
+ *
177
+ * @example Distinguishing "still loading" from "empty" from "failed"
178
+ * ```tsx
179
+ * const activation = getKosModelActivationState(container);
180
+ * if (!activation || activation.isActivating) return <Blank />;
181
+ * if (activation.isFailed) return <LoadError />;
182
+ * return <Versions items={container.items} />;
183
+ * ```
184
+ *
185
+ * @kosService core.utils
186
+ * @kosApiLevel 15
187
+ */
188
+ export declare const getKosModelActivationState: (model: IKosDataModel | undefined) => KosModelActivationState | undefined;
146
189
  //# sourceMappingURL=kos-model-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"kos-model-utils.d.ts","sourceRoot":"","sources":["../../../../../packages/kos-ui-sdk/src/core/util/kos-model-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAKjE;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,GAAU,OAAO,aAAa,kBAGzD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAU,WAAW,aAAa,kBAS5D,CAAC;AACF;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,GAAU,OAAO,aAAa,kBAevD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,GAAU,SAAS,MAAM,gCAQpD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,WAAW,GAAU,CAAC,SAAS,aAAa,GAAG,aAAa,EACvE,SAAS,MAAM;WAQqB,CAAC;;EACtC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,aAAa,GAAG,aAAa,EACrE,SAAS,MAAM;WAOqB,CAAC;;CACtC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,aAAa,EAChD,WAAW,MAAM,EACjB,WAAW;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,KASZ,CAAC,EACrB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,aAAa,EAC/C,WAAW,MAAM,EACjB,WAAW;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,MACU,CAAC;AAE5C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,aAAa,EAC1D,OAAO,aAAa,EACpB,MAAM,MAAM,KAWwB,CACrC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB,GAAI,OAAO,aAAa,oBAc5D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAAI,SAAS,MAAM,mEAYtD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,aAAa,EACzD,SAAS,MAAM,EACf,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,KAC9B,SAAS,GAAG,SAWd,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,GACpB,CAAC,SAAS,aAAa,EAAE,MAAM,MAAM,MACrC,OAAO,GAAG,KAAG,KAAK,IAAI,CAC4B,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,aAAa,YAMnD,CAAC"}
1
+ {"version":3,"file":"kos-model-utils.d.ts","sourceRoot":"","sources":["../../../../../packages/kos-ui-sdk/src/core/util/kos-model-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAkB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIlE;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,GAAU,OAAO,aAAa,kBAGzD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAU,WAAW,aAAa,kBAS5D,CAAC;AACF;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,GAAU,OAAO,aAAa,kBAevD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,GAAU,SAAS,MAAM,gCAQpD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,WAAW,GAAU,CAAC,SAAS,aAAa,GAAG,aAAa,EACvE,SAAS,MAAM;WAQqB,CAAC;;EACtC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,aAAa,GAAG,aAAa,EACrE,SAAS,MAAM;WAOqB,CAAC;;CACtC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,aAAa,EAChD,WAAW,MAAM,EACjB,WAAW;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,KASZ,CAAC,EACrB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,aAAa,EAC/C,WAAW,MAAM,EACjB,WAAW;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,MACU,CAAC;AAE5C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,aAAa,EAC1D,OAAO,aAAa,EACpB,MAAM,MAAM,KAWwB,CACrC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB,GAAI,OAAO,aAAa,oBAc5D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAAI,SAAS,MAAM,mEAYtD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,aAAa,EACzD,SAAS,MAAM,EACf,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,KAC9B,SAAS,GAAG,SAWd,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,GACpB,CAAC,SAAS,aAAa,EAAE,MAAM,MAAM,MACrC,OAAO,GAAG,KAAG,KAAK,IAAI,CAC4B,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,aAAa,YAMnD,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,WAAW,uBAAuB;IACtC,4CAA4C;IAC5C,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC;IACrC,kEAAkE;IAClE,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,0BAA0B,GACrC,OAAO,aAAa,GAAG,SAAS,KAC/B,uBAAuB,GAAG,SAuB5B,CAAC"}
@@ -13,6 +13,16 @@ export declare const resolveBaseUrl: () => {
13
13
  isMock: boolean;
14
14
  URL: string;
15
15
  };
16
+ /**
17
+ * Error string returned when the transport never became ready inside the
18
+ * request's timeout budget, so the request was never sent. Distinct from
19
+ * `"Request timed out"`, which means the request was sent and the service was
20
+ * slow.
21
+ *
22
+ * @kosService core.service-request
23
+ * @kosApiLevel 23
24
+ */
25
+ export declare const ERROR_TRANSPORT_NOT_READY = "Transport not ready";
16
26
  type NonNeverKeys<T> = {
17
27
  [K in keyof T]-?: T[K] extends never | undefined ? never : K;
18
28
  }[keyof T];
@@ -1 +1 @@
1
- {"version":3,"file":"kos-service-request.d.ts","sourceRoot":"","sources":["../../../../../packages/kos-ui-sdk/src/core/util/kos-service-request.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,UAAU,CAAC;AAG7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,YAAY,EAAE,oBAAoB,EAAE,CAAC;AAErC;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc;;;CAI1B,CAAC;AAIF,KAAK,YAAY,CAAC,CAAC,IAAI;KACpB,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,CAAC;CAC7D,CAAC,MAAM,CAAC,CAAC,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,OAAO,CACvC,YAAY,CAAC,CAAC,CAAC,EACf,YAAY,GAAG,aAAa,CAC7B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;KAC5B,MAAM,IAAI,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG;SAC5C,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,SAAS,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;KAClE,CAAC,MAAM,CAAC,GAAG,MAAM;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;KAAE,CAAC;CAC7E,CAAC;AAEF,KAAK,eAAe,CAClB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,CAAC,SAAS,MAAM,KAAK,IACnB,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAEhE,KAAK,gBAAgB,CACnB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,CAAC,SAAS,MAAM,KAAK,IACnB,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAEjE,KAAK,eAAe,CAClB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,CAAC,SAAS,MAAM,KAAK,IACnB,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAEhE,KAAK,kBAAkB,CACrB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,CAAC,SAAS,MAAM,KAAK,IACnB,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AASnE,KAAK,cAAc,CACjB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,CAAC,SAAS,MAAM,KAAK,IACnB,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS;IAAE,WAAW,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;CAAE,GAC9D,CAAC,CAAC,MAAM,CAAC,CAAC,GACV,KAAK,CAAC;AAEV,KAAK,aAAa,CAChB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,CAAC,SAAS,MAAM,KAAK,IACnB,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS;IAAE,WAAW,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;CAAE,GAC7D,CAAC,CAAC,MAAM,CAAC,CAAC,GACV,KAAK,CAAC;AASV;;GAEG;AACH,MAAM,MAAM,cAAc,CACxB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,CAAC,SAAS,MAAM,KAAK,EACrB,CAAC,SAAS,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,IAC3C,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;IAAE,SAAS,EAAE;QAAE,GAAG,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE,GAChE,CAAC,CAAC,MAAM,CAAC,CAAC,GACV,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,MAAM,YAAY,CACtB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,CAAC,SAAS,MAAM,KAAK,EACrB,CAAC,SAAS,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,IAC3C,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAE5D;;GAEG;AACH,MAAM,MAAM,UAAU,CACpB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,CAAC,SAAS,MAAM,KAAK,EACrB,CAAC,SAAS,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,IAC3C,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;IAAE,WAAW,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;CAAE,GACzD,CAAC,CAAC,MAAM,CAAC,CAAC,GACV,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IACzB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,oBAAoB,CAAC,GAChE,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAE3B;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI;KAC3B,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GACjC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAClB,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAC3B,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GACtB,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AACF;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAkO/D,KAAK,cAAc,GAAG,IAAI,CAAC,eAAe,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC;AAC/D;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;UAKpD,CAAC,8MACK,CAAC,WACF,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,YACxB,cAAc;WAGnB,CAAC,gNACI,CAAC,WACF,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,yDAEzB,cAAc;UAIpB,CAAC,8MACK,CAAC,WACF,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,wDAExB,cAAc;aAGjB,CAAC,oNACE,CAAC,WACF,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,wDAE3B,cAAc;EAU7B"}
1
+ {"version":3,"file":"kos-service-request.d.ts","sourceRoot":"","sources":["../../../../../packages/kos-ui-sdk/src/core/util/kos-service-request.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Discriminator carried by every {@link TransportNotReadyError}.
3
+ *
4
+ * Prefer checking `error.code === TRANSPORT_NOT_READY` over `instanceof` when
5
+ * the error may have crossed a bundle boundary (an app and the SDK can end up
6
+ * with separate copies of the class).
7
+ *
8
+ * @category Service Request
9
+ * @kosService core.fetch
10
+ * @kosApiLevel 23
11
+ */
12
+ export declare const TRANSPORT_NOT_READY = "TRANSPORT_NOT_READY";
13
+ /**
14
+ * Raised when a request's timeout budget expires while waiting for the KOS
15
+ * transport to become ready — the socket is closed, reconnecting, or not yet
16
+ * authorized — so the request was never sent.
17
+ *
18
+ * This is deliberately distinct from the `TimeoutError` `DOMException` raised
19
+ * when the request itself times out. The two call for different reactions:
20
+ *
21
+ * - `TimeoutError` — the request reached the service and the service was slow.
22
+ * Retrying later is usually reasonable.
23
+ * - `TransportNotReadyError` — connectivity is down. Retrying the same request
24
+ * will fail the same way until the socket comes back; surface a connectivity
25
+ * state to the user or trigger a reconnect/reload instead.
26
+ *
27
+ * @example
28
+ * ```typescript
29
+ * try {
30
+ * await api.get("/api/device/status", { timeout: 3000 });
31
+ * } catch (error) {
32
+ * if (isTransportNotReadyError(error)) {
33
+ * // websocket is down — show the offline UI
34
+ * }
35
+ * }
36
+ * ```
37
+ *
38
+ * @category Service Request
39
+ * @kosService core.fetch
40
+ * @kosApiLevel 23
41
+ */
42
+ export declare class TransportNotReadyError extends Error {
43
+ /** Stable discriminator; see {@link TRANSPORT_NOT_READY}. */
44
+ readonly code = "TRANSPORT_NOT_READY";
45
+ /**
46
+ * The budget, in milliseconds, that expired while waiting. `undefined` when
47
+ * the wait was cut short by a caller-supplied timeout signal rather than by
48
+ * the request's own budget.
49
+ */
50
+ readonly timeout?: number;
51
+ /** The URL of the request that was never sent. */
52
+ readonly url?: string;
53
+ constructor(details?: {
54
+ timeout?: number;
55
+ url?: string;
56
+ });
57
+ }
58
+ /**
59
+ * Type guard for {@link TransportNotReadyError} that works across bundle
60
+ * boundaries by checking the `code` discriminator rather than the prototype.
61
+ *
62
+ * @category Service Request
63
+ * @kosService core.fetch
64
+ * @kosApiLevel 23
65
+ */
66
+ export declare const isTransportNotReadyError: (error: unknown) => error is TransportNotReadyError;
67
+ //# sourceMappingURL=transport-not-ready-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport-not-ready-error.d.ts","sourceRoot":"","sources":["../../../../../packages/kos-ui-sdk/src/core/util/transport-not-ready-error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,yBAAuB;IAEpC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B,kDAAkD;IAClD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;gBAEV,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAO;CAU7D;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,GACnC,OAAO,OAAO,KACb,KAAK,IAAI,sBAC+D,CAAC"}
package/index.cjs CHANGED
@@ -2915,6 +2915,29 @@ const isKosModelReady = (model) => {
2915
2915
  }
2916
2916
  return kosModel2.isReady();
2917
2917
  };
2918
+ const getKosModelActivationState = (model) => {
2919
+ if (!model?.id) {
2920
+ return void 0;
2921
+ }
2922
+ const kosModel2 = KosCore.getInstance().modelManager.getModelById(model.id);
2923
+ if (!kosModel2) {
2924
+ return void 0;
2925
+ }
2926
+ return {
2927
+ get activeStatus() {
2928
+ return kosModel2.activeStatus;
2929
+ },
2930
+ get isActivating() {
2931
+ return kosModel2.activeStatus === KosModelState.ACTIVATING;
2932
+ },
2933
+ get isActive() {
2934
+ return kosModel2.activeStatus === KosModelState.ACTIVE;
2935
+ },
2936
+ get isFailed() {
2937
+ return kosModel2.activeStatus === KosModelState.FAILED;
2938
+ }
2939
+ };
2940
+ };
2918
2941
  const log$L = KosLog.createLogger({ name: "kos-model-factory" });
2919
2942
  const KosModelFactory = {
2920
2943
  byModelType: (modelType) => KosCore.getInstance().modelManager.getModelFactory(
@@ -6339,8 +6362,38 @@ const getMessageBody = (payload, skipParse) => {
6339
6362
  return payload.body || payload;
6340
6363
  }
6341
6364
  };
6365
+ const TRANSPORT_NOT_READY = "TRANSPORT_NOT_READY";
6366
+ class TransportNotReadyError extends Error {
6367
+ /** Stable discriminator; see {@link TRANSPORT_NOT_READY}. */
6368
+ code = TRANSPORT_NOT_READY;
6369
+ /**
6370
+ * The budget, in milliseconds, that expired while waiting. `undefined` when
6371
+ * the wait was cut short by a caller-supplied timeout signal rather than by
6372
+ * the request's own budget.
6373
+ */
6374
+ timeout;
6375
+ /** The URL of the request that was never sent. */
6376
+ url;
6377
+ constructor(details = {}) {
6378
+ super(
6379
+ `Transport not ready${details.timeout === void 0 ? "" : ` after ${details.timeout}ms`}${details.url ? ` - url: ${details.url}` : ""}`
6380
+ );
6381
+ this.name = "TransportNotReadyError";
6382
+ this.timeout = details.timeout;
6383
+ this.url = details.url;
6384
+ }
6385
+ }
6386
+ const isTransportNotReadyError = (error) => !!error && error.code === TRANSPORT_NOT_READY;
6342
6387
  const log$D = KosLog.createLogger({ name: "kos-fetch" });
6343
- const WS_TIMEOUT = process.env.KOS_WS_TIMEOUT ? parseInt(process.env.KOS_WS_TIMEOUT) : 3e4;
6388
+ const DEFAULT_WS_TIMEOUT = 3e4;
6389
+ const WS_TIMEOUT = (() => {
6390
+ const configured = process.env.KOS_WS_TIMEOUT ? parseInt(process.env.KOS_WS_TIMEOUT) : DEFAULT_WS_TIMEOUT;
6391
+ return Number.isNaN(configured) ? DEFAULT_WS_TIMEOUT : configured;
6392
+ })();
6393
+ const resolveTimeoutBudget = (timeout) => {
6394
+ const budget = timeout ?? WS_TIMEOUT;
6395
+ return Number.isFinite(budget) && budget > 0 ? budget : void 0;
6396
+ };
6344
6397
  const delay = () => new Promise((resolve) => {
6345
6398
  setTimeout(() => {
6346
6399
  resolve(true);
@@ -6374,6 +6427,14 @@ const combineSignals = (signals) => {
6374
6427
  }
6375
6428
  return controller.signal;
6376
6429
  };
6430
+ const createRequestSignal = (budget, callerSignal) => {
6431
+ const timeoutSignal = budget ? createTimeoutSignal(budget) : void 0;
6432
+ if (timeoutSignal && callerSignal) {
6433
+ return combineSignals([callerSignal, timeoutSignal]);
6434
+ }
6435
+ return timeoutSignal ?? callerSignal ?? new AbortController().signal;
6436
+ };
6437
+ const isTimeoutReason = (reason) => reason?.name === "TimeoutError";
6377
6438
  const fetchMessageFactory = (options) => {
6378
6439
  if (options?.studio) {
6379
6440
  return createStudioMessage;
@@ -6385,15 +6446,25 @@ const fetchMessageFactory = (options) => {
6385
6446
  };
6386
6447
  const kosFetchWs = async (url, options) => {
6387
6448
  const transport = KosCore.getInstance().transport;
6388
- await transport.whenReady();
6389
6449
  const requestId = uuid();
6390
6450
  const urlObj = new URL(url);
6391
6451
  const path = `${urlObj.pathname}${urlObj.search}`;
6392
6452
  log$D.debug(`path: ${path}`);
6393
- const TIMEOUT = options?.timeout || WS_TIMEOUT;
6453
+ const budget = resolveTimeoutBudget(options?.timeout);
6394
6454
  const messageFactory = fetchMessageFactory(options);
6395
- const timeoutSignal = createTimeoutSignal(TIMEOUT);
6396
- const signal = options?.signal ? combineSignals([options.signal, timeoutSignal]) : timeoutSignal;
6455
+ const signal = createRequestSignal(budget, options?.signal);
6456
+ try {
6457
+ await transport.whenReady({ signal });
6458
+ } catch (error) {
6459
+ if (isTimeoutReason(error)) {
6460
+ log$D.error(
6461
+ `Transport not ready${budget === void 0 ? "" : ` after ${budget}ms`} - request not sent - url: ${url}`
6462
+ );
6463
+ throw new TransportNotReadyError({ timeout: budget, url });
6464
+ }
6465
+ log$D.debug(`Request aborted while waiting for transport - url: ${url}`);
6466
+ throw error;
6467
+ }
6397
6468
  const processedBody = await processRequestBody(options?.body);
6398
6469
  const additionalHeaders = {};
6399
6470
  if (processedBody.contentType) {
@@ -6556,6 +6627,7 @@ const resolveBaseUrl = () => {
6556
6627
  };
6557
6628
  const log$C = KosLog.createLogger({ name: "kos-service-request" });
6558
6629
  const ERROR_UNKNOWN = "errUnknown";
6630
+ const ERROR_TRANSPORT_NOT_READY = "Transport not ready";
6559
6631
  const MUTATING_METHODS = /* @__PURE__ */ new Set(["POST", "PUT", "DELETE", "PATCH"]);
6560
6632
  const RETRY_DEFAULTS = {
6561
6633
  maxAttempts: 3,
@@ -6605,6 +6677,10 @@ async function executeFetch(fullUrl, fetchOptions) {
6605
6677
  const payload = await response.json();
6606
6678
  return [null, payload.data ?? payload];
6607
6679
  } catch (error) {
6680
+ if (isTransportNotReadyError(error)) {
6681
+ log$C.error(`Transport not ready, request not sent: ${fullUrl}`);
6682
+ return [ERROR_TRANSPORT_NOT_READY, null];
6683
+ }
6608
6684
  if (error instanceof DOMException) {
6609
6685
  if (error.name === "TimeoutError") {
6610
6686
  log$C.error(`Request timed out: ${fullUrl}`);
@@ -6648,6 +6724,10 @@ async function executeFetchWithRetry(fullUrl, fetchOptions, config2) {
6648
6724
  await new Promise((resolve) => setTimeout(resolve, delayMs));
6649
6725
  }
6650
6726
  } catch (error) {
6727
+ if (isTransportNotReadyError(error)) {
6728
+ log$C.error(`Transport not ready, request not sent: ${fullUrl}`);
6729
+ return [ERROR_TRANSPORT_NOT_READY, null];
6730
+ }
6651
6731
  if (error instanceof DOMException) {
6652
6732
  if (error.name === "TimeoutError") {
6653
6733
  log$C.error(`Request timed out: ${fullUrl}`);
@@ -7459,6 +7539,38 @@ class FlowControlManager {
7459
7539
  return { ...this.stats };
7460
7540
  }
7461
7541
  }
7542
+ const abortReason = (signal) => signal.reason ?? new DOMException("Aborted", "AbortError");
7543
+ const abortableWhen = async (predicate, signal) => {
7544
+ if (predicate()) {
7545
+ return;
7546
+ }
7547
+ if (!signal) {
7548
+ await mobx.when(predicate);
7549
+ return;
7550
+ }
7551
+ if (signal.aborted) {
7552
+ throw abortReason(signal);
7553
+ }
7554
+ const pending = mobx.when(predicate);
7555
+ let onAbort;
7556
+ try {
7557
+ await Promise.race([
7558
+ // `cancel()` below rejects this promise with MobX's WHEN_CANCELLED
7559
+ // sentinel. That rejection *is* the cancellation, never a real failure,
7560
+ // so it is swallowed here; the abort branch supplies the thrown reason.
7561
+ pending.catch(() => void 0),
7562
+ new Promise((_, reject) => {
7563
+ onAbort = () => reject(abortReason(signal));
7564
+ signal.addEventListener("abort", onAbort, { once: true });
7565
+ })
7566
+ ]);
7567
+ } finally {
7568
+ if (onAbort) {
7569
+ signal.removeEventListener("abort", onAbort);
7570
+ }
7571
+ pending.cancel();
7572
+ }
7573
+ };
7462
7574
  class WebSocketBridgeTransport extends WebSocket {
7463
7575
  constructor(address) {
7464
7576
  super(address);
@@ -8091,15 +8203,26 @@ ${dstAddr}topics:${topic}
8091
8203
  }
8092
8204
  };
8093
8205
  }
8094
- async whenReady() {
8095
- const that = this;
8206
+ /**
8207
+ * Resolves once the transport can carry requests: the socket (and the FOS
8208
+ * socket, when used) is connected and the connection is authorized.
8209
+ *
8210
+ * Pass `options.signal` to bound the wait. `connectionEstablished` flips back
8211
+ * to `false` on socket close, so an unbounded wait parks indefinitely while
8212
+ * the transport is down — callers with a deadline must supply a signal.
8213
+ *
8214
+ * @param options - See {@link KosTransportReadyOptions}.
8215
+ * @throws The signal's abort reason if it aborts before the transport is ready.
8216
+ */
8217
+ async whenReady(options) {
8096
8218
  if (!this.webSocketSupported) {
8097
8219
  return {
8098
8220
  status: `not supported`
8099
8221
  };
8100
8222
  }
8101
- await mobx.when(
8102
- () => !!that.socket?.connectionEstablished && (!that.useFosTransport || !!that.fosSocket?.connectionEstablished) && that.authorized
8223
+ await abortableWhen(
8224
+ () => !!this.socket?.connectionEstablished && (!this.useFosTransport || !!this.fosSocket?.connectionEstablished) && this.authorized,
8225
+ options?.signal
8103
8226
  );
8104
8227
  return {
8105
8228
  status: `success`
@@ -26932,6 +27055,7 @@ exports.DependencyResolutionPolicy = DependencyResolutionPolicy;
26932
27055
  exports.Device = Device;
26933
27056
  exports.DeviceServices = index$6;
26934
27057
  exports.DomIntersectionStrategy = DomIntersectionStrategy;
27058
+ exports.ERROR_TRANSPORT_NOT_READY = ERROR_TRANSPORT_NOT_READY;
26935
27059
  exports.EVENT_KOS_MODEL_READY = EVENT_KOS_MODEL_READY;
26936
27060
  exports.EVENT_TROUBLE_ADDED = EVENT_TROUBLE_ADDED;
26937
27061
  exports.EVENT_TROUBLE_REMOVED = EVENT_TROUBLE_REMOVED;
@@ -27114,6 +27238,7 @@ exports.SubscriptionHandlers = SubscriptionHandlers;
27114
27238
  exports.TIMER_END = TIMER_END;
27115
27239
  exports.TIMER_EVENT = TIMER_EVENT;
27116
27240
  exports.TOPIC_TIMER_TICK_EVENT = TOPIC_TIMER_TICK_EVENT;
27241
+ exports.TRANSPORT_NOT_READY = TRANSPORT_NOT_READY;
27117
27242
  exports.TimerManager = TimerManager;
27118
27243
  exports.TokenContext = TokenContext;
27119
27244
  exports.TokenProvider = TokenProvider;
@@ -27126,6 +27251,7 @@ exports.TranslationContainer = TranslationContainer;
27126
27251
  exports.TranslationContainerContext = TranslationContainerContext;
27127
27252
  exports.TranslationContext = TranslationContext;
27128
27253
  exports.TransportFactory = TransportFactory;
27254
+ exports.TransportNotReadyError = TransportNotReadyError;
27129
27255
  exports.Trouble = Trouble;
27130
27256
  exports.TroubleAwareSetup = TroubleAwareSetup;
27131
27257
  exports.TroubleContainer = TroubleContainer;
@@ -27220,6 +27346,7 @@ exports.getKosConnectionId = getKosConnectionId;
27220
27346
  exports.getKosLocalizationDescriptor = getKosLocalizationDescriptor;
27221
27347
  exports.getKosMessageLogging = getKosMessageLogging;
27222
27348
  exports.getKosModel = getKosModel$1;
27349
+ exports.getKosModelActivationState = getKosModelActivationState;
27223
27350
  exports.getKosModelSync = getKosModelSync;
27224
27351
  exports.getKosModelType = getKosModelType;
27225
27352
  exports.getKosServiceApi = getKosServiceApi;
@@ -27262,6 +27389,7 @@ exports.isLeapYear = isLeapYear;
27262
27389
  exports.isLocalRefId = isLocalRefId;
27263
27390
  exports.isNumber = isNumber;
27264
27391
  exports.isPrintable = isPrintable;
27392
+ exports.isTransportNotReadyError = isTransportNotReadyError;
27265
27393
  exports.isTroubleAware = isTroubleAware;
27266
27394
  exports.isValidDate = isValidDate;
27267
27395
  exports.kosAction = kosAction;