@kosdev-code/kos-ui-sdk 0.1.0-dev.5216 → 0.1.0-dev.5264
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/core/decorators/kos-multiple-future-aware.d.ts +12 -2
- package/core/core/decorators/kos-multiple-future-aware.d.ts.map +1 -1
- package/core/core/decorators/kos-service-request-helpers.d.ts +58 -0
- package/core/core/decorators/kos-service-request-helpers.d.ts.map +1 -0
- package/core/core/decorators/kos-service-request.d.ts +54 -8
- package/core/core/decorators/kos-service-request.d.ts.map +1 -1
- package/core/core/model/kos-service-request-manager.d.ts.map +1 -1
- package/core/util/container-utils.d.ts +167 -21
- package/core/util/container-utils.d.ts.map +1 -1
- package/core/util/kos-config-init.d.ts +1 -0
- package/core/util/kos-config-init.d.ts.map +1 -1
- package/core/util/kos-service-request.d.ts +1 -1
- package/core/util/kos-service-request.d.ts.map +1 -1
- package/index.cjs +69 -69
- package/index.cjs.map +1 -1
- package/index.js +3441 -3361
- package/index.js.map +1 -1
- package/models/models/future/future-aware.d.ts.map +1 -1
- package/models/models/future/future-types.d.ts +4 -4
- package/models/models/future/future-types.d.ts.map +1 -1
- package/models/models/translation/translation-model.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -75,8 +75,12 @@ export type MultipleFutureProperties<T extends string> = FutureGetters<T> & Prog
|
|
|
75
75
|
* // All Future Container properties and named futures are now available automatically
|
|
76
76
|
* // Access: this.pourFuture, this.agitateFuture, this.gateFuture
|
|
77
77
|
*
|
|
78
|
-
* onFutureUpdate?(future: IFutureModel): void {
|
|
78
|
+
* onFutureUpdate?(future: IFutureModel, alias?: string): void {
|
|
79
79
|
* // Handle updates from any managed Future
|
|
80
|
+
* // Use alias to identify which future triggered the update
|
|
81
|
+
* if (alias === 'pour') {
|
|
82
|
+
* console.log(`Pour operation: ${future.progress}%`);
|
|
83
|
+
* }
|
|
80
84
|
* }
|
|
81
85
|
* }
|
|
82
86
|
* ```
|
|
@@ -153,8 +157,14 @@ export type KosMultipleFutureAwareFull<T extends string = string> = KosMultipleF
|
|
|
153
157
|
* return !!(this.pourFuture && !this.pourFuture?.endState);
|
|
154
158
|
* }
|
|
155
159
|
*
|
|
156
|
-
* onFutureUpdate?(future: IFutureModel): void {
|
|
160
|
+
* onFutureUpdate?(future: IFutureModel, alias?: string): void {
|
|
157
161
|
* // Handle Future updates from any operation
|
|
162
|
+
* // Use alias to discriminate between different future types
|
|
163
|
+
* if (alias === 'pour') {
|
|
164
|
+
* console.log(`Pouring ice: ${future.progress}%`);
|
|
165
|
+
* } else if (alias === 'agitate') {
|
|
166
|
+
* console.log(`Agitating: ${future.progress}%`);
|
|
167
|
+
* }
|
|
158
168
|
* }
|
|
159
169
|
*
|
|
160
170
|
* @kosFuture({ alias: "pour" })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kos-multiple-future-aware.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-ui-sdk/src/core/core/decorators/kos-multiple-future-aware.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAG/E,MAAM,WAAW,6BAA6B;IAC5C,mGAAmG;IACnG,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;;;OAIG;IACH,aAAa,EAAE,qBAAqB,CAAC;IAErC;;;OAGG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED;;GAEG;AACH,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI;IACrC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,YAAY;CACjD,CAAC;AAEF,KAAK,eAAe,CAAC,CAAC,SAAS,MAAM,IAAI;IACvC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,GAAG,MAAM;CAC5C,CAAC;AAEF,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI;IACrC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,GAAG,MAAM;CAC1C,CAAC;AAEF,KAAK,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAAI;IACxC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,WAAW,GAAG,OAAO;CAC9C,CAAC;AAEF,KAAK,kBAAkB,CAAC,CAAC,SAAS,MAAM,IAAI;IAC1C,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,aAAa,GAAG,OAAO;CAChD,CAAC;AAEF,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI;IACrC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;CACnE,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAAC,CAAC,SAAS,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC,GACvE,eAAe,CAAC,CAAC,CAAC,GAClB,aAAa,CAAC,CAAC,CAAC,GAChB,gBAAgB,CAAC,CAAC,CAAC,GACnB,kBAAkB,CAAC,CAAC,CAAC,GACrB,aAAa,CAAC,CAAC,CAAC,CAAC;AAEnB
|
|
1
|
+
{"version":3,"file":"kos-multiple-future-aware.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-ui-sdk/src/core/core/decorators/kos-multiple-future-aware.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAG/E,MAAM,WAAW,6BAA6B;IAC5C,mGAAmG;IACnG,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;;;OAIG;IACH,aAAa,EAAE,qBAAqB,CAAC;IAErC;;;OAGG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED;;GAEG;AACH,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI;IACrC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,YAAY;CACjD,CAAC;AAEF,KAAK,eAAe,CAAC,CAAC,SAAS,MAAM,IAAI;IACvC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,GAAG,MAAM;CAC5C,CAAC;AAEF,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI;IACrC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,GAAG,MAAM;CAC1C,CAAC;AAEF,KAAK,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAAI;IACxC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,WAAW,GAAG,OAAO;CAC9C,CAAC;AAEF,KAAK,kBAAkB,CAAC,CAAC,SAAS,MAAM,IAAI;IAC1C,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,aAAa,GAAG,OAAO;CAChD,CAAC;AAEF,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI;IACrC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;CACnE,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAAC,CAAC,SAAS,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC,GACvE,eAAe,CAAC,CAAC,CAAC,GAClB,aAAa,CAAC,CAAC,CAAC,GAChB,gBAAgB,CAAC,CAAC,CAAC,GACnB,kBAAkB,CAAC,CAAC,CAAC,GACrB,aAAa,CAAC,CAAC,CAAC,CAAC;AAEnB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,0BAA0B,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAC9D,6BAA6B,GAC3B,wBAAwB,CAAC,CAAC,CAAC,GAAG;IAC5B;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;;;OAIG;IACH,WAAW,EAAE,OAAO,CAAC;IAErB;;;;;;OAMG;IACH,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B,CAAC;AAEN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,CAAC,EAAE,6BAA6B,GACtC,cAAc,CAchB"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helper functions for kosServiceRequest decorator.
|
|
3
|
+
*
|
|
4
|
+
* These functions are extracted to reduce complexity and improve maintainability
|
|
5
|
+
* of the service request decorator implementation.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Resolves all parameters for a service request.
|
|
9
|
+
*
|
|
10
|
+
* This helper function handles the complex parameter resolution logic including:
|
|
11
|
+
* - Resolving PropKeys in path
|
|
12
|
+
* - Merging decorator-defined params with runtime params
|
|
13
|
+
* - Building the final API params object
|
|
14
|
+
*
|
|
15
|
+
* @param metadata - Service request metadata
|
|
16
|
+
* @param modelInstance - The model instance (this context)
|
|
17
|
+
* @param args - Original method arguments
|
|
18
|
+
* @param runtimeOptions - Runtime execution options
|
|
19
|
+
* @returns Resolved parameters for the API request
|
|
20
|
+
*/
|
|
21
|
+
export declare function resolveServiceRequestParameters(metadata: any, modelInstance: any, args: any[], runtimeOptions: any): {
|
|
22
|
+
resolvedPath: string;
|
|
23
|
+
apiParams: any;
|
|
24
|
+
finalBody: any;
|
|
25
|
+
finalRequestOptions: any;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Executes an API method with the appropriate HTTP verb.
|
|
29
|
+
*
|
|
30
|
+
* This helper function handles the complexity of method selection and execution,
|
|
31
|
+
* supporting GET, POST, PUT, and DELETE operations with proper parameter passing.
|
|
32
|
+
*
|
|
33
|
+
* @param API - The API client instance
|
|
34
|
+
* @param method - HTTP method (get, post, put, delete)
|
|
35
|
+
* @param path - Resolved API path
|
|
36
|
+
* @param params - API parameters (path, query)
|
|
37
|
+
* @param body - Request body (for POST, PUT, DELETE)
|
|
38
|
+
* @param requestOptions - Additional request options
|
|
39
|
+
* @returns Error-first tuple with response
|
|
40
|
+
*/
|
|
41
|
+
export declare function executeApiMethod(API: any, method: string | undefined, path: string, params: any, body: any, requestOptions: any): Promise<[string | null, any]>;
|
|
42
|
+
/**
|
|
43
|
+
* Handles service request errors according to the configured error handling strategy.
|
|
44
|
+
*
|
|
45
|
+
* This helper function implements the error handling strategies defined in metadata:
|
|
46
|
+
* - "throw": Return error tuple for caller to handle
|
|
47
|
+
* - "log": Log error and return default value
|
|
48
|
+
* - "ignore": Silently return default value
|
|
49
|
+
* - "default": Return default value
|
|
50
|
+
*
|
|
51
|
+
* @param error - Error message from API call
|
|
52
|
+
* @param response - API response (may contain status code)
|
|
53
|
+
* @param errorHandler - Error handler configuration from metadata
|
|
54
|
+
* @param modelInstance - The model instance (this context)
|
|
55
|
+
* @returns Error-first tuple with default value or error
|
|
56
|
+
*/
|
|
57
|
+
export declare function handleServiceRequestError(error: string, response: any, errorHandler: any, modelInstance: any): [string | null, any];
|
|
58
|
+
//# sourceMappingURL=kos-service-request-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kos-service-request-helpers.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-ui-sdk/src/core/core/decorators/kos-service-request-helpers.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,GAAG,EACb,aAAa,EAAE,GAAG,EAClB,IAAI,EAAE,GAAG,EAAE,EACX,cAAc,EAAE,GAAG;;;;;EAgEpB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,GAAG,EACX,IAAI,EAAE,GAAG,EACT,cAAc,EAAE,GAAG,GAClB,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,CAgB/B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,GAAG,EACb,YAAY,EAAE,GAAG,EACjB,aAAa,EAAE,GAAG,GACjB,CAAC,MAAM,GAAG,IAAI,EAAE,GAAG,CAAC,CAsBtB"}
|
|
@@ -66,23 +66,69 @@ export interface ExtensionConfig {
|
|
|
66
66
|
phase?: "before" | "after" | "transform";
|
|
67
67
|
}
|
|
68
68
|
/**
|
|
69
|
-
*
|
|
69
|
+
* Configuration for error handling in service requests.
|
|
70
|
+
*
|
|
71
|
+
* Provides multiple strategies for handling request failures, enabling soft failures
|
|
72
|
+
* with cached default values and error-first parameter patterns.
|
|
73
|
+
*
|
|
74
|
+
* @remarks
|
|
75
|
+
* All strategies except 'throw' cache defaultValue in the response store, ensuring
|
|
76
|
+
* consistency across model lifecycle. Lifecycle-triggered handlers receive error-first
|
|
77
|
+
* parameters: (error, data), while method-driven requests use $request executor
|
|
78
|
+
* returning tuple: [error, data].
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```typescript
|
|
82
|
+
* // Soft failure with logging
|
|
83
|
+
* @kosServiceRequest({
|
|
84
|
+
* path: '/api/data',
|
|
85
|
+
* errorHandler: {
|
|
86
|
+
* strategy: 'log',
|
|
87
|
+
* defaultValue: []
|
|
88
|
+
* }
|
|
89
|
+
* })
|
|
90
|
+
* async loadData(error: string | null, data: DataType[]): Promise<void> {
|
|
91
|
+
* if (error) {
|
|
92
|
+
* this.logger.error(`Load failed: ${error}`);
|
|
93
|
+
* }
|
|
94
|
+
* this.processData(data); // Either real data or defaultValue
|
|
95
|
+
* }
|
|
96
|
+
* ```
|
|
97
|
+
*
|
|
98
|
+
* @category Service Request
|
|
99
|
+
* @see {@link KosServiceRequestConfig} for complete decorator configuration
|
|
70
100
|
*/
|
|
71
101
|
export interface ErrorHandlerConfig {
|
|
72
102
|
/**
|
|
73
|
-
* How to handle errors
|
|
74
|
-
*
|
|
75
|
-
* - '
|
|
76
|
-
*
|
|
77
|
-
* - '
|
|
103
|
+
* How to handle errors:
|
|
104
|
+
*
|
|
105
|
+
* - 'throw': Re-throw error (default) - handler not called, no caching
|
|
106
|
+
*
|
|
107
|
+
* - 'log': Log error, cache defaultValue, and call handler with (error, defaultValue)
|
|
108
|
+
* Enables soft failure - log the error but continue processing with default data
|
|
109
|
+
*
|
|
110
|
+
* - 'ignore': Cache defaultValue and call handler with (error, defaultValue)
|
|
111
|
+
* Soft failure without logging - silent recovery
|
|
112
|
+
*
|
|
113
|
+
* - 'default': Same as 'ignore' - cache defaultValue and call handler
|
|
114
|
+
* (Kept for backward compatibility, behaves identically to 'ignore')
|
|
115
|
+
*
|
|
116
|
+
* All strategies except 'throw' cache defaultValue in response store for consistency.
|
|
117
|
+
*
|
|
118
|
+
* Note: For lifecycle requests, handler receives error-first parameters: (error, data)
|
|
119
|
+
* For method-driven requests, $request executor returns tuple: [error, data]
|
|
78
120
|
*/
|
|
79
121
|
strategy: "throw" | "log" | "ignore" | "default";
|
|
80
122
|
/**
|
|
81
|
-
* Default value to
|
|
123
|
+
* Default value to use when an error occurs.
|
|
124
|
+
* Used with 'log', 'ignore', or 'default' strategies.
|
|
125
|
+
* - Stored in response cache for subsequent access
|
|
126
|
+
* - Passed to handler as second parameter: handler(errorMessage, defaultValue)
|
|
82
127
|
*/
|
|
83
128
|
defaultValue?: any;
|
|
84
129
|
/**
|
|
85
|
-
* Custom error handler function
|
|
130
|
+
* Custom error handler function called before strategy is applied.
|
|
131
|
+
* Use for logging, metrics, or side effects.
|
|
86
132
|
*/
|
|
87
133
|
onError?: (error: Error, model: IKosDataModel) => void;
|
|
88
134
|
}
|
|
@@ -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,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,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":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,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;AAOjC,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC;AAGtE,YAAY,EAAE,mBAAmB,EAAE,CAAC;AAEpC;;;GAGG;AACH,eAAO,MAAM,sBAAsB,eAAmC,CAAC;AAcvE;;GAEG;AACH,MAAM,MAAM,UAAU,GAClB,KAAK,GACL,KAAK,GACL,MAAM,GACN,MAAM,GACN,KAAK,GACL,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC;IAE3C;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,IAAI,EAAE,QAAQ,GAAG,aAAa,GAAG,WAAW,CAAC;IAE7C;;OAEG;IACH,SAAS,EAAE,GAAG,CAAC;IAEf;;OAEG;IACH,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,WAAW,CAAC;CAC1C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;IAEjD;;;;;OAKG;IACH,YAAY,CAAC,EAAE,GAAG,CAAC;IAEnB;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CACxD;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,wBAAwB,CACvC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACvD,IAAI,SAAS,MAAM,KAAK,GAAG,MAAM,EACjC,MAAM,SAAS,UAAU,GAAG,KAAK,EACjC,QAAQ,GAAG,GAAG,EACd,mBAAmB,GAAG,QAAQ;IAE9B;;;;;;OAMG;IACH,IAAI,EAAE,IAAI,CAAC;IAEX;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAEhC;;;;;;;;;;;;;;;;OAgBG;IACH,UAAU,CAAC,EACP,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,KAAK,CAAC,GAC1E,CAAC,CACC,KAAK,EAAE,aAAa,EACpB,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;KAAE,GAC7D,CAAC,GACD,KAAK,CAAC,CAAC;IAEf;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,EACR,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC,CAAA;KAAE,GAC1D,CAAC,GACD,KAAK,CAAC,GACV,CAAC,CACC,KAAK,EAAE,aAAa,EACpB,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC,CAAA;KAAE,GAC9D,CAAC,GACD,KAAK,CAAC,CAAC;IAEf;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,EACD,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,GAC/B,CAAC,CACC,KAAK,EAAE,aAAa,EACpB,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAE1C;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;;;OASG;IACH,YAAY,CAAC,EACT,wBAAwB,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAChE,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,OAAO,EAAE,OAAO,KAAK,aAAa,CAAC,CAAC;IAE1D;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,MAAM,CAAC;IAEpC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAE1B;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;IAE/B;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,mBAAmB,CAAC;IAExD;;;;;OAKG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC;IAE9C;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAElC;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAE5B;;;;;;;;;;;;;;;;;;OAkBG;IACH,cAAc,CAAC,EACX,cAAc,GACd,CAAC,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,cAAc,CAAC,CAAC;CAChE;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB,CACrC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACvD,IAAI,SAAS,MAAM,KAAK,GAAG,MAAM,EACjC,MAAM,SAAS,UAAU,GAAG,KAAK,EACjC,QAAQ,GAAG,GAAG,EACd,mBAAmB,GAAG,QAAQ,CAC9B,SAAQ,wBAAwB,CAC9B,KAAK,EACL,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,mBAAmB,CACpB;IACD;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IAEH,eAAe,EAAE,QAAQ,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB,CACrC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACvD,IAAI,SAAS,MAAM,KAAK,GAAG,MAAM,EACjC,MAAM,SAAS,UAAU,GAAG,KAAK;IAEjC,CAAC,OAAO,CAAC,EAAE;QACT,UAAU,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS;YAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;SAAE,GACrE,CAAC,GACD,KAAK,CAAC;QACV,WAAW,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS;YAAE,KAAK,CAAC,EAAE,MAAM,CAAC,CAAA;SAAE,GACvE,CAAC,GACD,KAAK,CAAC;QACV,IAAI,CAAC,EAAE,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,cAAc,CAAC,EAAE,cAAc,CAAC;KACjC,GAAG,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;CACnC;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,wBAAwB,CAClC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACvD,IAAI,SAAS,MAAM,KAAK,GAAG,MAAM,EACjC,MAAM,SAAS,UAAU,GAAG,KAAK,IAC/B,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACvD,IAAI,SAAS,MAAM,KAAK,GAAG,MAAM,EACjC,MAAM,SAAS,UAAU,GAAG,KAAK,EACjC,QAAQ,GAAG,GAAG,EACd,mBAAmB,GAAG,QAAQ,EAE9B,MAAM,EAAE,wBAAwB,CAC9B,KAAK,EACL,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,mBAAmB,CACpB,YAEe,GAAG,eAAe,MAAM,cAAc,kBAAkB,wBA+GzE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kos-service-request-manager.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-ui-sdk/src/core/core/model/kos-service-request-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AASlD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"kos-service-request-manager.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-ui-sdk/src/core/core/model/kos-service-request-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AASlD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAqKhE;;;;;;;GAOG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,QAAQ,CAAqD;gBAEzD,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,oBAAoB;IAQrE;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAwBxB;;;;OAIG;IACG,mBAAmB,CAAC,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAexE;;OAEG;YACW,cAAc;IAgB5B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAQ5B;;OAEG;YACW,wBAAwB;IAetC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;OAEG;YACW,uBAAuB;IAkCrC;;;OAGG;IACH,OAAO,CAAC,cAAc;IAkBtB;;;OAGG;YACW,cAAc;IAoB5B;;;OAGG;YACW,eAAe;IAwB7B;;;OAGG;YACW,qBAAqB;IAiCnC;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAcjC;;OAEG;YACW,WAAW;IA4BzB;;OAEG;IACH,OAAO,CAAC,aAAa;IAoCrB;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,OAAO,CAAC,cAAc;IA0BtB;;OAEG;YACW,eAAe;IA4D7B;;OAEG;YACW,WAAW;CAiF1B"}
|
|
@@ -5,53 +5,197 @@ interface Identifiable {
|
|
|
5
5
|
id: string;
|
|
6
6
|
}
|
|
7
7
|
/**
|
|
8
|
-
* Function that transforms an entity
|
|
9
|
-
*
|
|
8
|
+
* Function that transforms an entity's ID before container synchronization.
|
|
9
|
+
*
|
|
10
|
+
* The IdMapper pattern enables two critical capabilities:
|
|
11
|
+
*
|
|
12
|
+
* 1. **Compound Model IDs**: Transform simple backend IDs into compound IDs that include
|
|
13
|
+
* parent context (e.g., `"123"` → `"release-version-abc-123"`). This ensures unique
|
|
14
|
+
* model IDs even when backend IDs are only unique within their parent scope.
|
|
15
|
+
*
|
|
16
|
+
* 2. **Backend ID Preservation**: Add a `rawId` property to preserve the original backend ID
|
|
17
|
+
* for server communication while using compound IDs for model identity.
|
|
18
|
+
*
|
|
19
|
+
* @template D - Input entity type (data from backend)
|
|
20
|
+
* @template M - Mapped entity type (data after transformation, defaults to D if no transformation)
|
|
21
|
+
*
|
|
22
|
+
* @example Simple ID prefix transformation
|
|
23
|
+
* ```typescript
|
|
24
|
+
* const idMapper: IdMapper<User, User & { rawId: string }> = (user) => ({
|
|
25
|
+
* ...user,
|
|
26
|
+
* rawId: user.id,
|
|
27
|
+
* id: `user-${user.id}`
|
|
28
|
+
* });
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* @example Compound ID with parent context
|
|
32
|
+
* ```typescript
|
|
33
|
+
* type WithRawId<T> = T & { rawId: string };
|
|
34
|
+
*
|
|
35
|
+
* const idMapper: IdMapper<VersionResponse, WithRawId<VersionResponse>> = (version) => ({
|
|
36
|
+
* ...version,
|
|
37
|
+
* rawId: version.id,
|
|
38
|
+
* id: `release-version-${templateId}-${version.id}`
|
|
39
|
+
* });
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
* @example Multi-level compound ID
|
|
43
|
+
* ```typescript
|
|
44
|
+
* const idMapper: IdMapper<CandidateResponse, WithRawId<CandidateResponse>> = (candidate) => ({
|
|
45
|
+
* ...candidate,
|
|
46
|
+
* rawId: candidate.id,
|
|
47
|
+
* id: `release-candidate-${templateId}-${versionId}-${candidate.id}`
|
|
48
|
+
* });
|
|
49
|
+
* ```
|
|
10
50
|
*/
|
|
11
|
-
export type IdMapper =
|
|
51
|
+
export type IdMapper<D extends Identifiable = Identifiable, M extends Identifiable = D> = (entity: D) => M;
|
|
12
52
|
type Container = IKosContainerModel<any, any> | IKosModelContainer<any>;
|
|
13
53
|
/**
|
|
14
54
|
* Parameters for resolving container deltas.
|
|
15
55
|
* @template T - The container type
|
|
16
|
-
* @template D - The entity type with an id property
|
|
56
|
+
* @template D - The input entity type with an id property
|
|
57
|
+
* @template M - The mapped entity type (after idMapper transformation)
|
|
17
58
|
*/
|
|
18
|
-
interface ResolveParams<T extends Container, D> {
|
|
59
|
+
interface ResolveParams<T extends Container, D extends Identifiable, M extends Identifiable = D> {
|
|
19
60
|
/** The container to synchronize */
|
|
20
61
|
container: T;
|
|
21
62
|
/** Callback to create a new item when an entity is added */
|
|
22
|
-
onAddItem: (entity:
|
|
63
|
+
onAddItem: (entity: M) => any;
|
|
23
64
|
/** Optional callback when an item is removed, receives the id to remove */
|
|
24
65
|
onRemoveItem?: (id: string) => any;
|
|
25
66
|
/** Optional callback when an existing item needs updating */
|
|
26
|
-
onUpdateItem?: (entity:
|
|
67
|
+
onUpdateItem?: (entity: M, existingModel: any) => any;
|
|
27
68
|
/** Optional mapper to transform entity ids before processing */
|
|
28
|
-
idMapper?: IdMapper
|
|
69
|
+
idMapper?: IdMapper<D, M>;
|
|
29
70
|
}
|
|
30
71
|
/**
|
|
31
72
|
* Creates a function that synchronizes a container with a new list of entities.
|
|
32
|
-
*
|
|
73
|
+
*
|
|
74
|
+
* This is the primary utility for delta-based container synchronization. It compares incoming
|
|
75
|
+
* data against the current container state and performs minimal operations (add/update/remove)
|
|
76
|
+
* to achieve synchronization.
|
|
77
|
+
*
|
|
78
|
+
* Key features:
|
|
79
|
+
* - **Delta resolution**: Only processes actual changes (add/update/remove)
|
|
80
|
+
* - **ID transformation**: Optional `idMapper` transforms backend IDs to model IDs
|
|
81
|
+
* - **Update-in-place**: `onUpdateItem` can update existing models without recreating
|
|
82
|
+
* - **Type safety**: Generic type parameters ensure type consistency through transformation
|
|
83
|
+
*
|
|
84
|
+
* Workflow:
|
|
85
|
+
* 1. Apply `idMapper` to transform entity IDs (if provided)
|
|
86
|
+
* 2. Calculate deltas: which IDs are missing from new data (removals)
|
|
87
|
+
* 3. Invoke `onRemoveItem` for each ID to remove
|
|
88
|
+
* 4. For each entity in new data:
|
|
89
|
+
* - If model exists: invoke `onUpdateItem` (if provided) or `onAddItem`
|
|
90
|
+
* - If model doesn't exist: invoke `onAddItem`
|
|
91
|
+
* 5. Add all new models to container in batch
|
|
33
92
|
*
|
|
34
93
|
* @template T - Container type implementing IKosModelContainer
|
|
35
|
-
* @template D -
|
|
94
|
+
* @template D - Input entity type (data from backend)
|
|
95
|
+
* @template M - Mapped entity type (after idMapper transformation, defaults to D)
|
|
96
|
+
*
|
|
36
97
|
* @param params - Configuration for resolving deltas
|
|
98
|
+
* @param params.container - The container to synchronize
|
|
99
|
+
* @param params.onAddItem - Callback to create a new model from entity data
|
|
100
|
+
* @param params.onUpdateItem - Optional callback to update existing model (return null to skip adding)
|
|
101
|
+
* @param params.onRemoveItem - Optional callback invoked with each ID to remove (default: identity function)
|
|
102
|
+
* @param params.idMapper - Optional function to transform entity IDs before processing
|
|
103
|
+
*
|
|
37
104
|
* @returns A function that accepts entities and synchronizes the container
|
|
38
105
|
*
|
|
39
|
-
* @example
|
|
106
|
+
* @example Basic synchronization without ID transformation
|
|
107
|
+
* ```typescript
|
|
40
108
|
* const syncUsers = resolveContainerDeltas({
|
|
41
109
|
* container: userContainer,
|
|
42
110
|
* onAddItem: (user) => User.instance(user.id).options(user).build(),
|
|
43
|
-
* onUpdateItem: (user, existing) =>
|
|
111
|
+
* onUpdateItem: (user, existing) => {
|
|
112
|
+
* existing.updateModel(user);
|
|
113
|
+
* return null; // Don't add, just updated in place
|
|
114
|
+
* },
|
|
44
115
|
* onRemoveItem: (id) => id
|
|
45
116
|
* });
|
|
46
117
|
* syncUsers(newUserList);
|
|
118
|
+
* ```
|
|
119
|
+
*
|
|
120
|
+
* @example ID transformation with compound IDs and rawId preservation
|
|
121
|
+
* ```typescript
|
|
122
|
+
* type WithRawId<T> = T & { rawId: string };
|
|
123
|
+
*
|
|
124
|
+
* const syncVersions = resolveContainerDeltas<
|
|
125
|
+
* typeof template.versions,
|
|
126
|
+
* VersionResponse,
|
|
127
|
+
* WithRawId<VersionResponse>
|
|
128
|
+
* >({
|
|
129
|
+
* container: template.versions,
|
|
130
|
+
* idMapper: (versionData) => ({
|
|
131
|
+
* ...versionData,
|
|
132
|
+
* rawId: versionData.id, // Preserve backend ID
|
|
133
|
+
* id: ReleaseIdFactory.version(templateId, versionData.id) // Compound model ID
|
|
134
|
+
* }),
|
|
135
|
+
* onAddItem: (data) => {
|
|
136
|
+
* const model = ReleaseVersion.instance(data.id)
|
|
137
|
+
* .options({
|
|
138
|
+
* rawId: data.rawId, // Store backend ID for server communication
|
|
139
|
+
* version: data.version,
|
|
140
|
+
* // ... other options
|
|
141
|
+
* })
|
|
142
|
+
* .build();
|
|
143
|
+
* // Recursively sync nested containers
|
|
144
|
+
* syncCandidates(model, data.candidates || []);
|
|
145
|
+
* return model;
|
|
146
|
+
* },
|
|
147
|
+
* onUpdateItem: (data, existingVersion) => {
|
|
148
|
+
* existingVersion.updateModel({
|
|
149
|
+
* rawId: data.rawId || existingVersion.rawId,
|
|
150
|
+
* version: data.version,
|
|
151
|
+
* // ... other updates
|
|
152
|
+
* });
|
|
153
|
+
* // Recursively sync nested containers
|
|
154
|
+
* syncCandidates(existingVersion, data.candidates || []);
|
|
155
|
+
* return null; // Don't add, just updated in place
|
|
156
|
+
* },
|
|
157
|
+
* onRemoveItem: (id) => id
|
|
158
|
+
* })(versionsData);
|
|
159
|
+
* ```
|
|
160
|
+
*
|
|
161
|
+
* @example Nested container synchronization
|
|
162
|
+
* ```typescript
|
|
163
|
+
* // Parent level
|
|
164
|
+
* syncTemplates(containerModel, templatesData);
|
|
165
|
+
*
|
|
166
|
+
* // Within onAddItem and onUpdateItem, sync children
|
|
167
|
+
* function syncTemplates(container, templates) {
|
|
168
|
+
* resolveContainerDeltas({
|
|
169
|
+
* container: container.container,
|
|
170
|
+
* idMapper: (template) => ({
|
|
171
|
+
* ...template,
|
|
172
|
+
* rawId: template.id,
|
|
173
|
+
* id: ReleaseIdFactory.template(template.id)
|
|
174
|
+
* }),
|
|
175
|
+
* onAddItem: (template) => {
|
|
176
|
+
* const model = createTemplateModel(template);
|
|
177
|
+
* syncQueues(model, template.queues); // Nested sync
|
|
178
|
+
* syncVersions(model, template.versions); // Nested sync
|
|
179
|
+
* return model;
|
|
180
|
+
* },
|
|
181
|
+
* onUpdateItem: (template, existing) => {
|
|
182
|
+
* existing.updateModel(template);
|
|
183
|
+
* syncQueues(existing, template.queues); // Nested sync
|
|
184
|
+
* syncVersions(existing, template.versions); // Nested sync
|
|
185
|
+
* return null;
|
|
186
|
+
* }
|
|
187
|
+
* })(templates);
|
|
188
|
+
* }
|
|
189
|
+
* ```
|
|
47
190
|
*/
|
|
48
|
-
export declare const resolveContainerDeltas: <T extends IKosModelContainer<any>, D extends Identifiable>({ container, onAddItem, onUpdateItem, onRemoveItem, idMapper, }: ResolveParams<T, D>) => (entities: D[]) => void;
|
|
191
|
+
export declare const resolveContainerDeltas: <T extends IKosModelContainer<any>, D extends Identifiable, M extends Identifiable = D>({ container, onAddItem, onUpdateItem, onRemoveItem, idMapper, }: ResolveParams<T, D, M>) => (entities: D[]) => void;
|
|
49
192
|
/**
|
|
50
193
|
* Creates a function that synchronizes a container model's list with new entities.
|
|
51
194
|
* Simpler alternative to resolveContainerDeltas that directly invokes callbacks for each addition and removal.
|
|
52
195
|
*
|
|
53
196
|
* @template T - Container model type implementing IKosContainerModel
|
|
54
|
-
* @template D -
|
|
197
|
+
* @template D - Input entity type with an id property
|
|
198
|
+
* @template M - Mapped entity type (after idMapper transformation)
|
|
55
199
|
* @param params - Configuration for resolving deltas
|
|
56
200
|
* @returns A function that accepts entities and synchronizes by invoking callbacks
|
|
57
201
|
*
|
|
@@ -63,28 +207,30 @@ export declare const resolveContainerDeltas: <T extends IKosModelContainer<any>,
|
|
|
63
207
|
* });
|
|
64
208
|
* syncLayers(newLayerList);
|
|
65
209
|
*/
|
|
66
|
-
export declare const resolveListDeltas: <T extends IKosContainerModel<any, any>, D extends Identifiable>({ container, onAddItem, onRemoveItem, idMapper, }: ResolveParams<T, D>) => (entities: D[]) => void;
|
|
210
|
+
export declare const resolveListDeltas: <T extends IKosContainerModel<any, any>, D extends Identifiable, M extends Identifiable = D>({ container, onAddItem, onRemoveItem, idMapper, }: ResolveParams<T, D, M>) => (entities: D[]) => void;
|
|
67
211
|
/**
|
|
68
212
|
* Parameters for resolving deltas on plain item arrays (not container models).
|
|
69
213
|
* @template T - Current item type with an id property
|
|
70
|
-
* @template D -
|
|
214
|
+
* @template D - Input entity type with an id property
|
|
215
|
+
* @template M - Mapped entity type (after idMapper transformation)
|
|
71
216
|
*/
|
|
72
|
-
interface ResolveItemsParams<T extends Identifiable, D> {
|
|
217
|
+
interface ResolveItemsParams<T extends Identifiable, D extends Identifiable, M extends Identifiable = D> {
|
|
73
218
|
/** The current array of items to synchronize */
|
|
74
219
|
items: T[];
|
|
75
220
|
/** Callback invoked for each entity to add */
|
|
76
|
-
onAddItem: (entity:
|
|
221
|
+
onAddItem: (entity: M) => void;
|
|
77
222
|
/** Callback invoked for each id to remove */
|
|
78
223
|
onRemoveItem: (id: string) => void;
|
|
79
224
|
/** Optional mapper to transform entity ids before processing */
|
|
80
|
-
idMapper?: IdMapper
|
|
225
|
+
idMapper?: IdMapper<D, M>;
|
|
81
226
|
}
|
|
82
227
|
/**
|
|
83
228
|
* Creates a function that synchronizes a plain array of items with new entities.
|
|
84
229
|
* Does not require a container model - works with any array of identifiable items.
|
|
85
230
|
*
|
|
86
231
|
* @template T - Current item type with an id property
|
|
87
|
-
* @template D -
|
|
232
|
+
* @template D - Input entity type with an id property
|
|
233
|
+
* @template M - Mapped entity type (after idMapper transformation)
|
|
88
234
|
* @param params - Configuration including the items array and callbacks
|
|
89
235
|
* @returns A function that accepts entities and synchronizes the array
|
|
90
236
|
*
|
|
@@ -100,7 +246,7 @@ interface ResolveItemsParams<T extends Identifiable, D> {
|
|
|
100
246
|
* });
|
|
101
247
|
* syncItems(newItems);
|
|
102
248
|
*/
|
|
103
|
-
export declare const resolveItemListDeltas: <T extends Identifiable, D extends Identifiable>({ items, onAddItem, onRemoveItem, idMapper, }: ResolveItemsParams<T, D>) => (entities: D[]) => void;
|
|
249
|
+
export declare const resolveItemListDeltas: <T extends Identifiable, D extends Identifiable, M extends Identifiable = D>({ items, onAddItem, onRemoveItem, idMapper, }: ResolveItemsParams<T, D, M>) => (entities: D[]) => void;
|
|
104
250
|
/**
|
|
105
251
|
* Removes a prefix from an id string if present.
|
|
106
252
|
* Useful for normalizing ids that may have parent or namespace prefixes.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container-utils.d.ts","sourceRoot":"","sources":["../../../../../../packages/sdk/kos-ui-sdk/src/core/util/container-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;CACZ;AAqBD
|
|
1
|
+
{"version":3,"file":"container-utils.d.ts","sourceRoot":"","sources":["../../../../../../packages/sdk/kos-ui-sdk/src/core/util/container-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;CACZ;AAqBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,MAAM,MAAM,QAAQ,CAClB,CAAC,SAAS,YAAY,GAAG,YAAY,EACrC,CAAC,SAAS,YAAY,GAAG,CAAC,IACxB,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;AAErB,KAAK,SAAS,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;AAExE;;;;;GAKG;AACH,UAAU,aAAa,CACrB,CAAC,SAAS,SAAS,EACnB,CAAC,SAAS,YAAY,EACtB,CAAC,SAAS,YAAY,GAAG,CAAC;IAE1B,mCAAmC;IACnC,SAAS,EAAE,CAAC,CAAC;IACb,4DAA4D;IAC5D,SAAS,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,GAAG,CAAC;IAC9B,2EAA2E;IAC3E,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,GAAG,CAAC;IACnC,6DAA6D;IAC7D,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,aAAa,EAAE,GAAG,KAAK,GAAG,CAAC;IACtD,gEAAgE;IAChE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAC3B;AAKD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuHG;AACH,eAAO,MAAM,sBAAsB,2JAW9B,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,gBACd,CAAC,EAAE,SAkBb,CAAC;AAEJ;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,iBAAiB,kJAUzB,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,gBACd,CAAC,EAAE,SAKb,CAAC;AAEJ;;;;;GAKG;AACH,UAAU,kBAAkB,CAC1B,CAAC,SAAS,YAAY,EACtB,CAAC,SAAS,YAAY,EACtB,CAAC,SAAS,YAAY,GAAG,CAAC;IAE1B,gDAAgD;IAChD,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,8CAA8C;IAC9C,SAAS,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC;IAC/B,6CAA6C;IAC7C,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,gEAAgE;IAChE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,qBAAqB,8HAM7B,mBAAmB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,gBACnB,CAAC,EAAE,SAKb,CAAC;AAEJ;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,SAAS,OAAQ,MAAM,4BAMnC,CAAC"}
|
|
@@ -3,6 +3,7 @@ interface KosConfig {
|
|
|
3
3
|
profiles: string[];
|
|
4
4
|
[key: string]: boolean | string[] | string | number | undefined;
|
|
5
5
|
}
|
|
6
|
+
export declare const PROFILE_ENABLE_RELEASES = "studio.enable.releases";
|
|
6
7
|
export declare const PROFILE_TOOLS_PREVIEW = "studio.tools.preview";
|
|
7
8
|
export declare const PROFILE_RELAX_STORE_VALIDATION = "studio.relax.store.validation";
|
|
8
9
|
export declare const PROFILE_LOG_DEBUG = "studio.log.debug";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kos-config-init.d.ts","sourceRoot":"","sources":["../../../../../../packages/sdk/kos-ui-sdk/src/core/util/kos-config-init.ts"],"names":[],"mappings":"AAAA,UAAU,SAAS;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACjE;AAED,eAAO,MAAM,qBAAqB,yBAAyB,CAAC;AAC5D,eAAO,MAAM,8BAA8B,kCAAkC,CAAC;AAC9E,eAAO,MAAM,iBAAiB,qBAAqB,CAAC;AACpD,eAAO,MAAM,gBAAgB,oBAAoB,CAAC;AAUlD,eAAO,MAAM,eAAe,EAAE,SAAqB,CAAC;AAEpD,eAAO,MAAM,kBAAkB,gBAAuC,CAAC;AAEvE,eAAO,MAAM,aAAa,YAAa,MAAM,YACL,CAAC;AAEzC,eAAO,MAAM,mBAAmB,eAAyC,CAAC"}
|
|
1
|
+
{"version":3,"file":"kos-config-init.d.ts","sourceRoot":"","sources":["../../../../../../packages/sdk/kos-ui-sdk/src/core/util/kos-config-init.ts"],"names":[],"mappings":"AAAA,UAAU,SAAS;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACjE;AAED,eAAO,MAAM,uBAAuB,2BAA2B,CAAC;AAChE,eAAO,MAAM,qBAAqB,yBAAyB,CAAC;AAC5D,eAAO,MAAM,8BAA8B,kCAAkC,CAAC;AAC9E,eAAO,MAAM,iBAAiB,qBAAqB,CAAC;AACpD,eAAO,MAAM,gBAAgB,oBAAoB,CAAC;AAUlD,eAAO,MAAM,eAAe,EAAE,SAAqB,CAAC;AAEpD,eAAO,MAAM,kBAAkB,gBAAuC,CAAC;AAEvE,eAAO,MAAM,aAAa,YAAa,MAAM,YACL,CAAC;AAEzC,eAAO,MAAM,mBAAmB,eAAyC,CAAC"}
|
|
@@ -59,7 +59,7 @@ export type ClientBody<Paths extends Record<string, any>, K extends keyof Paths,
|
|
|
59
59
|
} ? B[keyof B] : never;
|
|
60
60
|
export type ServiceResponse<T> = [string, null] | [null, T];
|
|
61
61
|
export type DeepRequired<T> = {
|
|
62
|
-
[K in keyof T]-?: T[K] extends object ? DeepRequired<T[K]> : T[K];
|
|
62
|
+
[K in keyof T]-?: T[K] extends object ? DeepRequired<T[K]> : T[K] extends Array<infer U> ? Array<DeepRequired<U>> : T[K];
|
|
63
63
|
};
|
|
64
64
|
export type ElementType<T> = T extends (infer U)[] ? U : never;
|
|
65
65
|
type RequestOptions = Omit<KosFetchOptions, "method" | "body">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kos-service-request.d.ts","sourceRoot":"","sources":["../../../../../../packages/sdk/kos-ui-sdk/src/core/util/kos-service-request.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"kos-service-request.d.ts","sourceRoot":"","sources":["../../../../../../packages/sdk/kos-ui-sdk/src/core/util/kos-service-request.ts"],"names":[],"mappings":"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"}
|