@kosdev-code/kos-ui-sdk 2.1.23 → 2.1.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/constants/model-constants.d.ts +9 -0
- package/core/constants/model-constants.d.ts.map +1 -0
- package/core/core/decorators/kos-service-request.d.ts +32 -2
- package/core/core/decorators/kos-service-request.d.ts.map +1 -1
- package/core/core/model-instantiator.d.ts.map +1 -1
- package/core/types/kos-dependency.d.ts +20 -8
- package/core/types/kos-dependency.d.ts.map +1 -1
- package/core/util/error-logger.d.ts +16 -0
- package/core/util/error-logger.d.ts.map +1 -0
- package/core/util/model-transition-utils.d.ts +41 -0
- package/core/util/model-transition-utils.d.ts.map +1 -0
- package/core/util/model-type-guards.d.ts +26 -0
- package/core/util/model-type-guards.d.ts.map +1 -0
- package/core/util/model-utils.d.ts +9 -27
- package/core/util/model-utils.d.ts.map +1 -1
- package/core/util/promise-utils.d.ts +58 -0
- package/core/util/promise-utils.d.ts.map +1 -0
- package/index.cjs +69 -62
- package/index.cjs.map +1 -1
- package/index.js +4488 -4373
- package/index.js.map +1 -1
- package/models/utils/index.d.ts +1 -0
- package/models/utils/index.d.ts.map +1 -1
- package/models/utils/openapi-index.d.ts +3 -0
- package/models/utils/openapi-index.d.ts.map +1 -0
- package/models/utils/service.d.ts +20 -2
- package/models/utils/service.d.ts.map +1 -1
- package/models/utils/services/kos/daily/openapi.d.ts +4349 -0
- package/models/utils/services/kos/daily/service.d.ts +120 -0
- package/models/utils/services/kos/daily/service.d.ts.map +1 -0
- package/models/utils/services/vfs/daily/openapi.d.ts +51 -0
- package/models/utils/services/vfs/daily/service.d.ts +120 -0
- package/models/utils/services/vfs/daily/service.d.ts.map +1 -0
- package/models/utils/services-index.d.ts +3 -0
- package/models/utils/services-index.d.ts.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Constants for KOS model lifecycle and operations
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Timeout in milliseconds for model lifecycle transitions.
|
|
6
|
+
* Models that don't complete their transition within this time will reject.
|
|
7
|
+
*/
|
|
8
|
+
export declare const MODEL_PROMISE_TIMEOUT_MS = 5000;
|
|
9
|
+
//# sourceMappingURL=model-constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-constants.d.ts","sourceRoot":"","sources":["../../../../../../packages/sdk/kos-ui-sdk/src/core/constants/model-constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,eAAO,MAAM,wBAAwB,OAAO,CAAC"}
|
|
@@ -2,9 +2,11 @@ import { KosExecutionContext } from './kos-execution-context';
|
|
|
2
2
|
import { KosModelRegistrationType } from '../registration/model-registration';
|
|
3
3
|
import { IKosDataModel } from '../kosModel';
|
|
4
4
|
import { ClientBody, ClientParams } from '../../util/kos-service-request';
|
|
5
|
+
import { KosFetchOptions } from '../../types/utils/kos-fetch';
|
|
5
6
|
import { ResponseCacheConfig } from '../../types/service-response-store';
|
|
6
7
|
import { DependencyLifecycle } from '../../types';
|
|
7
8
|
|
|
9
|
+
export type RequestOptions = Omit<KosFetchOptions, "method" | "body">;
|
|
8
10
|
export type { KosExecutionContext };
|
|
9
11
|
/**
|
|
10
12
|
* Symbol for storing service request handlers metadata on model instances
|
|
@@ -270,6 +272,26 @@ export interface IKosServiceRequestParams<Paths extends Record<string, any> = Re
|
|
|
270
272
|
* cache: { retention: ResponseRetention.PERMANENT }
|
|
271
273
|
*/
|
|
272
274
|
cache?: ResponseCacheConfig;
|
|
275
|
+
/**
|
|
276
|
+
* Request options for controlling fetch behavior
|
|
277
|
+
* These are merged with runtime options passed to ctx.$request()
|
|
278
|
+
* Runtime options take precedence over decorator options
|
|
279
|
+
*
|
|
280
|
+
* @example
|
|
281
|
+
* // Set default timeout and destination for all requests
|
|
282
|
+
* requestOptions: {
|
|
283
|
+
* destinationAddress: 'device-123',
|
|
284
|
+
* timeout: 10000
|
|
285
|
+
* }
|
|
286
|
+
*
|
|
287
|
+
* @example
|
|
288
|
+
* // Dynamic from method arguments
|
|
289
|
+
* requestOptions: (model, ...args) => ({
|
|
290
|
+
* destinationAddress: model.deviceId,
|
|
291
|
+
* headers: { 'X-Session': model.sessionId }
|
|
292
|
+
* })
|
|
293
|
+
*/
|
|
294
|
+
requestOptions?: RequestOptions | ((model: IKosDataModel, ...args: any[]) => RequestOptions);
|
|
273
295
|
}
|
|
274
296
|
/**
|
|
275
297
|
* Metadata stored for each service request handler
|
|
@@ -298,6 +320,7 @@ export interface ServiceRequestExecutor<Paths extends Record<string, any> = Reco
|
|
|
298
320
|
query?: infer Q;
|
|
299
321
|
} ? Q : never;
|
|
300
322
|
body?: ClientBody<Paths, Path, Method>;
|
|
323
|
+
requestOptions?: RequestOptions;
|
|
301
324
|
}): Promise<[string | null, any]>;
|
|
302
325
|
}
|
|
303
326
|
/**
|
|
@@ -339,7 +362,10 @@ export type ServiceRequestExecutorFn<Paths extends Record<string, any> = Record<
|
|
|
339
362
|
* ```typescript
|
|
340
363
|
* @kosServiceRequest({
|
|
341
364
|
* path: PATH_VM_INSTALL,
|
|
342
|
-
* method: 'post'
|
|
365
|
+
* method: 'post',
|
|
366
|
+
* requestOptions: {
|
|
367
|
+
* timeout: 10000 // Decorator-level default timeout
|
|
368
|
+
* }
|
|
343
369
|
* })
|
|
344
370
|
* async createRelease(
|
|
345
371
|
* path: string,
|
|
@@ -348,7 +374,11 @@ export type ServiceRequestExecutorFn<Paths extends Record<string, any> = Record<
|
|
|
348
374
|
* ): Promise<void> {
|
|
349
375
|
* const [error, response] = await ctx.$request({
|
|
350
376
|
* queryParams: { keySetId: keysetId },
|
|
351
|
-
* body: { path }
|
|
377
|
+
* body: { path },
|
|
378
|
+
* requestOptions: {
|
|
379
|
+
* destinationAddress: 'device-123', // Runtime options merged with decorator options
|
|
380
|
+
* headers: { 'X-Custom-Header': 'value' }
|
|
381
|
+
* }
|
|
352
382
|
* });
|
|
353
383
|
* if (error) throw new Error(error);
|
|
354
384
|
* return response?.data;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kos-service-request.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-ui-sdk/src/core/core/decorators/kos-service-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EACL,KAAK,mBAAmB,EAGzB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"kos-service-request.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-ui-sdk/src/core/core/decorators/kos-service-request.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-instantiator.d.ts","sourceRoot":"","sources":["../../../../../../packages/sdk/kos-ui-sdk/src/core/core/model-instantiator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"model-instantiator.d.ts","sourceRoot":"","sources":["../../../../../../packages/sdk/kos-ui-sdk/src/core/core/model-instantiator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAKpD,OAAO,EAAY,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE1E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAU5C;;;GAGG;AACH,qBAAa,oBAAoB;IAI7B,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,KAAK;IAJf,OAAO,CAAC,qBAAqB,CAA2B;gBAG9C,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,oBAAoB;IASrC,mBAAmB,CAAC,OAAO,SAAS,aAAa,EAC/C,MAAM,EAAE,MAAM,EACd,EAAE,CAAC,EAAE,MAAM,EACX,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAChC;QAAE,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE;IAwF/C;;;;;;;OAOG;IACH,qBAAqB,CACnB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,SAAS,CAAC,EAAE,mBAAmB;IAKjC;;;OAGG;IACH,OAAO,CAAC,sBAAsB;CAM/B"}
|
|
@@ -7,20 +7,28 @@ export declare enum DependencyLifecycle {
|
|
|
7
7
|
}
|
|
8
8
|
/**
|
|
9
9
|
* Policy for handling dependency resolution failures.
|
|
10
|
+
*
|
|
11
|
+
* All policies follow a lookup-first approach: The framework first checks if a model
|
|
12
|
+
* with the specified ID already exists. If found and the type matches, it returns the
|
|
13
|
+
* existing instance. Only if no existing model is found does the framework apply the
|
|
14
|
+
* resolution policy below.
|
|
10
15
|
*/
|
|
11
16
|
export declare enum DependencyResolutionPolicy {
|
|
12
17
|
/**
|
|
13
|
-
* CREATE (default) -
|
|
14
|
-
* If the model
|
|
18
|
+
* CREATE (default) - After lookup fails, attempt to create a new instance of the model.
|
|
19
|
+
* If the model requires options (via optionsRequired flag) and none are provided,
|
|
20
|
+
* it will fail with an exception.
|
|
15
21
|
*/
|
|
16
22
|
CREATE = "create",
|
|
17
23
|
/**
|
|
18
|
-
* CONTINUE -
|
|
19
|
-
* The property will be set to undefined
|
|
24
|
+
* CONTINUE - After lookup fails, do not attempt to create a new instance.
|
|
25
|
+
* The property will be set to undefined. Log the failure but allow execution to continue.
|
|
26
|
+
* Use for optional dependencies that can degrade gracefully.
|
|
20
27
|
*/
|
|
21
28
|
CONTINUE = "continue",
|
|
22
29
|
/**
|
|
23
|
-
* FAIL -
|
|
30
|
+
* FAIL - After lookup fails, throw an exception with detailed diagnostic logging.
|
|
31
|
+
* Use for critical dependencies where failure should halt execution.
|
|
24
32
|
*/
|
|
25
33
|
FAIL = "fail"
|
|
26
34
|
}
|
|
@@ -38,9 +46,13 @@ export interface KosDependencyParams<Options = unknown> {
|
|
|
38
46
|
lifecycle?: DependencyLifecycle;
|
|
39
47
|
/**
|
|
40
48
|
* Policy for handling dependency resolution failures.
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
49
|
+
*
|
|
50
|
+
* All policies first attempt to look up an existing model instance. If found and the type
|
|
51
|
+
* matches, the existing instance is returned. Only if lookup fails does the policy apply:
|
|
52
|
+
*
|
|
53
|
+
* - CREATE (default): Attempts to create model instance after lookup fails
|
|
54
|
+
* - CONTINUE: Returns undefined after lookup fails, allows graceful degradation
|
|
55
|
+
* - FAIL: Throws exception with detailed logging after lookup fails
|
|
44
56
|
*/
|
|
45
57
|
resolutionPolicy?: DependencyResolutionPolicy;
|
|
46
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kos-dependency.d.ts","sourceRoot":"","sources":["../../../../../../packages/sdk/kos-ui-sdk/src/core/types/kos-dependency.ts"],"names":[],"mappings":"AAAA,oBAAY,mBAAmB;IAC7B,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,MAAM,WAAW;CAClB;AAED
|
|
1
|
+
{"version":3,"file":"kos-dependency.d.ts","sourceRoot":"","sources":["../../../../../../packages/sdk/kos-ui-sdk/src/core/types/kos-dependency.ts"],"names":[],"mappings":"AAAA,oBAAY,mBAAmB;IAC7B,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,MAAM,WAAW;CAClB;AAED;;;;;;;GAOG;AACH,oBAAY,0BAA0B;IACpC;;;;OAIG;IACH,MAAM,WAAW;IACjB;;;;OAIG;IACH,QAAQ,aAAa;IACrB;;;OAGG;IACH,IAAI,SAAS;CACd;AAED;;KAEK;AACL,MAAM,WAAW,mBAAmB,CAAC,OAAO,GAAG,OAAO;IACpD,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gEAAgE;IAChE,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC;;;;;;;;;OASG;IACH,gBAAgB,CAAC,EAAE,0BAA0B,CAAC;CAC/C"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zone 3 utility for logging errors with structured context
|
|
3
|
+
*/
|
|
4
|
+
export interface ModelInstantiationErrorContext {
|
|
5
|
+
modelType: string;
|
|
6
|
+
options: any;
|
|
7
|
+
registryId: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Logs a model instantiation error with structured metadata.
|
|
11
|
+
*
|
|
12
|
+
* @param error - The error that occurred during instantiation
|
|
13
|
+
* @param context - Contextual information about the failed instantiation
|
|
14
|
+
*/
|
|
15
|
+
export declare function logModelInstantiationError(error: unknown, context: ModelInstantiationErrorContext): void;
|
|
16
|
+
//# sourceMappingURL=error-logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-logger.d.ts","sourceRoot":"","sources":["../../../../../../packages/sdk/kos-ui-sdk/src/core/util/error-logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,GAAG,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,8BAA8B,GACtC,IAAI,CASN"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { IKosModel } from '../core/kosModel';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Transition map type for lifecycle operations
|
|
5
|
+
*/
|
|
6
|
+
export type ModelPromiseResolver = (model: IKosModel) => Promise<void>;
|
|
7
|
+
/**
|
|
8
|
+
* Transitions a model to the ACTIVE state
|
|
9
|
+
*/
|
|
10
|
+
export declare const transitionToActive: (model: IKosModel) => Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* Transitions a model to the READY state
|
|
13
|
+
*/
|
|
14
|
+
export declare const transitionToReady: (model: IKosModel) => Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* Transitions a model to the LOADED state
|
|
17
|
+
*/
|
|
18
|
+
export declare const transitionToLoad: (model: IKosModel) => Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Transitions a model to the UNLOADED state
|
|
21
|
+
*/
|
|
22
|
+
export declare const transitionToUnload: (model: IKosModel) => Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Transitions a model to the INITIALIZED state
|
|
25
|
+
*/
|
|
26
|
+
export declare const transitionToInit: (model: IKosModel) => Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Enum defining available lifecycle transitions
|
|
29
|
+
*/
|
|
30
|
+
export declare enum Transitions {
|
|
31
|
+
ACTIVE = "active",
|
|
32
|
+
READY = "ready",
|
|
33
|
+
LOAD = "load",
|
|
34
|
+
UNLOAD = "unload",
|
|
35
|
+
INIT = "init"
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Mapping of transition types to their corresponding transition functions
|
|
39
|
+
*/
|
|
40
|
+
export declare const TransitionMap: Record<Transitions, ModelPromiseResolver>;
|
|
41
|
+
//# sourceMappingURL=model-transition-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-transition-utils.d.ts","sourceRoot":"","sources":["../../../../../../packages/sdk/kos-ui-sdk/src/core/util/model-transition-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlD;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvE;;GAEG;AACH,eAAO,MAAM,kBAAkB,UAAW,SAAS,KAAG,QAAQ,IAAI,CACM,CAAC;AAEzE;;GAEG;AACH,eAAO,MAAM,iBAAiB,UAAW,SAAS,KAAG,QAAQ,IAAI,CAC9C,CAAC;AAEpB;;GAEG;AACH,eAAO,MAAM,gBAAgB,UAAW,SAAS,KAAG,QAAQ,IAAI,CACG,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,kBAAkB,UAAW,SAAS,KAAG,QAAQ,IAAI,CACK,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,gBAAgB,UAAW,SAAS,KAAG,QAAQ,IAAI,CACc,CAAC;AAE/E;;GAEG;AACH,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,IAAI,SAAS;CACd;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE,oBAAoB,CAMnE,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { IKosDataModel } from '../core/kosModel';
|
|
2
|
+
import { IKosModelContainer } from '../core/kos-container-model';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Type guard to check if a model has a toJSON method
|
|
6
|
+
*/
|
|
7
|
+
export declare const isPrintable: (model: any) => model is {
|
|
8
|
+
toJSON: () => object;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Type guard to check if an object is a KOS data model
|
|
12
|
+
*/
|
|
13
|
+
export declare const isKosDataModel: (model: any) => model is IKosDataModel;
|
|
14
|
+
/**
|
|
15
|
+
* Type guard to check if a model is a KOS model container
|
|
16
|
+
*/
|
|
17
|
+
export declare const isKosModelContainer: (model: any) => model is IKosModelContainer<any>;
|
|
18
|
+
/**
|
|
19
|
+
* Resolves a child attribute to its data model representation.
|
|
20
|
+
* Handles various collection types and extracts KOS data models.
|
|
21
|
+
*
|
|
22
|
+
* @param attribute - The attribute to resolve (can be a model, container, collection, or array)
|
|
23
|
+
* @returns The resolved data model(s) or undefined
|
|
24
|
+
*/
|
|
25
|
+
export declare const resolveChild: (attribute: any) => IKosDataModel | IKosDataModel[] | undefined;
|
|
26
|
+
//# sourceMappingURL=model-type-guards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-type-guards.d.ts","sourceRoot":"","sources":["../../../../../../packages/sdk/kos-ui-sdk/src/core/util/model-type-guards.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,WAAW,UAAW,GAAG;YAAsB,MAAM,MAAM;CACpC,CAAC;AAErC;;GAEG;AACH,eAAO,MAAM,cAAc,UAAW,GAAG,2BACF,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,mBAAmB,UACvB,GAAG,qCAE+C,CAAC;AAE5D;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,cACZ,GAAG,KACb,aAAa,GAAG,aAAa,EAAE,GAAG,SAepC,CAAC"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
import { Transitions } from './model-transition-utils';
|
|
1
2
|
import { DependencyLifecycle, KosDependencyParams } from '../types/kos-dependency';
|
|
2
3
|
import { IKosDataModel, IKosModel } from '../core/kosModel';
|
|
3
|
-
import { IKosModelContainer } from '../core/kos-container-model';
|
|
4
4
|
|
|
5
|
+
export { Transitions, TransitionMap } from './model-transition-utils';
|
|
6
|
+
export { isPrintable, isKosDataModel, isKosModelContainer, resolveChild, } from './model-type-guards';
|
|
7
|
+
export { ModelError } from './promise-utils';
|
|
8
|
+
export type { ModelPromiseResolver } from './model-transition-utils';
|
|
5
9
|
export interface ModelPromise {
|
|
6
10
|
promise?: Promise<void>;
|
|
7
11
|
modelId?: string;
|
|
@@ -9,31 +13,15 @@ export interface ModelPromise {
|
|
|
9
13
|
type?: string;
|
|
10
14
|
status?: string;
|
|
11
15
|
}
|
|
12
|
-
export type ModelPromiseResolver = (model: IKosModel) => Promise<void>;
|
|
13
|
-
export declare const transitionToActive: (model: IKosModel) => Promise<void>;
|
|
14
|
-
export declare const transitionToReady: (model: IKosModel) => Promise<void>;
|
|
15
|
-
export declare const transitionToLoad: (model: IKosModel) => Promise<void>;
|
|
16
|
-
export declare const transitionToUnload: (model: IKosModel) => Promise<void>;
|
|
17
|
-
export declare const transitionToInit: (model: IKosModel) => Promise<void>;
|
|
18
|
-
export declare enum Transitions {
|
|
19
|
-
ACTIVE = "active",
|
|
20
|
-
READY = "ready",
|
|
21
|
-
LOAD = "load",
|
|
22
|
-
UNLOAD = "unload",
|
|
23
|
-
INIT = "init"
|
|
24
|
-
}
|
|
25
|
-
export declare const TransitionMap: {
|
|
26
|
-
active: (model: IKosModel) => Promise<void>;
|
|
27
|
-
ready: (model: IKosModel) => Promise<void>;
|
|
28
|
-
load: (model: IKosModel) => Promise<void>;
|
|
29
|
-
init: (model: IKosModel) => Promise<void>;
|
|
30
|
-
};
|
|
31
16
|
export declare const createModelDependency: (model: IKosModel, dependency: KosDependencyParams<any>) => {
|
|
32
17
|
dependentModel: null;
|
|
33
18
|
dataModelId: string;
|
|
34
19
|
success: boolean;
|
|
35
20
|
} | {
|
|
36
|
-
dependentModel:
|
|
21
|
+
dependentModel: {
|
|
22
|
+
model: IKosModel<IKosDataModel>;
|
|
23
|
+
data: IKosDataModel;
|
|
24
|
+
};
|
|
37
25
|
dataModelId: string;
|
|
38
26
|
success: boolean;
|
|
39
27
|
};
|
|
@@ -41,10 +29,4 @@ export declare const getDependenciesByLifecycle: (model: IKosModel, lifecycle?:
|
|
|
41
29
|
export declare const executeListLifecycle: (sourceModel: IKosModel, models: (IKosModel | undefined)[], target: Transitions, sourceLifecycle: DependencyLifecycle) => Promise<void>;
|
|
42
30
|
export declare const executeChildrenModelLifecycle: (model: IKosModel, target: Transitions, sourceLifecycle: DependencyLifecycle) => Promise<void>;
|
|
43
31
|
export declare const executeDependentModelLifecycle: (model: IKosModel, lifecycle: DependencyLifecycle) => Promise<void>;
|
|
44
|
-
export declare const isPrintable: (model: any) => model is {
|
|
45
|
-
toJSON: () => object;
|
|
46
|
-
};
|
|
47
|
-
export declare const isKosDataModel: (model: any) => model is IKosDataModel;
|
|
48
|
-
export declare const isKosModelContainer: (model: any) => model is IKosModelContainer<any>;
|
|
49
|
-
export declare const resolveChild: (attribute: any) => any[] | IKosDataModel | undefined;
|
|
50
32
|
//# sourceMappingURL=model-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-utils.d.ts","sourceRoot":"","sources":["../../../../../../packages/sdk/kos-ui-sdk/src/core/util/model-utils.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"model-utils.d.ts","sourceRoot":"","sources":["../../../../../../packages/sdk/kos-ui-sdk/src/core/util/model-utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGjE,OAAO,EACL,mBAAmB,EAEnB,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAiB,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAUtE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EACL,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAErE,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,qBAAqB,UACzB,SAAS,cACJ,oBAAoB,GAAG,CAAC;;;;;;;;;;;CA+KrC,CAAC;AAEF,eAAO,MAAM,0BAA0B,UAC9B,SAAS,cACL,mBAAmB,6BAqE/B,CAAC;AAEF,eAAO,MAAM,oBAAoB,gBAClB,SAAS,UACd,CAAC,SAAS,GAAG,SAAS,CAAC,EAAE,UACzB,WAAW,mBACF,mBAAmB,kBAqHrC,CAAC;AAEF,eAAO,MAAM,6BAA6B,UACjC,SAAS,UACR,WAAW,mBACF,mBAAmB,kBAQrC,CAAC;AAEF,eAAO,MAAM,8BAA8B,UAClC,SAAS,aACL,mBAAmB,kBAa/B,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { IKosModel } from '../core/kosModel';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Custom error for model timeout scenarios
|
|
5
|
+
*/
|
|
6
|
+
export declare class ModelError extends Error {
|
|
7
|
+
model: IKosModel;
|
|
8
|
+
constructor(message: string | undefined, model: IKosModel);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Creates a promise that rejects after a specified delay with model context.
|
|
12
|
+
* Provides a cancel function to prevent rejection if the operation completes.
|
|
13
|
+
*
|
|
14
|
+
* @param ms - Timeout duration in milliseconds
|
|
15
|
+
* @param model - The model being operated on
|
|
16
|
+
* @param status - Description of the operation status (e.g., "ACTIVE", "INACTIVE")
|
|
17
|
+
* @returns Object containing the timeout promise and a cancel function
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* const { promise: timeoutPromise, cancel } = rejectAfterDelay(
|
|
22
|
+
* MODEL_PROMISE_TIMEOUT_MS,
|
|
23
|
+
* myModel,
|
|
24
|
+
* 'ACTIVE'
|
|
25
|
+
* );
|
|
26
|
+
*
|
|
27
|
+
* Promise.race([
|
|
28
|
+
* myOperation().then(() => cancel()),
|
|
29
|
+
* timeoutPromise
|
|
30
|
+
* ]);
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare const rejectAfterDelay: (ms: number, model: IKosModel, status: string) => {
|
|
34
|
+
promise: Promise<void>;
|
|
35
|
+
cancel: () => void;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Races a promise against a timeout with automatic cleanup.
|
|
39
|
+
* Useful for ensuring operations complete within a time limit.
|
|
40
|
+
*
|
|
41
|
+
* @param promise - The operation promise to race
|
|
42
|
+
* @param timeoutMs - Timeout duration in milliseconds (defaults to MODEL_PROMISE_TIMEOUT_MS)
|
|
43
|
+
* @param model - The model being operated on
|
|
44
|
+
* @param status - Description of the operation
|
|
45
|
+
* @returns Promise that resolves/rejects based on whichever completes first
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* await raceWithTimeout(
|
|
50
|
+
* model.transitionToActive(),
|
|
51
|
+
* MODEL_PROMISE_TIMEOUT_MS,
|
|
52
|
+
* model,
|
|
53
|
+
* 'ACTIVE'
|
|
54
|
+
* );
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export declare const raceWithTimeout: <T>(promise: Promise<T>, timeoutMs: number | undefined, model: IKosModel, status: string) => Promise<T>;
|
|
58
|
+
//# sourceMappingURL=promise-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promise-utils.d.ts","sourceRoot":"","sources":["../../../../../../packages/sdk/kos-ui-sdk/src/core/util/promise-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlD;;GAEG;AACH,qBAAa,UAAW,SAAQ,KAAK;IACnC,KAAK,EAAE,SAAS,CAAC;gBACL,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,SAAS;CAI1D;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,gBAAgB,OACvB,MAAM,SACH,SAAS,UACR,MAAM,KACb;IAAE,OAAO,EAAE,QAAQ,IAAI,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,IAAI,CAAA;CAsB9C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,eAAe,eACjB,QAAQ,CAAC,CAAC,wCAEZ,SAAS,UACR,MAAM,KACb,QAAQ,CAAC,CAeX,CAAC"}
|